F28335的储存器及其地址分配
F28335的储存器及其地址分配1. F28335的储存器2. F28335的储存器的地址分配3. 寄存器特点4. 程序段在储存区间分配1. F28335的储存器F28335采用多流水线的增强的哈佛总线结构。其具有多种储存器,有256K × 16位的FLASH,34K × 16位的SRAM,8K × 16位的BOOT ROM,还有2K × 16位的OPT ROM。此外,F28335还有外部并行..
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 × \times × 16位),L0~L7都是(4K × \times × 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空间。
Boot Loder一般涉及引导模式的设定、程序搬移、程序运行首地址的设定等几个步骤。F28335有多种引导模式,在一般特定的启动模式中,可以利用TI集成在片上的BootLoder程序。
BootLoder程序与中断向量表、浮点计算数学表都存放在一个8K×16大小的BOOT ROOM中。
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 |
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)