将程序从Flash搬运到RAM中运行总结解析_第1页
将程序从Flash搬运到RAM中运行总结解析_第2页
将程序从Flash搬运到RAM中运行总结解析_第3页
将程序从Flash搬运到RAM中运行总结解析_第4页
将程序从Flash搬运到RAM中运行总结解析_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、F2812程序从Flash搬到RAM中运行【非本人原创】第一步:/ Fun cti ons that will be run from RAM n eed to be assig ned to/ a differe nt sect ion. This secti on will the n be mapped using/ the lin ker cmd file.#pragma CODE_SECTION(EPwm1_timer_isr, ramfu ncs;#pragma CODE_SECTION(EPwm2_timer_isr, ramfu ncs;MAIN(/ These are def

2、ined by the linker (see F2808.cm在 CMD 里面定义的变量 externUi nt16 Ramfu ncsLoadStart;exter n Uin t16 Ramfun csLoadE nd;exter n Ui nt16 Ramfu ncsRu nStart;User specific code, en able in terrupts:/ Copy time critical code and Flash setup code to RAM/ This in cludes the followi ng ISR fun cti ons: EPwm1_time

3、r_isr(, EPwm2_timer_isr(/ EPwm3_timer_isr and and In itFlash(;/ The Ramfun csLoadStart, Ramfun csLoadE nd, and Ramfun csR un Start / symbols are created by the lin ker. Refer to the F2808.cmd file. MemCopy(&Ramfu ncsLoadStart, &Ramf un csLoadE nd, & Ramfu ncsR un Start;/ Call Flash Initialization to

4、 setup flash waitstates/ This function must reside in RAMInitFlash(;/FLASH初始化的函数不能在FLASH里面运行,必须拷到别的 内存 空间里运行才能对FLASH进行初始化。第二步:将要从FLASH里面加载到RAM的函数定义到ramfuncs/ Fun cti ons that will be run from RAM n eed to be assig ned to/ a differe nt sect ion. This secti on will the n be mapped to a load and / run

5、address using the lin ker cmd file.#pragma CODE_SECTION(I ni tFlash, ramfu ncs;第三步:CMD文件:MEMORYPAGE 0:PRAML0 : origin = 0x008000, le ngth = 0x000800 FLASHA : origin = 0x3F6000, len gth = 0x001F80 SECTIONSramfu ncs : LOAD = FLASHA,RUN = PRAML0,LOAD_START(_Ramfu ncsLoadStart,LOAD_END(_Ramfu ncsLoadE n

6、d,RUN_START(_Ramfu ncsRu nStart,PAGE = 0总结:在MAP文件里:从FLASH加载到RAM运行的程序会有二个实际的存储 空间,一个在FLASH里面,另一个在 RAM里。ramfuncs : LOAD = FLASHA,/指定 了要加载程序存储在FLASH里面的地址段。RUN = PRAML0,/指令了在RAM里运行程序的RAM空间段。 LOAD_START(_Ramfu ncsLoadStart,/_Ramfu ncsLoadSt art 指向了 FLASH 里的程序 起始地址,LOAD_END(_RamfuncsLoadEnd,/_RamfuncsLoad

7、End指向了 FLASH 里的程 序结束地址ramfuncs功能指令了存在于FLASHA里面的一个连续代码段空间,并且为这段 代码空间分配了一个在RAM里运行的指针(RamfuncsRunStart,应用时我们道先要 将加载到RAM里运行的程序通过#pragma CODE_SECTION指令分配到这一个连 续的代码空间,然后通过MEMCPY指令存在于FLASH里的代码复制到能足够容 纳的RAM空间里MAP文件里的表现:SECTION ALLOCATION MAPramfu ncs 0 003f65d6 0000004d RUN ADDR = 00008000003f65d6 0000001b

8、DSP2802x_SysCtrl.obj (ramfu ncs003f65f1 00000004 DSP2802x_usDelay.obj (ramfu ncs003f65f5 0000002e Example_2802xFlash.obj (ramfu ncs.ci nit 0 003f6623 00000019003f6623 0000000e rts2800_ml.lib : exit.obj (.ci nit003f6631 0000000a :o ck.obj (.ci nit003f663b 00000001 -HOLE- fill = 0GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name003f6623 _Ramfu ncsLoadE nd003f65d6 _Ramfu ncsLoadStart00008000 _Ramfu ncsRu nStartGLOBAL SYMBOLS: SORTED BY Symbol Address00008000 _Ramfu ncsRu nStart0000801b _DSP28x_usDelay三个从FLASH里加载RAM里运行的程序0000801f _EPwm1_timer_isr00008035 _EPwm2_timer_isr003f65d6 RamfuncsL

温馨提示

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

评论

0/150

提交评论