本帖最后由 求进的心 于 2013-9-21 21:43 编辑
DSP单机上电引导顺序(微计算机模式(XMPNMC= 0)):
1、上电复位
2、执行iniboot程序
3、根据GPIOF4(SCITXDA)、GPIOF12(MDXA)、GPIOF3(SPISTEA)、GPIOF2(SPICLK)的状态选择boot模式,假设选择了flash。
GPIOF4(SCITXDA) GPIOF12(MDXA) GPIOF3(SPISTEA) GPIOF2(SPICLK) boot模式
1 X X X flash
0 0 1 0 H0 SARAM
0 0 0 1 OTP
4、运行codestart程序
5、运行_c_int00程序
6、运行main函数
疑问:
1、CPU如何判断引脚GPIOF4(SCITXDA)、GPIOF12(MDXA)、GPIOF3(SPISTEA)、GPIOF2(SPICLK)的状态?通过查看寄存器GPIOFDAT的相应的位吗?另外,如何在DSP刚上电的时候就改变这些引脚的值呢?我觉得通过软件肯定是行不通的,因为我们的程序是在选择boot模式之后才开始运行的,在这个阶段(选择boot模式阶段),寄存器GPIOFDAT的值都是默认值,只能通过外围电路强行拉低或拉高。请问是这样的吗?
2、codestart程序是只在DSP下线运行时才需要,还是在在线仿真模式时也是需要的呢?我看TI的官方例程只是在工程中添加了一个DSP281x_CodeStartBranch.asm文件,然后再F2812.cmd文件中把该段链接到一个单独的段,load到对应的地址,源程序的其他地方没就没看到codestart程序。是只要把codestart程序load到对应的地址,带DSP上电引导后,就会直接运行了是吧?还要不要再在CCS中设置什么?
3、TI官方例程中有两个cmd文件:F2812.cmd和DSP281x_Headers_nonBIOS.cmd,这个哪个是SRAM.cmd?哪个是FLASH.cmd?看名字F2812.cmd应该是SRAM.cmd,DSP281x_Headers_nonBIOS.cmd是FLASH.cmd。但是看内容又觉得DSP281x_Headers_nonBIOS.cmd是SRAM.cmd,而F2812.cmd是FLASH.cmd。一次编译只需要一个cmd文件吧?
|