TI中文支持网
TI专业的中文技术问题搜集分享网站

ARM引导加载DSP问题,二次BOOTLOAD

TI工程师:

项目状态:OMAPL138,外挂1片SPI_FLASH,双核裸机,双核程序均在仿真器状态下运行成功,双核程序放同一FLASH中,ARM放在0地址。

本意是想上电后,先自动加载ARM程序,在ARM程序加载后,ARM去FLASH约定的DSP程序存储区搬运代码置L2RAM,唤醒DSP运行。

目前的问题是,上电能自动加载ARM程序,但是未启动DSP,查看“Tony Tang”相关的帖子后,做了如下的事情:

1:   PSC0->MDCTL[15] = PSC0->MDCTL[15] & 0xFFFFFEFF;
   while( PSC0->MDSTAT[15] & 0x00000100);
   PSC0->MDCTL[15] = PSC0->MDCTL[15] | 0x00000100;
   *(unsigned char *)0x11800000 = 0xAA;
   *(unsigned char *)0x11800001 = 0x55;

复位DSP,确定L2RAM地址在ARM端能读写。

2:搬运代码

3:唤醒DSP(起始地址设定为0X11800000)

依然无法引导DSP程序

后面在线仿真在L2RAM地址段将搬运的代码导出与*.BIN文件对比,完全匹配(bin文件中的特殊命令除外)。

各路达人帮忙解答下,谢谢

 

 

user5183483:

问题补充,尝试用了手册上提到的将两个.out文件生成到1个.BIN文件中。然后在ARM代码段里设置首地址并启动DSP。依旧没反应,电流一直在跳动,感觉像一直重启,手动复位,问题依旧。不添加GEL文件带仿真器,HOST1CFG寄存器读到的是0x00700001(手册中说的默认值应该是0x00700000),后在该寄存器写入DSP启动地址0x11800000,该寄存器值为0x11800001,手册中描述的此寄存器低10位为保留位。

Shine:

回复 user5183483:

下面这个wiki网站上有例程可以参考。
processors.wiki.ti.com/…/Boot_Images_for_OMAP-L138

processors.wiki.ti.com/…/OMAP-L138_Bootloader

Tony Tang:

bin chen173:唤醒DSP(起始地址设定为0X11800000)

你的DSP程序的入口地址是多少就设为多少。

其实你的流程是ARM从flash加载DSP代码再唤醒DSP,你可以在ARM启动后,或从ARM端从CCS下载arm的.out文件进行调试,看ARM读取DSP代码及唤醒的过程,注意这个过程中的ARM gel文件里不要唤醒DSP,也不要用仿真器连接DSP。 

Tony Tang:

回复 user5183483:

如果你想固定DSP的entry point,可以参考下面链接:

赞(0)
未经允许不得转载:TI中文支持网 » ARM引导加载DSP问题,二次BOOTLOAD
分享到: 更多 (0)