linux设备地址与IO内存映射

在嵌入式编程中,绝大部分功能都是通过驱动外设实现的,这些外设不仅可以是CPU外部的某种功能模块,也可以是CPU芯片内部集成的某些器件。这些芯片内部的外设基本都是通过总线的方式与CPU核心相连,而对它们的控制也通过对这些总线上的外设寄存器的配置来实现。

外设寄存器也称为“I/O端口”,通常包括:控制寄存器、状态寄存器和数据寄存器三大类,而且一个外设的寄存器通常被连续地编址。

但是外设寄存器与CPU核心寄存器不同,核心寄存器是有名字的,不同体系架构的寄存器名也不一样,这个体现在不同架构的编译器里;而外设寄存器是有地址的,不同CPU芯片会有不同总线连接方式,所以也会有不同的外设寄存器地址,有了地址以后,CPU核心寄存器就可以通过相应的外设寄存器地址去配置相应设备的动作了。

CPU对外设IO端口物理地址的编址方式 有两种:

一种是I/O映射方式(I/O-mapped)称为端口映射,另一种是存储空间映射方式(Memory-mapped),称为内存映射。而具体采用哪一种则取决于CPU的体系结构。

端口映射的典型代表是MCS-51系列单片机和x86体系,这种映射需要有独立的地址空间对应外设地址,而且还需要另外的汇编命令来控制。

如51单片机的sfr特殊功能寄存器就是一个特别的命令来控制外设,而sfr所管理的128B的

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值