打印

DSP上电引导的提问

[复制链接]
1276|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
teabottle|  楼主 | 2013-5-27 14:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近看了两个TI的文档呢。
DSP281x_HeaderFiles_QuickStart_Readme

spru095a_TMS320F28x Boot ROM Reference Guide (Rev. A)
这两个文档。
了解了一下 DSP有了复位信号后,会跳到0x3FFFC0这个地址上去,
假设现在是BOOT-ROM映射到0x3FF000这个地址上面。这样话,DSP会进入INIT_BOOT函数
然后根据GF组IO口得状态来选择引导方式 一,跳到FLASH
                                                                 二,跳到H0
                                                                  三,跳到OTP
                                                                 四,选择SCI,SPI,GPIO来进行引导。

然后我在第一个文档里面看到有这样一个流程图:
RESET
   |
BOOT 时序
   |
DSP281x_CodeStartBranch.asm
Disable WD (Optional)
Branch to C Init Routine
      ||
  C Init
     ||
  主函数

其中BOOT时序就是我最上面分析的。
然后接下来,怎么跟DSP281x_CodeStartBranch.asm和C_INIT结合起来呢。
我知道DSP281x_CodeStartBranch.asm是咱们自己写的。
C_INIT这个入口,我一直都没有看到 是编译器产生的吗

这些是怎么联系的?
希望不要说是通过CMD文件的。如果可以的 怎么通过CMD文件联系可以解释一下了。

相关帖子

沙发
wangjinlili| | 2013-5-27 20:02 | 只看该作者
根据JTAG信号中的TRST的电平状态来选择,DSP运行在仿真器模式下面,还是在正常的操作模式下面。
第一种:如果TRST为低电平,也就是默认的状态。TRST具有内部下拉电阻。为正常的DSP运行状态。
第二种:如果TRST为高电平。也就是仿真器模式下进行仿真,这个高电平信号是由仿真器给出的。

使用特权

评论回复
板凳
meishizhaoshi| | 2013-5-27 20:03 | 只看该作者
起始地址是自己在cmd文件中定义,然后通过CCS生成的,所有下载到C2000中的目标文件,都是按照TI C2000的hex文件格式,首先下载到flash中的就是reset的地址,即你的目标代码的首地址。

使用特权

评论回复
地板
blacksword| | 2013-5-29 15:24 | 只看该作者
如你所说的,boot时序中会出现那样的几个引导方式。

DSP281x_CodeStartBranch.asm  TI的示例引导程序,通常照搬,由其来设置堆栈后找到c_int_00也就是C语言入口
Disable WD (Optional)        可以根据需要在程序进入C之前关掉WatchDog,如果程序够小或够稳健不关也行
Branch to C Init Routine     就是调用c_int_00函数,这个函数不需要你来实现,由TI在C语言的运行时库里实现,rts28xx.lib即是运行时库,你编译程序时会连接到这个库上。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

97

主题

1441

帖子

1

粉丝