b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

tms320f2808中文资料_tms320f2808_MAX5541ESA(4)

电脑杂谈  发布时间:2017-02-21 12:00:19  来源:网络整理

.endif

这要求看门狗在copy_sections和c_int00函数运行期间被除能,否则,看门狗可能会在进入main()之前超时。这个函数也是从the C/C Header Files and Peripheral Examples提供的CodeStartBranch.asm文件修改而来,只是用copy_sections代替了_c_int00。

Copy_sections:

DSP28xxx_SectionCopy_nonBIOS.asm文件提供了copy_sections的代码,第一次运行到这里,看门狗是关闭的,段已经准备好被复制,段大小被存放在累加器,装载地址放在XAR6中,执行地址放在XAR7中,这个功能例子如下:

MOVL XAR5,#_text_size ; Store Section Size in XAR5

MOVL ACC,@XAR5 ; Move Section Size to ACC

MOVL XAR6,#_text_loadstart ; Store Load Starting Address in XAR6

MOVL XAR7,#_text_runstart ; Store Run Address in XAR7

LCR copy ; Branch to Copy

MOVL XAR5,#_text_size ; Store Section Size in XAR5

MOVL ACC,@XAR5 ; Move Section Size to ACC

MOVL XAR6,#_text_loadstart ; Store Load Starting Address in XAR6

MOVL XAR7,#_text_runstart ; Store Run Address in XAR7

LCR copy ; Branch to Copy

段的大小,装载开始标志,执行开始标志都由连接器产生,这是在内存分配-链接器命令文件一节讨论。

在地址和段长度都被存放好之后,copy程序被调用来确定段是否被编译器产生,这由检测累加器是否为0来确定。

如果累加器为0,程序会返回到调用前的地址,如果累加器不为0,有段需要被复制。这用上面所示的PWRITE指令来实现,PWRITE复制XAR6指向的存储器的内容到XAR7指向的内容。在这里,就是复制装载代码的地址的内容到运行代码的地址。这样,一直到累加器为0,完成整个段的复制,当所有段都被复制完,程序就会跳到c_int00,如下:

到这里,C语言环境被建立,main()是可进去的。

完整的copy_sections程序请参见相关文件夹中的DSP28xxx_SectionCopy_nonBIOS.asm。

内存分配 -连接命令文件(.cmd):

如第二节所述,连接命令文件(.cmd)是用来告诉连接器怎么分配编译器产生的段的。The C/C Header Files and Peripheral Examples提供了标准的连接命令文件(.cmd)。

相关代码文件中提供了三个链接器命令文件用于配置内存分配。

· F280xx_nonBIOS_flash.cmd

· F281x_nonBIOS_flash.cmd

· F2833x_nonBIOS_flash.cmd

每个文件一般都用相同的方法编写,只是在存储器方面有很小的一些差异(特殊设备)。连接命令文件(.cmd)的Memory部分是根据设备的内存空间来连接编译好的段的。详情参见具体控制器的数据手册。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-33664-4.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 赵新方
      赵新方

      给观众带来更多更好的作品

    • 李都
      李都

      请拿出当年“保卫珍宝岛

    热点图片
    拼命载入中...