vcard-pdf编辑器怎么用
![0x000050](/uploads/image/0723.jpg)
2023年3月31日发(作者:文件夹变成exe)
LoaderOneormoresectionsofyourprogramfallsintoamemoryregionthatisnotwritable.
ourlinkerconfigurationandor
memorymap.
每天解决一个问题28——TMS320F28335的存储空间
来源:南东亮的日志
TMS320F28335的存储空间
MS320F28335为哈佛结构的DSP,在逻辑上有4M×16位的程序空间和4M×16位点的数据空间,但在物
理上已将程序空间和数据空间统一成一个4M×16位的空间。TMS320F28335片上有256K×16位的FLASH,
34K×16位的SRAM,8K×16位的BOOTROM,2K×16位的OPTROM。
1、TMS320F28335片上SARAM
TMS320F28335片内共有34K×16位单周期单次访问随机存储器的SARAM,分成10个块,他们分别称为
M0、M1、L0-L7。
MO和M1块SARAM的大小均为1K×16位,当复位后,堆栈指针指向M1块的起始地址,堆栈指针向上生
长。M0和M1段都可以映射到程序区和数据区。
L0-L7块SARAM的大小均为4K×16位,既可映射到程序空间,也可映射到数据空间,其中L0-L3可映射
到两块不同的地址空间并且受片上的FLASH中的密码保护,以免存在上面的程序或数据,被他人非法拷贝。
2、TMS320F28335片上FLASH和OTP
TMS320F28335片上有256K×16位嵌入式FLASH存储器和1K×16位一次可编程EEPROM存储器,他
们均受片上FLASH中的密码保护。FLASH存储器由8个32K×16位扇区组成,用户可以对其中任何一个扇
区进行擦除、编程和校验,而其他扇区不变。但是,不能在其中一个扇区上执行程序来擦除和编程其他的
扇区。
3、TMS320F28335外部存储器接口
TMS320F28335的外部存储器接口包括:20位地址线,16(最大32)位数据线,3个片选控制线及读
写控制线。这3个片选线映射到3个存储区域,Zone0,Zone6和Zone7。这3个存储器可分别设置不同
的等待周期。
Zone0存储区域:0X004000—0X004FFF,4K×16位可编程最少一个等待周期
Zone6存储区域:0X100000—0X1FFFFF,1M×16位10ns最少一个等待周期
Zone7存储区域:0X200000—0X2FFFFF,1M×16位70ns最少一个等待周期
以下是我写的一个RAM仿真的CMD文件,已经调试通过了,硬件设计的外扩的RAM为Zone6空间,
存储区域:0X100000—0X1FFFFF。
MEMORY
{
PAGE0:
/*BEGINisusedforthe"boottoSARAM"bootloadermode*/
/*BOOT_RSVDisusedbythebootROMforstack.*/
/*ThissectionisonlyreservedtokeeptheBOOTROMfrom*/
/*corruptingthisareaduringthedebugprocess*/
BEGIN:origin=0x000000,length=0x000002/*BoottoM0willgohere*/
BOOT_RSVD:origin=0x000002,length=0x00004E/*PartofM0,BOOTromwillusethisfor
stack*/
RAMM0:origin=0x000050,length=0x0003B0
RAML0:origin=0x008000,length=0x001000
RAML1:origin=0x009000,length=0x001000
RAML2:origin=0x00A000,length=0x001000
RAML3:origin=0x00B000,length=0x001000
CSM_RSVD:origin=0x33FF80,length=0x000076/*mwithall0x0000
whenCSMisinuse.*/
CSM_PWL:origin=0x33FFF8,length=0x000008/*swordlocations
inFLASHA*/
ADC_CAL:origin=0x380080,length=0x000009
RESET:origin=0x3FFFC0,length=0x000002
IQTABLES:origin=0x3FE000,length=0x000b50
IQTABLES2:origin=0x3FEB50,length=0x00008c
FPUTABLES:origin=0x3FEBDC,length=0x0006A0
BOOTROM:origin=0x3FF27C,length=0x000D44
ZONE6:origin=0x100000,length=0x040000/*XINTFzone6-dataspace*/
PAGE1:
RAMM1:origin=0x000400,length=0x000400/*on-chipRAMblockM1*/
RAML:origin=0x00C000,length=0x004000
ZONE6:origin=0x140000,length=0x040000/*XINTFzone6-dataspace*/
}
SECTIONS
{
/*Setupfor"boottoSARAM"mode:
Thecodestartsection(foundinDSP28_)
re-directsexecutiontothestartofusercode.*/
codestart:>BEGIN,PAGE=0
ramfuncs:>RAML0,PAGE=0
.text:>ZONE6,PAGE=0
.cinit:>RAML0,PAGE=0
.pinit:>RAML0,PAGE=0
.switch:>RAML0,PAGE=0
.stack:>RAML,PAGE=1
.ebss:>RAML,PAGE=1
.econst:>ZONE6,PAGE=1
.esysmem:>RAML,PAGE=1
IQmath:>RAML1,PAGE=0
IQmathTables:>IQTABLES,PAGE=0,TYPE=NOLOAD
IQmathTables2:>IQTABLES2,PAGE=0,TYPE=NOLOAD
FPUmathTables:>FPUTABLES,PAGE=0,TYPE=NOLOAD
.reset:>RESET,PAGE=0,TYPE=DSECT/*notused*/
csm_rsvd:>CSM_RSVDPAGE=0,TYPE=DSECT/*notusedforSARAMexamples*/
csmpasswds:>CSM_PWLPAGE=0,TYPE=DSECT/*notusedforSARAMexamples*/
}
下图为存储空间地址分配。
更多推荐
0x000050
发布评论