当前位置:文档之家› STM32处理器内部结构

STM32处理器内部结构


堆栈指针 程序状态寄存器
程序链接寄存器
APSR

4.2 存储器的组织与映射
4.2 存储器的组织与映射
S3C44B0X
4.2 存储器的组织与映射
4.2.1 存储组织
Cortex-M3 处理器的存储系统采用统一编址方 式;程序存储器、数据存储器、寄存器以及输 入输出端口被组织在同一个 4GB 的线性地址 空间内;
4.2 存储器的组织与映射
特点: 特点:多级存储器 层次: 层次: 寄存器组 √ 片上RAM 片上 片上Cache √ 片上 主存储器 √ 硬盘
ARM层次 层次
寄存器组 片上Cache 片上 主存储器
ARM7层次 层次
“老”ARM7状态下寄存器组织 老 ARM7状态下寄存器组织
4.2 存储器的组织与映射
小端方式存放。
4.2.2 STM32 处理器存储器映射
STM32 系列处理器将可访问的存储器空间被 分成 8 个主块,每个块为 512MB。
处理器内部存储器、片上外围设备的地址映射 以及分配给片上各个外围设备的地址空间请参 照书籍。
4.3 位段
Cortex-M3 存储器空间中包括两个位段区: SRAM 区的最低 1MB空间和外设存储区的最 低 1MB 空间。 这两个位段区分别与两个 32M 的位段别名区 对应,位段区中的每一位映射到位段别名区中 的一个字。 通过对别名区中某个字的读写操作可以实现对 位段区中某一位的读写操作。
STM32F10x 处理பைடு நூலகம்总线结构
总线结构中各单元的功能
ICode 总线:将 Flash 存储器指令接口与 Cortex-M3 内核的指令总线相连接,用于指 令预取; DCode 总线:将 Flash 存储器的数据接口与 Cortex-M3 内核的 DCode 总线相连接,用于 常量加载和调试访问; System 总线:将Cortex-M3 内核的 System 总线(外设总线)连接到总线矩阵;
位段别名区中的字与位段区的位映射公式
bit_word_addr = bit_band_base + (byte_offset x 32) + bit_number × 4 例如:SRAM 位段区中地址为 0x20000300 的字节中的位 2 被映射到别名区中的地址为: 0x22006008(= 0x22000000 + (0x300*32) + (2*4))的字。
第四章 STM32 处理器总线结构和存储器
4.1 4.2 4.3 4.4
系统总线构架 存储器的组织与映射 位段 启动配置
4.1 系统总线构架
四个主动单元:Cortex-M3 内核的 ICode 总 线(I-bus)、DCode 总线(D-bus)、 System 总线(S-bus)和通用 DMA(GPDMA)。 三个被动单元:内部SRAM、内部Flash 存储 器、AHB 到 APB 的桥(AHB2APBx,连接 所有的 APB 设备)。
4.3 位段
对别名区中某个字进行写操作,该字的第 0 位 将影响位段区中对应的位。 对别名区中某个字进行读操作,若位段区中对 应的位为 0 则读的结果为 0x00,若位段区中 对应的位为 1 则读的结果为0x01。 对别名区的读写可以实现对位段区中每一位的 原子操作,而且仅只需要一条指令即可实现。
读:
①#define addr1 *((volatile unsigned short*)0x00) i=addr1; ②i=*((volatile unsigned short*)0x00); 写: *((volatile unsigned short*)0x00) = (unsigned short)i ;
总线结构中各单元的功能
DMA 总线:将DMA 的 AHB 主控接口与总线 矩阵相连;
总线矩阵:用于连接三个主动单元部件和三个 被动单元,负责协调和仲裁Cortex-M3 内核和 DMA 对 SRAM 的访问,仲裁采用轮换算法。 AHB/APB 桥:两个 AHB/APB 桥在 AHB 和 2 个 APB 总线之间提供完全同步连接。
思考:STM32F103能用这个吗?
举例:扩一个1M*16b的FLASH用于 装载程序等
1. 收集资料,选择芯片 . 收集资料, 2. 上网查找 上网查找SST39VF160芯片资料 芯片资料() 芯片资料 3. 查看芯片资料(datasheet) . 查看芯片资料(datasheet) 4. 画出硬件联接图(手册p4~p5) . 画出硬件联接图(手册p4 5. 写出程序 . ①查看读写时序图(p11) 查看读写时序图(p11) ②找出对应参数表(p10) 找出对应参数表(p10) 分析时序要求, ③分析时序要求,配置相应特殊功能寄存器 ④写出读写子程序
4.4 启动配置
系 统 启 动之 后, CPU 从 位 于 0x0000 0000 地 址 处 的 启 动区开始执行代码。 对 于STM32F10x 系列处理器,可以通过配置 BOOT[1:0]引脚选择三种不同启动模式。
启动模式配置
4.4 启动配置
通过设置 BOOT[1:0]引脚,各种不同启动模式 对应的存储器物理地址将被映像到第 0 块(启 动区)。 系统复位后,在 SYSCLK 引脚的第4 个上升 沿,BOOT 引脚的值将被锁存。
相关主题