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 |