用户空间访问硬件:嵌入式开发实战
在嵌入式和实时应用开发领域,从用户空间访问硬件是一项关键技能。下面将详细介绍相关的硬件架构、项目创建、程序运行以及数据采集等方面的内容。
1. ARM I/O 架构
ARM 处理器架构与 x86 架构在处理外设访问上有显著不同。ARM 将外设设备置于与内存相同的地址空间,这意味着可以使用与访问内存相同的指令来访问外设,程序无需关心访问的是内存还是硬件设备。而 x86 架构中,外设设备存在于单独的地址空间,需要通过单独的 I/O 指令进行访问,且这些 I/O 指令只能在特权级 0(内核空间)执行,因此需要内核空间设备驱动来访问外设。
以 S3C2440 处理器为例,其 32 位地址空间的分配如下表所示:
| 地址范围 | 设备 |
| ---- | ---- |
| 0 - 0x3FFFFFFF | SDRAM、NOR flash、以太网控制器 |
| 0x48000000 - 0x5B0000FF | 内部外设 |
部分内存映射依赖于启动选择开关的设置:
- NOR 启动:NOR flash 从地址 0 开始,内部 SRAM 映射到 0x40000000。
- NAND 启动:NOR flash 不可见,内部 SRAM 映射到 0,NAND flash 的前 4 KB 被复制到内部 SRAM 并执行,第一阶段加载器将 U - boot 从 NAND 复制到 SDRAM 并执行。
2. LED 和按钮映射
四个 LED 和六个按钮被映射到通用 I/O(GPIO)端口:
- LED 使用 GPIO 端口 B(GPB),
超级会员免费看
订阅专栏 解锁全文
3840

被折叠的 条评论
为什么被折叠?



