学习笔记——ARM Cortex-M0 存储器系统
来源:互联网 发布:校园网络应急预案 编辑:程序博客网 时间:2024/05/22 05:26
1. Cortex-M0 的两种总线协议:
1)AHB_Lite 系统总线协议:32位地址线,高速高性能访问(Flash, SRAM,总线桥,外部存储器接口)
2)APB 外设总线协议: 32位, 外设等较慢设备通讯(I/O,Timer, UART, Watch Dog。)
系统总线和外设总线是相互分离的,两种总线通过总线桥连接通讯,时钟频率控制不同,可能有多个外设总线段,并且每个段运行在不同的时钟频率下。有些高速外设是直接连接在AHB_Lite系统总线上的。
2. 存储器映射(4GB地址空间)
Cortex-M0(+)处理器的4G存储空间从架构上被分为多个区域。总的被分成8个大部分,每个部分512M。
Cortex-M0处理器架构定义的存储器映射
虽然映射已经被架构预先定义,但是实际分配却是很灵活的。
存储器设计的一个例子:
3. 程序存储器(Flash),Bootloader和存储器重映射
1)程序存储器一般使用片上Flash,不过也可以使用外部或其他类型存储器设备(EEPROM)
2)Flash存储器一般是从地址0开始,当Reset 后,会首先访问0地址的向量表,取得MSP的初始值和复位向量。
3)Bootloader 是位于芯片上的一小段加载引导程序,与用户应用程序是分开的。
4)存储器重映射:系统总线的一种存储器映射切换特性。Bootloader执行时会设置硬件寄存器来控制重映射。常见的处理方式是通过地址别名被重映射到地址的开头。
5)Bootloader其他特性:硬件初始化(时钟,PLL设置),多种启动配置,固件保护,Flash擦除工具。
6)SRAM重映射到地址0,code可以被复制到SRAM并以最快速度执行,可以避免取向量的等待时间。
4. 数据存储器(SRAM)
1) Cortex-M0数据存储:数据(全局变量、静态变量、数据结构)、栈存储(临时数据、局部变量、函数调用参数传递和异常处理的寄存器备份)和堆存储(C函数自动分配存储区域:alloc()、malloc()).
2)没有OS,就之后使用一个栈(MSP),数据存储分配如下:
SRAM常见数据存储使用示例
5. 支持小端和大端
1)Cortex-M0支持大端和小端两种存储,都支持字节(8bit)、半字(16bit)和字(32bit)传输, 存储器会根据传输大小和地址的最低两位选择数据链路。
2)大端模式:字节不变模式(BE8)和字不变模式(BE32), 字数据最低字节会保存在24到31位;
3)小端模式:字数据最低字节会保存在0到7位;
4) 多数情况下,连接到APB的外设应该用字传输,因为APB协议没有定义传输宽度信号,都被默认为字大小,因此,通过APB访问的外设寄存器通常被声明为”volatile unsigned integer“。
5)Thumb指令只能产生对齐访问(字对齐,半字对齐,字节对齐),传输地址只能是传输大小的整数倍。
6) C程序直接操作一个指针或用汇编,可进行非对齐传输。
6. 存储器属性
存储器访问属性:可执行(Executable),可缓冲(Bufferable),可缓存(Cacheable),可共享(Shareable)。
- 学习笔记——ARM Cortex-M0 存储器系统
- 学习笔记——ARM Cortex-M0 异常与中断
- 学习笔记——Cortex-M0中断控制和系统控制
- ARM Cortex-M0+Kinetis L系列学习笔记_Common.c
- ARM Cortex-M0+Kinetis L系列学习笔记_MKL25Z4.h
- 【Cortex-M0】3 ARM Cortex-M0
- ARM 指令 CORTEX-M0
- 浅谈ARM Cortex-M0
- ARM Cortex-M0系列笔记1-ARM简介
- ARM Cortex-M0+Kinetis L系列学习笔记_GPIO端口设置
- ARM Cortex-M0+Kinetis L系列学习笔记_MCG模块简介
- 新唐Cortex—M0学习红外发射
- 【Cortex-M0】2 ARM概述
- 32位Cortex-M0微控制器——LPC1200 系列ARM
- 简述Cortex-M0—4各个优势
- 【Cortex-M0】19.5系统复位
- Cortex m0+内核架构笔记
- ARM Cortex-M3,Cortex-M0,Cortex-A8的主要区别
- C语言中~的用法
- 糟糕的2G安全: 你附近的空中通话
- Largest Number -- leetcode
- Linux内存管理
- Spring中@Autowired注解、@Resource注解的区别
- 学习笔记——ARM Cortex-M0 存储器系统
- 【Android】图片资源的访问与网格式图片浏览器
- unix环境高级编程——进程环境
- linux中vi命令
- 矩估计
- 文章标题
- Extjs布局
- OJ—— 复数类--重载运算符2+
- 火光冲2米高 以为是特效 现场燃灼性不明粉末扩散 负责人已被带走