天气: 晴朗
心情: 高兴
不得不承认,今天是我人品爆发的日子。
手上有3块OMAP5912的板子,仿真器用的是SEED-XDSUSB2.0;之前遇到的问题是:只有一块板子能在CCS下连接成功,并且3块板子均无法通过串口和计算机
通信,也就是无法完成osk5912_userguide.pdf里的第一步。
试图将omap5912通过串口和pc连接,因为这样才能完成之后的MONTAVISTA LINUX内核的烧写等工作。在查询了相关资料及询问相关人员之后,认为是板子的flash存储器(就是板子正中偏左一点位置的两块芯片!)里面的uboot代码坏掉了,需要重写。
网上有一些关于重写omap5912 uboot的资料,我所见到的有三种:1、利尔达技术论坛OMAP微处理器版有两种方法;2、无猫给了我一种可以烧OSK 5912 REV D的(利尔达技术论坛上的方法好像不能烧REV D);3、spectrum digital网站上提供的方法(http://omap.spectrumdigital.com/osk5912/factoryconfig/);
我采用的第3种方法,按照SPECTRUM DIGITAL公司网站的方法做(板子都是人家的,人家当然更有发言权:-)http://omap.spectrumdigital.com/osk5912/factoryconfig/),如下:
To restore U-Boot, you must have Code Composer Studio configured as
described in the OSK5912 Users Guide. Code Composer Studio provides the
debug connection to the target, and the osk5912.gel script does basic
system initialization.
- Set JP3 in the 1-2 position (the square solder mask on the bottom on the board represents pin 1). Power cycle the board.
- Start Code Composer Studio.注:关键就在这一步!我之前试了许多次,每次在把JP3设置到1-2位的时候,根本无法启动CCS,于是很失望。如果你在这里放弃了,恭喜你,第一关你就挂了!************按照seed公司技术支持的“指示”,在出现无法启动CCS时,你需要两手并用:来吧,把你的左手摁住osk5912右下角那个白色的按钮,用你的右手握住鼠标点击CCS无法启动时探出的窗口中间那个选项,看见了吗?对,就是RETRY!我左手reset,右手retry,同时(你觉得是同时就行了,不用那么精确吧!?)松开......看到没,奇迹出现了!CCS启动了啊!
- Use the menu option File -> Load Program to load the file restore/uboot/osk5912-uboot-1.1.1.out on the OSK5912 CD-ROM.注:这一步要在arm端调试窗口中完成。注意,老天从来不会那么轻易的把美好的东西给你的,包括调板子!你在这一步有可能会发现无法load哦,对吧?CCS窗口出现很多红色的E文,什么不可设置断点啊...还不断的弹出提示窗口,说memory又怎么怎么了...我*—……%……—!如果你怒了,放弃了!ye,恭喜你,倒在第二关了!************这个时候该怎么办呢?本着“革命尚未成功,我辈仍需努力”的原则,你就把仿真器啊、电源啊统统拔掉(我说的是osk5912的电源,不是pc的电源啊!),然后重新连上,从第一步重新开始,不断这么尝试,总有一次,你会发现,你积攒的rp终于爆发了,你可以load咯!本人经过n次插拔电源后,发现一个"诀窍":在ccs里,project->open,比如打开一个例程项目文件led.pjt,编译并load,如果可以的话,project->close project,之后file->load program,选择restore/uboot/osk5912-uboot-1.1.1.out,基本上就可以!感觉像是先给板子一个小项目让它热热身,然后再跑uboot.out,会比较容易成功。后面的就照它的提示吧!
- Use the menu option Debug -> Run to run the program. It
will erase and program the U-Boot image into Flash. Status messages
will be displayed in the output window at the bottom of the window.
- Set JP3 in the 2-3 position and power cycle the board.
- The processor will boot out of Flash and you will see the
U-Boot menu/prompt come up on the serial port. If U-Boot is configured
to automatically boot, you must hit a key on your terminal to get to
the prompt instead of booting.
- Configure U-Boot with some basic settings:
# setenv bootcmd bootm 0x100000
# setenv bootdelay 10
# setenv bootfile uImage
# setenv bootargs console=ttyS0,115200n8 noinitrd rw
ip=off root=/dev/mtdblock4 mem=30M
# saveenv
至此,任务完成了哦!恭喜。用串口把板子和pc连起来,go on......
--------------------------------------------------------------------------------------------------
接着往下做,有时候烧完uboot,把jp3设置为2-3位,和pc用串口连起来,发现uboot可以了,但是在启动内核时,出现"bad magic number"!郁闷啊!本人遇到过这个问题,于是我重试了几次板子上的reset按钮,有一次reset之后,发现竟然可以了!费解!
正规的解决方法,估计应该是把内核重烧一便,一般就可以解决“bad magic number”的问题了。
bad magic number的问题倒是解决了,但是有时候又出现新的问题了,在启动内核的过程中会卡在某一个地方,我现在就面临着这种问题,估计是文件系统的问题,spectrumdigital的support让我完整的烧一便,就是说还得把文件系统也烧一次!sigh!正在试呢...