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.

OMAPL138 ARM端无OS,DSP使用OS(DSP/BIOS)从NAND FLASH启动问题

TI专家,各位朋友:

       ARM端无OS,DSP端使用DSP/BIOS,该怎么从NAND FLASH启动?

       ARM端和DSP端都不使用OS,通过AIS将两端的.out文件糅合成bin文件,然后通过烧录工程通过仿真器烧到NAND  FLASH,这个我已经掌握,但现在DSP端使用了DSP/BIOS后就不知道该怎么做了,DSP/BIOS自己管理了cmd文件,不知道该怎么更改DSP的复位地址了,在DSP/BIOS中能不能重新定位代码段中_c_int00的入口地址?

  • 在DSP端DSP/BIOS自己产生的.cmd文件中,_c_int00的地址为0x1183b960,下面一行是从cmd文件中复制过来的:


    ENTRY POINT SYMBOL: "_c_int00"  address: 1183b960

    在ARM端需要制定DSP的复位地址,而这个地址是要求1K字节对齐的,复制了部分代码如下:

    * Set DSP boot address vector to entry point of DSP program   This must be aligned to 1KB boundaries */  

    SYS_REGS->HOST1CFG = 0x80010000;

    SYS_REGS->HOST1CFG的值应该修改为_c_int00的入口地址0x1183b960,而关键问题是0x1183b960不是1K字节对齐的。

  • 你好,

    可以看一下下面的wiki网站教你如何把_cinti00定义到固定地址。
    http://processors.wiki.ti.com/index.php/Accessing_c_int00#Using_DSP.2FBIOS


  • 使用的是CCSV5.1,自己定义一个.cmd文件,放在工程根目录下,DSP/BIOS自己产生的.cmd文件在工程目录Debug或者Release目录下,在自己的.cmd文件中加入如下内容:

    SECTIONS {

                               boot  > 0x80000000  

                               {   

                                     -l bios.a674P<boot.o674P>(.sysinit)

                                }

                         }

    编译报如下错误:

    -l"libc.a" "../Linker_dsp.cmd"

    <Linking>

     "../Linker_dsp.cmd", line 12: error: cannot find file "bios.a674P"

     "../Linker_dsp.cmd", line 12: warning #10068-D: no matching

    section error #10010: errors encountered during linking;

    "ZV138_DSPBIOS_APP_V3_2.out"    not built

     

  • 做如下修改,然后就成功修改_c_int00为固定地址0x80000000

    SECTIONS
     {
            boot > 0x80000000
            {
                     -l bios.a674<boot.o674>(.sysinit)
            }
     }

    是bios.a674和boot.o674而不是bios.a674P和boot.o674P

     

  • _c_int00是指定了固定地址0x80000000,但烧录后扔然启动不起来。

    DSP端主要的内存分配除_c_int00外都在L2(0x11800000-0x11840000上),把_c_int00映射到0x80000000-0x80010000这段地址,_c_int00实际使用的空间应该远远少于分配的空间;ARM端内存分配在0x80010000-0x80020000这段地址,然后ARM端指定DSP的复位地址:SYS_REGS->HOST1CFG = 0x80000000;

    最终通过AIS将两者糅合成一个bin文件,烧录后却启动不起来。

  • 然后调试了下可以启动了,在AIS PSC0那里加上了14,15然后就可以了。

x 出现错误。请重试或与管理员联系。