This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

F2812将程序下载到RAM进行仿真调试和将程序烧写至FLASH内进行硬件调试时,是不是要改变GPIOF引脚状态,还是仅仅换一个CMD文件

Other Parts Discussed in Thread: SPRC097

疑问一:F2812将程序下载到RAM进行仿真调试和将程序烧写至FLASH内进行硬件调试时,是不是要改变GPIOF引脚状态,对于一个已经设计好的DSP系统,引脚状态在硬件上已经固定好了,是不是此时只能局限于一种引导模式了?因为仿真调试时,用户程序入口地址一般在SARAMH0处,烧写至FLASH内进行允许时,用户程序入口地址在FLASH处,那怎么做既可以下载到RAM,也可以将程序烧写至FLASH,仅仅换一个CMD文件就可以了吗?

疑问二:CMD文件中   .reset           : > RESET,       PAGE = 0, TYPE = DSECT /* not used, */

.reset         复位中断向量表   这里的not  used代表什么意思。。。位于Ox3FFFC0的复位向量指向InitBoot,不用的话,怎么启动引导操作

等待大神解答

  • 1,只要GPIOF4没有下拉就可以,既然固定好了就只能用一种引导模式。RAM CMD只是用于仿真,FLASH CMD可以下载到Flash,但运行也在Flash内运行。想要程序在RAM运行需要将程序copy到RAM中。

    2,not used只在RAM CMD文件中出现,在RAM调试时直接从main处开始运行,没有reset的过程。

  • 1)好像做实验室时,将程序下载到RAM,和将程序烧写到Flash,并没有改变GPIOF的状态,只是换了一个CMD文件,这两种引导模式不是应该不一样吗?一个是跳转到H0 SARAM,一个跳转到Flash。

    2)Flash  CMD中 .reset           : > RST_ENTRY,    PAGE = 0, TYPE = DSECT /* not used, */  

    为什么也没用,启动时,难道不是先复位吗?

  • 1,GPIOF的状态只在自启动时起作用,RAM调试时不起作用。

    2,启动时先复位,在RAM调试时就没有启动的过程。

  • 谢谢耐心解答

    在Flash 的 CMD中有这么一段程序 .reset           : > RST_ENTRY,    PAGE = 0, TYPE = DSECT /* not used, */  

    not  used 这个标注还是不太明白,TYPE = DSECT 这句是什么意思


  • 对于not used的标注,对比一下RAM CMD和FLASH CMD文件就明白了。DSECT 说明这一块地址并不会真的加载数据,只是链接一下symbol。

  • 谢谢解答

  • 查了TI在sprc097中提供的3个2812相关CMD文件。F2812_EzDSP_RAM_lnk.cmd文件中该段设置为TYPE = DSECT,可以理解为not used,只是链接一下symbol;在F2812.cmd文件中该段也设置为TYPE = DSECT,是否可以理解为boot ROM中已经设置好(即复位向量),不用再设置(也不可能再设置)了;但在F2812_XintfBoot.cmd文件中还是设置为TYPE = DSECT,该文件是“Linker Command File For F2812 Device with boot from XINTF Zone 7”,这时不是要由用户设置复位向量吗,怎么仍然用DSECT关键字,什么时候.RESET才能不设置为“TYPE = DSECT”,有点不解?

  • 你好,如果模式选择为在H0 SARAM处启动的时候,那么,由于GPIOF4是不是需要外部硬件加下拉电阻?谢谢

  • 不需要吧