F2812存储器映射及CMD详解_第1页
F2812存储器映射及CMD详解_第2页
F2812存储器映射及CMD详解_第3页
F2812存储器映射及CMD详解_第4页
F2812存储器映射及CMD详解_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2812存储器映射及CMD2812存储器映射2812具有32位的数据地址和22位的程序地址,总地址空间可以达到 4M的数据空间和 4M的程序空间。32位的数据地址,就是能访问2的32次,是4G而22位的程序地址,就是能访问2的22次,是4M其实,2812可寻址的数据空间最大是 4G但是实际线性地址 能达到的只有4M原因是2812的存储器分配采用的是分页机制,分页机制采用的是形如0xXXXXXXX勺线性地址,所以数据空间能寻址的只有4MTMS320F2812 Memory Map3FF000*3FFCCO.蚊孚卿功韭3FFCC0-3FFFg引导密载功能3FFFC0*3FFF FFi良位向挺 uc

2、pura 呻一乾从內部引 导R展作向 至的是位于 3FFFCO册冥忖 向並世是厂冠 塘向初 姑E引吊甌 血WlP 该別数用于启动 引异藻忙0x00 0000MOSARAM(IK)0x00 0400M1 SARAM(1K)0x00 0800PF0(2K) 10x00 0D00PIE vector0x00 1 000reserved0x00 6000PF2(4K)0x00 7000IJJETcISb reserved0x00 8000LO SARAM (4K)0x00 90000x00 A000reserved0x3D 7800OTP(1K)reserved0x3D 8000 0x3D 7C00F

3、LASH (128K)128-Bit Password0x3F 8000HO SARAWI (8K|0x3F A000reservedJjx3F FOODBoot ROM (4K)MP/MC=0Ox3FFFtOBROM vector (32)MP/N!C=0 ENPIEOData | Progmm2812的存储器被划分成了下面的几个部分:XINT Zone 0 (8K)XINTXonelK)Data | ProgramCSM: LO? L1 OTP, FLASHre&ervedXINTZort© 2(d5IW)汽 XINTZone6(0.5M)reservedXINT Zon

4、e 7 (16K)MP/MC=1XINT Vec1or-RAM (32)MP/MC=1 ENPIE-0OxQO 20000x00 40000x08 00000x10 00000x18 00000x3F C000程序空间和数据空间。2812所具有的RAM ROM和FLASH都被统一编址,映射到了程序 空间和数据空间,这些空间的作用就是存放指令代码和数据变量。1. 保留区。数据空间里面某些地址被保留了,作为CPU的仿真寄存器使用,这些地址是不向用户开放的。2. CPU中断向量。在程序空间里也保留了 64个地址作为 CPU的 32个中断向量。通过 CPU寄存器ST1中的VMAPS来将这一段地址映射到

5、程序空间的底部或者顶部。映射和空间的统编址存储器映射图3映射和空间统一编址的理解F2812内部的映射空间低地址空间低地址空同OxOOOO 0000矢嚴 RAM fVMAP二0)0x0000 0010MO SAEAAI0工0000 0400ML SARAM (1K+16)0x0000 0600外FrameO <2K*16)00000 0D00PIE Aft <256*16. VMAP=1>0x0000 1000保留空fil0x0000 60000x0000 7000外设帧F口血1OxOQOO 900011 SABAM (4K*】O0x0000 AOOO保留空间高地址空间高地址空

6、间0x0030 7800OTP (1K*16 并保留 IK)OxOO3D 8O000k003F 7FF7FLASH (128K16)OxOO3F 7FF8-0x003F 7FFF128位密钥0x0O3F 8000HO SARAM (8K*16)OxOO3F A000保留空间OxOO3F F000Boot Rom(lK*16 MP/MC=O)0x0O3F FFCOBRCM 向量(VMAP二 1 MP/MC=O ENPIEO)2812CM详解CMD commanc命令,顾名思义就是命令文件指定存储区域的分配.2812 的CMD采用的是分页 制,其中PAGEC用于存放程序空间,而PAGE1用于存放数

7、据空间。1.)#pragma,CODE_SECTION和 DATA_SECTIO伪指令#pragma DATA_SECTION(fu ncA,"dataA");函数外声明将funcA数据块定位于用户自定义的段"dataA"中-一需要在CMD中指定dataA段的物理地址2. ) MEMOR和 SECTIONS是命令文件中最常用的两伪指令。 MEMOR伪指令用来表示实际存在 目标系统中的可以使用的存储器范围, 在这里每个存储器都有自己的名字, 起始地址和长度。 SECTIONS伪指令是用来描述输入端是如何组合到输出端内的。以常用的 F2812_nonBIOS

8、_RAM.cmd F2812_nonBIOS_Flash.cmd 和 DSP281x_Heade rs_nonBIOS.cmd 为例F2812_nonBIOS_RAM.cmd -用于仿真,无BIOS 系统,片外 SRAM配置MEMQFL?£PAGE 0 =PAMM0BEGINPRAMHORESET:origin = :arigin = :origin = :oriiiL =0x000000,Qx3F8000,0x3FeO02,0s3FFFcBlength = Ox 000400 length = 0x000002 length OhOOOFFE length = 0000002PAG

9、E 1 :RAKil : ori g-in = lx 0 004r "i, length =04C 0LRAMH0 : origin = 0x3f9000, length = 0x001000SECTIONScodest呂匸t:>BEGM,P.AGE=0ramfuiics:>PRAMH0PAGE0-text:>PRAMH0,PAGE.=DGLIll t:>PRAMH0,PAGE=a.pinit:>PRAMH0,PAGE=0.switch:RAMM0,PAGE0reset:>RESET,PAGE=0, TVPE = DSECT ,宀卫me心-stac

10、k:>RAWM1,PAGE=1_ebss:>DRAMH0,PAGE=1econst:>DRAMH0,PAGE=1.esysineni:>DRAMH0,PAGE1CMD文件里有两个基本的段:初始化段和非初始化段。初始化段包含代码和常数等必须在FLASH等非遗失性存储器中,非初始 所以非初始化段必须链接到易失性存SP上电之后有效的数。故初始化块必须保存在如片内 化段中含有在程序运行过程中才像变量内写数据进去, 储器中如RAM已初始化的段:.text,.ci nit,.c on st,.ec on st,.p in it禾口 .switch.text :所有可以执行的代码和常

11、量.cin it:全局变量和静态变量的C初始化记录con st )的初始化和说明.const :包含字符串常量和初始化的全局变量和静态变量(由.econ st :包含字符串常量和初始化的全局变量和静态变量(由far con st )的初始化和说明.pinit :全局构造器(C+程序列表.switch :包含switch声明的列表段存储类烈页.textROM OR RAM (FLASH)0.cinitROM OR RAM(FLASH)0constROM ORRAM(FLASH)1.econstROM OR RAM(FUl.SH)1 pinitROM ORRAM(FLASH)0 switchROM

12、 OR RAM (FLASH)0,1非初始化的段:.bss,.ebss,.stack,.sysmem, 和 esysmem (更好的理解就是,这些段就是存储空间而已).bss:为全局变量和局部变量保留的空间,在程序上电时.ci nit空间中的数据复制出来并存储在.bss空间中。.ebss :为使用大寄存器模式时的全局变量和静态变量预留的空间,在程序上电时,cinit空间中的数据复制出来并存储在.ebss中.stack:为系统堆栈保留的空间,用于和函数传递变量或为局部变量分配空间。.sysmem:为动态存储分配保留的空间。如果有宏函数,此空间被宏函数占用,如果没有的话,此空间保留为0.esysm

13、em:为动态存储分配保留的空间。如果有far函数,此空间被相应的占用,如果没有的化,此空间保留为 0.段存储器类塑页.constRAM1+已匚onstRAM1stackRAM1<AM1.esysmemRAM1F2812_nonBIOS_Flash.cmd -用于无 BIOS 从片内 FLASH引导MEMORYPAGE 0:Progrrir 恥血ry 产# fAvoorv (RAM"FLASH VTF) blocks cd/i g iravE to RAGE? for dste aJJacatja/f *ZOMEO:origin -0x0020011,lercth-0x30200

14、0“ XI2JTF 二 ex 0 20NE1:origin 0x004000,length 0x002000“ XIJHT hcx 】 fRANLO:origin OxOOBOOO.length 0x001000# * M-rhip RAM hJaek LO */ZONEZ:origin OxDBOOOO.length 0x080000“ XINTFJZ0NE6:origin «0x100000,length 0x080000XI/JTF zaap 6OTP:origin -0x3D79O0rlength-0x000900八 WGbip OTP ”FLASHJ:origin -Oz3

15、DBOOO,length-0x302000 " onFLASH /FLASHI:origin =Ox3DAOOO,length=0x002000"FLASHFLASHH:origin Ox3DCOOO,length Ox 304000八 q力-rJfjp FLASH /FLASHG:origin Ox3EOOOO>length 0x004000, o/i -chip FLASH ,FLAS1IF:origin 0x9E40O0rlength 0x004000八 QDdp FLASH /FLASHE;origin Ox3E8DOO,length 0x004000 wCi

16、p FLASH FLASHD:origin Ox3ECOOOrlength-0x004000 cjt-c/tip FLASH #FLASHC:origin -0x3F03O3,length-0x304000 ojsyJuf FLASH /FLASHA:origin =OX3F6DOO.,匚r=OXD01F80M-chip FLASHCSH_RSVD:origin -0>: -7H0.length-0X000076/ Frt c, FLASHA.Fmgrwv 特让h oJJ &OQOQ 科hen Cf is in ze.BEGIN:origin 0x3F7FF6>length

17、 0x000002* fart af FLASHA. 2d for "boot g Flesh “ bgtWdd仇 mode. CSH.PWL:origin -0x3F7FF6rlength 0x000000Fart 2 FLASfi4 CSKgz初rd lctcticms j/j FLAiA / 7(WF7 CTJ0",小FWM.-ggMFOO * XI/7TF re* 7j f MP ”ROM:origin -Ox3FFOOO,length OxODOFCO/ Boot*4/占A/o jfRESET:origin i.length 0x300002“ * part af

18、 boot /tiVf (ffP'MCn <7/ or X1KTF zone 7 MP *)/VECTORS:origin 0x3FFFC2.length 0x90003E纹c t/KVf (MPNCnCf)ar XltHT zone7/PACE 1 :"D&ts M&tncry ”/ Memory (RiN"FLASH VTF) bJockst e力 batc PAGFO for prcrMt aJJca tion “"rwaia on PAlEJ/RANM0:origin 0x03DDO3xlength 0x303400oji-c

19、hip EAH b2oc£ MQ RAMM1:origin-0x000400,length 0x000400g -chip RM A/gf Hl RAML1:origin OiiDHDDXlength 0x001000g chip RAM block LI FLASHB:origin Ox3F4000,length 0x002000GRFSE <zRAMHO:origir(H3FBOOO.length oxaozoooa/i-rJiip RAM bJark HO *SECTIONS,cim t-P i n 11,tet ccdestert ramFunes平”:> fLA

20、SHA PAGE :> FLASHA, PAGE :> fLASHA PAGE :> BEGIW PAGE :LOAD - FLASHD,RUN = RAMLO,LOAD_START _RamEuncsLoadStart' LOAD_END (_Reiiut?uncsLDaklEiid) ” RUN STAET (_Rainf uncsRunStart) * PAGE = 0CGti_rsvdPAGE = DPAGE = 0.stack:> A14M0PAGE =1 ebss:> AMLlPAGE =i,eay5meni:>PAOE -i"

21、"菁 Inis&ctions g© in FJctsh f1 古Iffii& T加敢gm刖 to护富罗审i7:> FLASHA :> FLASHAPAGE -n.switchPAGE -0JlerCSJiIQnatli:> FLASHCPAGE =0Math Cods 狀IQnatliTables: >咖PAGE =o,TYPE=NOLOADMath Tahl&s,rset:> 2E呂ET,PAGE =0,IYFE=DSECTvectors;> VECTORSPAGE =0,TYPE=DSECTt > CSM

22、_PWL:> CSM_RSVDJj?左OH 3对于程序在FLASH中运行时,需要 注意的:DSP在150M时钟频率下,FLASH中只能提供大 约120M的时钟频率,所以有时候我们希望在 RAM中运行时间敏感或计算量很大的子程序 (比 如AD采样)。但是我们所有代码都放在 FLASH中,这就必须在 上电后将FLASH中的这段敏 感程序复制到 RAM中运行,加快速度。这是在.CMD文件就必须划分一段用来设置 RAM勺载 入和运行地址。程序代码如下:SECTIONS ramfu ncs : LOAD = FLASHD,RUN = RAML0,LOAD_START(_Ramfu ncsLoadS

23、tart),LOAD_END(_Ramfu ncsLoadE nd), RUN_START(_Ramfu nesRu nStart),PAGE = 0DSP281x_Headers_ non BIOS.cmd的存储器空间用于无BIOS,外设寄存器产生的数据段映射至对应MEMORYPAGE 0:DEV_EMU:origin =0x000880, length=0x000180dzig eiulstioi: registers 參/PIE_VECT:origin =DxOOODOO, length=0x000100PrE V&c:tar TcbJeFLASH_REGS:origin =Ox

24、OOOA80. length=0x000060FLASH registers:"CSM:origin =DxOOOAEO, length=0x000310code secun ty jnadide registers fX1NTF:origin =OxOUUbZU, length=UXUUUJZUexterna J interfece agistersCPU.TIMEPO:origin =DxOOOCOO# length=0x000308CPU TdgT"CPU TIMER1:origin =OxOOOC08z length=0x000008CPU Timerl regis

25、ters "CPU.TIMER2:origin =DxOOOClOz length=0x000308CFU T2er2 registers fPIE.CTRL:origin =OxOOOCEO, longth=0x000020X*FTE aon trcr2 rgimtcMW ,/ECANA:origin =0x006000z length 0x000040X*control and status registers 此/ECANA_LAM:origin =0x006040z length=0x000040X*讯】4" local dcaeptsnce idsks "

26、;ECANA MOTS:origin -0x006000z length 0x000040ECANA MOTO:origin Ox0060COz length-0x000340/踣讯 I4/V object time-cut registers 此”ECANA MBOX:origin -0x006100. length-0x000100X*&】如 msilbcxesSYSTEM:origin -0x007010z longth» 0x000020Syrstct/n UQ/itral wgiwt&pSPIA:origin 0x007040 length=0x000310

27、SPI registers "/SCIA:origin =0x007050, length=0x000310registers 此/XINTRUPT:origin =0x007070. length=0x000310terns 1 interrupt registersGP IOMUX:origin =Dx0070CO length=0000020GPIO mix占fGPIODAT:origin =Dx0070EOp length=0x000020GPIO data registersABC:origin =0x007100 length=UxUClUJ2UAL)C register

28、sEVA:origin =0x007400, 1令ngth=0x000340EVB:origin =0x007500. length=0x000340/奏t Msnsger B registers fSCIB:origin =0x007750. length 0x000310SCI-E registers "MCBSPA:origin -0x007800z length 0x000040CSM PWL:origin =Dx3F7FF8r length 0x000308Frt of FLASHA. CSM password locdtions."PAGE 1:Data M&a

29、mp;ncay "SECTIONSPAGE = 1PieVectTobleFile : > PIE_VECT,0t&r Structir&s董素晋hrvEinuRegsFi le:> DEV_EMU,PAGE - 1FlashRsgsFLle:>FLASH_REGS,PAGE =1CsmRegsFile:>CSM,PAGE =1XintfRegsFLle:>XINTF,PAGE =1CpuTimrORg'eFi le:>UPU_TTKE眄PAGE =1CpuTiinerlResF l Le:CPTJ_TIKERL,PAGE =1CpuTimer2RegrsFile:>CPU TIMER2,PAGE =1Pi寻CtrlRegsFile:>PIE CTRL,PAGE =1* Pen曲曰沁 Fre 2 &g2ter Structures 才ECanaRegsFile:>ECANA,PAGEECaneLAKRegsFile:>ECANALAMPAGEECanaMboxesFiIs:>EMNA._b£BOXPAGEECanaMOTSReg-sFi le:>ECANAIbfOTSPAGEECainaMOTORe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论