This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

dm6467 如何单独运行dsp程序



最近在测一个串口程序,用CCS3.3下单独跑DSP核已经没问题了,可以正确执行。

但是怎样把程序烧写进flash中,让它上电自动运行呢。flash用的是norflash

看网上说,先把.out文件转为bin文件。试着转了下,然后把转换后的bin文件烧写进 0x42200000(文档上说这个是DSP自动运行时默认读取地址)。再将启动模式设置为从flash加载的dsp自动运行模式,但是重新上电后,无法正确执行。

请教下上面的流程是否正确,正确的流程应该是怎样操作?

网上还有的说还要写个引导程序,进行二次加载,但是感觉没点头绪。

最好有个例子,没例子的话指点下正确的操作流程也行,谢谢,谢谢~~~

  • 你好,

    在DM6467上,DSP的代码必须由ARM下载到DSP,DSP不能直接启动。芯片上电后是先ARM启动,然后由ARM启动DSP。

  • 谢谢Meng工!

    如果是这样的话,我是不是要先写个am端的初始化程序,初始化ddr, flash,搬移DSP端的程序。新的问题是:

    1、ARM端的程序我是不是也要转成.bin格式,然后直接烧写进0x42000000(原uboot的地址)。这样上电就可以直接运行这个arm端的程序了?

    2、搬移DSP端的程序,搬移到DDR里哪里合适?(因为在CCS里,不是对内存地址划分区域了吗,我不清楚加载.OUT是怎样一种方式,是不是直接按照内存区域的划分去放置的代码。如果是这样,我把所有代码都搬移到一个连续地址里会不会就不对了?)

  • 你好,

    uboot前是有一个ubl会初始化DDDR的,请参考文档SPRAAS0C Using the TMS320DM646x DMSoC Bootloader。

    你如果不想用Linux,你可以在uboot里面添加加载DSP的代码。

    DSP代码使用的memory,请参考DSP编译后生成的map文件。

  • 是不是这样,

    需要先下载UBL至flash,在这里进行必要的初始化,

    再下载uboot, 如果我不想运行linux的话在这里就加入加载启动DSP的代码?

  • 你好,

    ROM(芯片内部不能修改)启动flash上的UBL(user boot loader,用户可以修改),UBL再启动uboot。如果你使用的是NAND flash,ubl会读取uboot把uboot copy到DDR上。

  • 我用的是norflash

    是不是就是说我先得把,out转为.bin。烧写进flash某个地址。

    再用uboot去将程序指针指向该地址?(这个还用将DSP端代码再搬移至ddr里不?)