F28335的储存器及其地址分配
1. F28335的储存器
F28335采用多流水线的增强的哈佛总线结构。其具有多种储存器,有256K × 16位的FLASH,34K × 16位的SRAM,8K × 16位的BOOT ROM,还有2K × 16位的OPT ROM。此外,F28335还有外部并行拓展接口XINTF,可以进一步外拓储存空间。
2. F28335的储存器的地址分配
F28335的储存器的地址分配见下图:
F28335的储存器地址是唯一的,不能重复交叉定义。
以下具体对各个区间进行说明:
- M0向量RAM
该空间属于SRAM的M0中的一部分。当STE状态寄存器VMAP=0时,该区间作为中断向量的存储空间。
F28335中有34K × 16位的SRAM,包括M0、M1及L0~L7快。M0和M1都是(1K 16位),L0~L7都是(4K 16位)。 - M0 SRAM
该空间属于SRAM的M0中的剩余部分。 - M1 SRAM
该空间属于SRAM的M1。 - PF0
该空间属于外设帧空间之一。
外设寄存器的地址分别为PF0、PF1、PF2、PF3。 - PIE中断向量表
该空间为中断向量表空间。 - PF3 DMA
该空间属于外设帧空间之一。 - PF1
该空间属于外设帧空间之一。 - PF2
该空间属于外设帧空间之一。 - L0 SRAM
该空间属于SRAM的L0。 - L1 SRAM
该空间属于SRAM的L1。 - L2 SRAM
该空间属于SRAM的L2。 - L3 SRAM
该空间属于SRAM的L3。 - L4SRAM
该空间属于SRAM的L4。 - L5 SRAM
该空间属于SRAM的L5。 - L6 SRAM
该空间属于SRAM的L6。 - L7 SRAM
该空间属于SRAM的L7。 - FLASH
该空间属于FLASH。
F28335有256K × 16位的FLASH - 128位密码
该空间属于FLASH中的A段。 - TI OTP
该空间为OTP的部分,为TI用来测试的引导程序。
F28335有2K × 16位的OPT ROM。 - 用户 OTP
该空间为OTP的剩余部分。 - L0 SARAM
该空间为SARAM的L0。
SARAM空间为双映射空间,也就是名字相同,但是空间地址不同,有利于数据的备份。 - L1 SARAM
该空间为SARAM的L1。 - L2 SARAM
该空间为SARAM的L2。 - L3 SARAM
该空间为SARAM的L3。 - Boot ROM
该空间为BOOT ROM空间。
F28335有8K × 16位的BOOT ROM。 - BROM 向量表-ROM
该空间属于BOOT ROM空间的部分。
3. 寄存器特点
- FLASH和OTP
28335片上有 256K × 16位嵌入式FLASH储存器和 1K × 16位一次可编程EEPROM储存器,均受片上Flash中的密码保护。FLASH储存器由8个 32K × 16位扇区组成,用户可以对其中任何一个扇区进行擦除、编程和检验,而其他扇区不变。但是,不能在其中一个扇区上执行程序来擦除和编程其他的扇区。 - SRAM
28335片内共有34K × 16位单周期单次访问随机储存器 SRAM,分为10 个块,分别位M0、M1、L0~L7。
M0和M1快SARAM的大小均为 1K × 16位,当复位后,堆栈指向M1块的起始地址,堆栈指针向上生长。M0和M1段都可以映像到程序区和数据区。
L0-L7块SARAM的大小均为 4K × 16位,既可以映射到程序空间,也可以映射到数据空间,其中 L0~L3可映射到两块不同的地址空间并且受片上FLASH中的密码保护,以免存在上面的程序或者数据,被他人非法复制。
4. 程序段在储存区间分配
CMD文件就是将下面的段合理分配到储存空间中。
是否初始化 | 名称 | 描述 | 连接位置 |
---|---|---|---|
初始化 | .text | 代码 | FLASH |
初始化 | .cinit | 全局于静态变量的初始值 | FLASH |
初始化 | .econst | 常数 | FLASH |
初始化 | .switch | Switch表达式的表格 | FLASH |
初始化 | .pinit | 全局构造函数表(C++里的constructor) | FLASH |
未初始化 | .ebss | 全局与静态变量 | RAM |
未初始化 | .stack | 堆栈空间 | 低64K的RAM |
未初始化 | .esysmem | Farmalloc | RAM |