完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我们知道CPU(中央处理器)由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成,单片机工作时处理指令和数据都是需要通过总线寻址控制的,它们是如何通过地址精确地控制设备和数据的呢。
Cortex-M3的内核存储映射 以stm32103为例,首先它使用的是Cortex-M3的内核 让我们先看一看这4GB的划分的具体内容 内部SRAM区的大小是512MB,用于让芯片制造商连接片上的SRAM,也就是ST的STM32芯片,这个区通过系统总线来访问。在这个区的下部,有一个1MB的区间,被称为“位带区”。该位带区还有一个对应的、32MB的 “位带别名(alias)区”,容纳了8M个“位变量”(对比8051的只有128个位变量)。位带区对应的是最低的1MB地址范围,而位带别名区里面的每个字对应位带区的一个比特。位带操作只适用于数据访问,不适用于取指。 另外除了片上外设和片上sram外还分配了两个1g的地址用于连接外部RAM和外部设备,它们之中没有位带,两者之间的区别在于外部RAM区允许执行指令,而外部设备区则不允许。 私有外设总线有两条:STM32的存储映射 因为STM32F103使用的是M3的内核,所以它需要遵守M3预分配的原则 其中 ARM Cortex-M3 存储器映射 以Stm32F103ZE为例,有512kb的flash,64kb的SRAM 1、片上ROM,0x00000000~0x1FFFFFFF上,嵌入式闪存也就是flash分配地址从0x08000000-0x0807FFFF; 其他地址功能如下 嵌入式闪存也就是flash被分配在代码区 2、片上SRAM,在0x20000000~0x3FFFFFFF上,使用地址从0x20000000-0x2000FFFF 这些在keil的配置文件里可以体现 3、像GPIO、USART、TIM这些stm32外设被分配在0x40000000~0x5FFFFFFF中,打开一个库工程文件打开stm32f103x.h文件我们可以看到其中对这些地址的配置,PERIPH_BASE就是外设的基地址,其他的外设都在这个基地址上加上偏移量得到。 看一下stm32的系统架构,不同的外设分布在各自总线上。详见《STM32F10xxx参考手册》2.3节 其他区域参照Cortex-M3的内核存储映射规划 |
|
|
|
只有小组成员才能发言,加入小组>>
3278 浏览 9 评论
2955 浏览 16 评论
3455 浏览 1 评论
8987 浏览 16 评论
4050 浏览 18 评论
1102浏览 3评论
570浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
568浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2301浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1857浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 02:51 , Processed in 1.245074 second(s), Total 81, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号