再识M4—F429
2016-03-02 21:22
796 查看
时隔一年再次学习Cortex-M4内核,既熟悉又陌生。熟悉——是因为以前接触过,陌生——是因为以前没有深入理解。
首先看看F429的内核架构,
内核与外部设备通讯有三条总线,分别是I-Code、D-Code及系统总线。I-Code用于取FLASH中的指令,而D-Code则是专门用于取数据表中的数据,系统总线(S-Bus)用于访问内存和外设。
STM32存储器架构
内核给它的外设编了号,即每个外设都有自己的独立地址,内核通过地址就可以找到相应的外设。STM32的片上外设分布在0x4000 000的地址控件,内核通过地址寻找到片上外设后,对特定外设的地址写入特定的数据,就可以控制该外设。由于寄存器是一种特殊的内存,而且有特定的地址,所以我们在编程时使用C语言的指针操作,可以对特定地址写入特定参数。
外设地址映射
1、总线基地址
——外设相应总线的最低地址称为该总线的基地址。
“相对外设基地址偏移”即该总线地址与“片上外设”基地址0x4000 0000的差值。地址偏置就如同现实生活中的住址编号,“片上外设”是一条街道名称,该街道编号0x0001 0000的是APB2小区。
2、外设基地址
AHB1总线上挂载着各种外设,这些外设也有自己的地址范围,特定外设的首个地址称为“x外设基地址”。x外设相对于其总线的地址偏移就相对于小区(总线)内的房子编号。
3、外设寄存器
在该外设的基地址范围内,就是它对应的寄存器地址。这些寄存器就是房子(外设)内的各种设施了。
下一篇在写如何利用C语言对寄存器封装。
首先看看F429的内核架构,
内核与外部设备通讯有三条总线,分别是I-Code、D-Code及系统总线。I-Code用于取FLASH中的指令,而D-Code则是专门用于取数据表中的数据,系统总线(S-Bus)用于访问内存和外设。
STM32存储器架构
内核给它的外设编了号,即每个外设都有自己的独立地址,内核通过地址就可以找到相应的外设。STM32的片上外设分布在0x4000 000的地址控件,内核通过地址寻找到片上外设后,对特定外设的地址写入特定的数据,就可以控制该外设。由于寄存器是一种特殊的内存,而且有特定的地址,所以我们在编程时使用C语言的指针操作,可以对特定地址写入特定参数。
外设地址映射
1、总线基地址
——外设相应总线的最低地址称为该总线的基地址。
“相对外设基地址偏移”即该总线地址与“片上外设”基地址0x4000 0000的差值。地址偏置就如同现实生活中的住址编号,“片上外设”是一条街道名称,该街道编号0x0001 0000的是APB2小区。
2、外设基地址
AHB1总线上挂载着各种外设,这些外设也有自己的地址范围,特定外设的首个地址称为“x外设基地址”。x外设相对于其总线的地址偏移就相对于小区(总线)内的房子编号。
3、外设寄存器
在该外设的基地址范围内,就是它对应的寄存器地址。这些寄存器就是房子(外设)内的各种设施了。
下一篇在写如何利用C语言对寄存器封装。
相关文章推荐
- Android图片缓存及内存溢出
- 结构体嵌套对齐
- web跨域的解决方法总结
- 传统框架云化迁移到内存数据平台
- 2本地搭建服务器
- P103 Dijkstra算法 单源最短路问题优化算法
- eclipse快捷键大全
- ui-router路由控制器(一)
- 【extjs】 Extjs中的Ext.grid.Panel隐藏列会显示在表头中解决方法
- [成长记录]毕业设计的那段日子2
- HDU 1052 Tian Ji -- The Horse Racing 贪心
- nginx虚拟主机配置
- SQL读书笔记(三)
- Fragment实现的Tab标签
- 图片滑动时钟
- Linux内核分析——第二周学习笔记
- 多线程-图片顺序出现
- 安装vsftp流程整理
- spark源码学习(九)--- shuffle过程源码分析
- Java中的对象克隆