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

OMAPL138自举启动

现有问题向大家求解:

裸板OMAPL138的ARM端代码是arm_demo1.out很大几百KB,DSP端代码是dsp_demo1.out。也是几百KB,之前一直是使用560或510的仿真器调试的,都是正确的代码,arm与dsp会用到ddr、shared ram、local ram等内存;

现在下载到norflash中自举启动,需要做哪些步骤?

arm与dsp端的代码是不是需要添加修改什么东西,每次自动启动时,是否有代码搬移,这些搬移是自动的吗?最大搬移多少?我的代码是否超出范围,如果超出范围,那么自己是否还要书写二次引导的代码?

求步骤,求资料,求教程、求解析,

邮箱:1245715504@qq.com

yi ling:

回复 Tony Tang:

谢谢你的答复,我看到了相关文档,

但是现在有问题,我写了个简单的OMAPL138的arm端灯闪烁代码arm_led.out,仿真器已测正确,我使用aisgen工具转换为arm_led.bin,然后自己写了其他的小程序,将该.bin转换为ccs3中可以使用.dat,我将这个.data下载到ddr内,再通过自己的norflash代码写到Norflash地址0x60000000处,这个写入是好的,我将数据又提取出来对比,是无误的,然后断电norflash启动就是不行。

这个操作流程对吗?

arm_led.out–>arm_led.bin–>arm_led.dat–>norflash的0x60000000内–>norflash启动

.out到.bin的用aisgen就可以了吗,源代码需不需要再做特殊处理?

yi ling:

回复 yi ling:

刚才又测试了,代码norflash启动后,我用仿真器连接看看内存和寄存器的值状态,现在发现PC寄存器的值在0xFFFF0000,一直在这个复位状态,使用仿真器看norflash启动的代码这种方式对吗?

如果这种方式对,为什么pc指针一直在0xFFFF0000上,不应该norflash一启动,arm的RBL判断0x60000000的第一个字,然后开始依次解析ais格式文件吗,最后再进入一个入口地址,之后正常运行代码吗?

Tony Tang:

回复 yi ling:

坦白来说:

#1. TI提供了AISGEN工具将.out转成AIS格式的bin.

#2. TI提供了CCS的烧写工具,也提供了从串口烧写的工具。

为什么你还要转成.dat,再用自己的烧写工具?建议先用TI提供的工具把流程走通。

 

yi ling:

回复 Tony Tang:

谢谢你之前的帮助,我的问题已经解决了,

在Norflash启动的时候,使用aisgen对norflash设置时,只提供了2项设置:1个bit模式选择,1个CS2的起始地址;

对于norflash一般没有额外的clock需要设置,但是cs2选择片外内存的时序参数需要设置后,norflash才能正常读取数据,也就是CE2CFG寄存器需要根据norflash手册设置,根据文档“sprab41c(Using_the_OMAP-L1x8_Bootloader).pdf”,分析aisgen转换后的bin文件,找到:

0x5853590D0x000500050x60000000

将0x60000000(即CE2CFG寄存器值)修改为norflash手册上的配置即可。

我使用的电路板的启动方式已经固定焊死为norflash启动,所以无法串口启动,所以使用TI提供的串口烧写工具在连接上有点问题,这我也很郁闷,所以我现在使用自己的这种方式或者使用OMAP-L138_FlashAndBootUtils_2_40中提供的norwrite工程。再次感谢你之前的帮助。

hu zhu:

回复 yi ling:

这个是怎么设置的,是待烧写工程需要修改这些寄存器的值,还是nor_write工程需要修改,感觉没有找到0X00050005,希望你有时间可以回答一下。

Tony Tang:

回复 hu zhu:

NOR是异步接口,寄存器的默认时序是按最慢的时序,可以工作,只是速度慢,所以这个问题与CEnCFG的时序设置没有关系。

hu zhu感觉没有找到0X00050005

说的是啥?

赞(0)
未经允许不得转载:TI中文支持网 » OMAPL138自举启动
分享到: 更多 (0)