是编译器产生的吗

[复制链接]
1191|12
 楼主| zhaoxqi 发表于 2016-3-30 20:47 | 显示全部楼层 |阅读模式

最近看了两个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这个入口,我一直都没有看到
huangchui 发表于 2016-3-30 20:48 | 显示全部楼层
这些是怎么联系的?
jiajs 发表于 2016-3-30 20:48 | 显示全部楼层
通过CMD文件
zhanghqi 发表于 2016-3-30 20:49 | 显示全部楼层
根据JTAG信号中的TRST的电平状态来选择
wyjie 发表于 2016-3-30 20:50 | 显示全部楼层
对,是看DSP运行在仿真器模式下面,还是在正常的操作模式下面。
jlyuan 发表于 2016-3-30 20:50 | 显示全部楼层
如果TRST为低电平,也就是默认的状态。TRST具有内部下拉电阻。为正常的DSP运行状态。
yszong 发表于 2016-3-30 20:51 | 显示全部楼层
如果TRST为高电平。也就是仿真器模式下进行仿真,这个高电平信号是由仿真器给出的。
dengdc 发表于 2016-3-30 20:51 | 显示全部楼层
起始地址是自己在cmd文件中定义,然后通过CCS生成的,所有下载到C2000中的目标文件,都是按照TI C2000的hex文件格式,首先下载到flash中的就是reset的地址,即你的目标代码的首地址。
heweibig 发表于 2016-3-30 20:52 | 显示全部楼层
如你所说的,boot时序中会出现那样的几个引导方式。
wuhany 发表于 2016-3-30 20:52 | 显示全部楼层
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即是运行时库,你编译程序时会连接到这个库上。
 楼主| zhaoxqi 发表于 2016-3-30 20:53 | 显示全部楼层
哦,我再思考思考
firstblood 发表于 2016-3-31 17:16 | 显示全部楼层
这个就不是很清楚的,但是多调试的就可以的。
拉克丝 发表于 2016-4-19 23:31 | 显示全部楼层
如果TRST为低电平,也就是默认的状态
您需要登录后才可以回帖 登录 | 注册

本版积分规则

808

主题

10636

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部