1.在how to boot on arm & dsp 文档中描述到的bootloader是不是指的user bootloader 简称UBL?
2.在官网下载的davinci psp sdk 开发包中分别提供了arm ubl和dsp ubl两个包,ubl的代码逻辑是否可以更改?这两个ubl是否
需要分别下载到对应arm芯片和dsp芯片的ROM中才能工作?我应该使用哪些工具怎样更新烧写些这些ubl?
3.回到how to boot on arm & dsp文档中的描述,在Boot DSP on ARM + DSP SOC一节的描述中提到arm端用户代码来启
动dsp不需要遵从RBL格式, 这个 RBL 格式是指的什么,是否使用RBL格式可以让DSP自己启动找到需要执行的镜像来运
行?后面提到使用arm 端代码让dsp跑自己的镜像,可以使用在flash中的DSP镜像文件作为源文件拷贝到目的地址,但是
提到了boot table format, 那么这个flash中的DSP镜像文件是否要满足这个格式该如何生成?
4.由于刚开始学习omapl138,比较模糊,通过以上3个问题最终我想搞明白的是在OMAPL138上arm端跑linux系统,dsp
通过starterware包开发应用程序,通过sharedram实现arm与dsp之间的数据通信,为了方便生产我应该使用怎样的方案去
boot arm与dsp比较好, 是否可以分别刷写镜像到arm与dsp让其分别自动运行,还是通过 arm来boot dsp?
xing tong:
回复 noaming:
hi Titan,
你的指导很有帮助,这两天在搞arm和dsp同时启动的功能,遇到一些问题,请帮忙解答一下:
1.根据指导我通过ccs和仿真器在广州创龙的开发板上实现了arm启动dsp并运行编写的dsp代码,由于我们制定的方案是在 arm端跑linux而dsp端裸跑,根据论坛的how to boot dsp文档中的指导,我想实现arm和dsp的同时启动,通过aisgen工具去处理uboot.bin 时我发现mcsdk_1_01_00_02下提供的u-boot-2012.04.01-psp03.22.00.06.sdk 编译生成的u-boot.bin的入口地址是0x80000000,根据我从创龙得到的一些信息0x80000000是ubl 的入口地址,请问一下这是什么原因?请看附件截图。
由于我需要同时启动arm与dsp,我需要用aisgen工具处理uboot.bin和编写的coff格式的可运行在dsp的.out文件同时配置bootmode为nand_flash,所以需要uboot.bin的入口地址在DDR其实地址0xC1080000。
2.我使用问题1当中描述的u-boot.bin生成 u-boot.ais试图验证是否可以在开发板上运行时,发现生成的u-boot.ais文件头中magicword之后的第一个命令字0x58595301会把一段长为0x02EC的代码加载到未知地址0xFFFF0B20中,之后才会执行0x5859530d调用rom bootloader中函数初始化芯片配置,并且把该ais文件烧写到开发板中 的nand_flash时不能启动,请问一下是什么原因?请看附件截图.
3.能否提供一下通过aisgen.exe工具配置以nand_flash启动方式同时启动arm与dsp生成合并ais文件的正确配置说明。
4.根据问题1-3的描述,如果我成功生成 uboot.bin和dsp.out 合并的u-boot.ais文件后在开发板上能正确执行,那么根据how to boot dsp 的描述我在u-boot的代码中要实现对dsp的初始化;我想问omapl138在执行rom bootloader去解析执行合并的u-boot.ais文件时是怎么处理文件中的coff格式dsp.out内容的,是不是会根据文件中的链接信息把相关代码加载到对应位置,比如用来合并的dsp.out根据链接配置是放在0x80000000 sharedram 中,那么rom bootloader在处理时是不是会把dsp.out代码拷贝到shared ram相应位置?如果是的话就可以在u-boot中初始化并唤醒dsp,不过我在u-boot源码da850sdi.c 中找到初始化dsp的代码,代码路径为board_init_r->misc_init_r->dspwake(),我想知道这个dspwake()中的代码是否能完整实现我所需要的唤醒dsp去执行shared memory中代码的功能,我需要做哪些修改?