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

您好,问下关于DM6437 的flash启动问题

我现在想下载带dsp/bios的程序到flash进行开机启动,按照boards/dvdsk下面有个flashburns文件夹的一个flashing文档的步骤做,选择仿真器连接->下载FTBC->擦flash->下载(注:根据文档没有加载CMD文件)。然而发现dsp/bios的程序没有运行成功,但是不带bios的裸机程序按照上面的步骤可以成功,问题出在哪儿?请问有可行相关下载方法的文档提供么?感谢

rong gao:

没人解答么?

rong gao:

回复 rong gao:

技术支持呢?就指导一下,通过什么样的方式可以flash启动,用你们提供的dvsdk/flashburns方式启动不了我的带bios内核的程序,这个程序用emulator都是可以跑的,谢谢

noaming:

回复 rong gao:

你好,建议你在程序开头加上板子的初始化部分代码,试试看效果。

rong gao:

回复 noaming:

hi,Titan,我的工程是基于BIOS内核的

代码我加了,就是现在我很模糊到底以什么样的方式把程序下载到flash。现在用的是参考TI提供的《creating a second bootloader for C6000》,但是没有效果(程序接仿真器时正常)。参照文档我的作法是这样的,1。在工程中加入boot.asm二次启动代码,修改工程cmd(为bootloader分配RAM段) .2。生成Out文件。3。编写convert.cmd利用Hex6x工具生成hex,然后flashburn烧写。然后结果不成功。我参照了成功的non-bios工程的map(hex6x工具生成一个.hex和一个.map)文件,发现二者主要区别在entry point 和BOOT TABLE下的run地址,成功的flashing例子run地址是IRAM,而我的自动生成map文件的run地址是DDR!由此我想到工程的BIOS配置,CCS3的TCF文件,发现在MEM的存储管理的bios code/bios data/complier 之类的都是指向DDR,我如何修改才能正确执行?

可能字的有点多,但越详细越能帮助你为我解答问题,期待您的回复,非常感谢

noaming:

回复 rong gao:

你好,在DSP/BIOS的TCF文件中加入:bios.MEM.USERCOMMANDFILE = 1;

然后,在该工程文件下加入你自己的.CMD文件;

在你的CMD文件中指定entry point 和BOOT TABLE的地址。

rong gao:

回复 noaming:

我知道为什么将tcf里的mem->memory manage->compiler section 改成iram,不行了,会报错can't allocate .text, size 000168a0 (page 0) in IRAM,因为IRAM只有128K而 我的代码比128K要大,装不下,如何解决呢?

rong gao:

回复 noaming:

非常感谢,但一点我不明白,entry point和BOOT TABLE地址如何定义呢,因为之前是hex6x工具自动生成的,现在自己定义在IRAM中?自定义?还有上面说到的memory manage中那些tab如bios code/bios data/complier section的选项如何做,load address在文档中说不使用了,因为hex6x会指定好外接flash的load地址

noaming:

回复 rong gao:

恩,我建议先试试DSP/BIOS图像配置,mem->memory manage,你可以把大的数据段,放在DDR中,一些重要的数据放在IARM中。

rong gao:

回复 noaming:

无论是bios或non-bios他们的map文件中entry point是不是都应该是iram的地址

noaming:

回复 rong gao:

恩,是的,如果放在DDR中,还涉及到DDR初始化的问题。

赞(0)
未经允许不得转载:TI中文支持网 » 您好,问下关于DM6437 的flash启动问题
分享到: 更多 (0)