137EMIFA接口连接NORFLASH并使用GPIO作为高位地址线,由于代码较多,需要将程序段、数据段等放在DSP的L2RAM中,另有几个动态库放在EMIFB连接的片外SDRAM中,请问二级boot时有什么方法可以将程序不同的段下载到相应的位置执行?我了解到TI有专门供NORFLASH使用的下载工具,不知道能不能实现上面的要求?
我目前是自己做的二级boot,将程序全部放在SDRAM中运行的,但是运行效率太低,满足不了要求。
Shine:
二次boot代码可以把Flash中的代码搬到L2或者SDRAM上运行。可以看一下下面的wiki网站说明。http://processors.wiki.ti.com/index.php/Secondary_Bootloaders_on_OMAP-L1x你指的专门norflash使用的下载工具是什么?是flash烧写工具么?
ma chao:
回复 Shine:
您好,我的意思是,如何根据cmd文件中的设置在二级boot的时候将flash中烧写的程序中的例如.data,.text段放入L2RAM,.switch等段放在SDRAM,也就是分段映射,我自己写的二级boot只能将整个程序进行搬运,不能将各段分开。
另外我对于SDRAM的运行效率之慢表示怀疑,5M的读写频率太慢了,根本没有办法跑程序,我看你们在有些帖子中回答说EMIF接口能达到30M的读写频率。我用的SDRAM是IS42S16160B-7,与例程上的-6类似,EMIFB设置如下,请帮忙看下什么地方不对影响了读写速度
Shine:
回复 ma chao:
1. 你可以用-boot选项把.out文件转换成boot table格式,二次bootloader可以根据boot table把各个段搬移到相应的目的地址。boot table格式可以参考下面的文档第35页。http://www.ti.com/lit/ug/spru186x/spru186x.pdf2. 试试使能cache, 使能edma看速度是否有提升。
ma chao:
回复 Shine:
您好,按照您回答的思路我觉得问题应该快要解决了。目前就是hex6x.exe 的-boot命令不知道应该如何使用,我直接hex6x.exe -boot [.out]之后出现了四个文件,不知道下面该如何操作。麻烦将操作方法详细告知。
另外根据我在“Creating a Second-Level Bootloader for FLASH Bootloading on TMS320C6000 Platform With Code Composer Studio”这个文档中的2.3,2.4章节看到的内容,是否可以理解为使用Figure 6所示脚本文件就是将boot table放在了0x90000400,二级boot的时候直接根据那里的内容来搬运程序?
Shine:
回复 ma chao:
1. 在上面的文档第306页有例子,你可以照着修改。2. 是的,boot table放在0x90000400处,二次boot从那里开始读boot表。 0x90000000开始放的是二次bootloader代码。
ma chao:
回复 Shine:
您好,请问针对omap137来讲,ox90000000单元那块地址能用吗,我看手册上没有讲,ccs调试时也看不到,那块是被保护的。
还有就是boottable表是在ccs编译程序时自动生成的吗?亦或是hex6x生成的文件要烧入flash中?
Shine:
回复 ma chao:
那篇文档是针对C6713的,C6713的EMIF boot模式是从CE1空间0x90000000这块地址加载程序的。而OMAP-L137的NOR flash boot模式是从EMIF CS2空间 0x60000000这块地址开始加载的。
需要用hex6x.exe生成,生成的文件需要烧写入flash中。
user3688025:
回复 Shine:
这个文件不存在了