共1条
1/1 1 跳转至页
对vxworks for Arm 生成映象的一点看法(老站转)
对vxworks for Arm 生成映象的一点看法!(特别感谢serf兄)
seasoblue 于 2002/05/13 10:53 加贴在 嵌入式系统论坛 设为精华 删除
最近在arm上作vxworks的开发,由于对arm不是很熟悉,费了不少劲,现在总算能正常启动、通过网络下载vxworks映象了。这还要多亏serf兄的无私帮助,再一次感谢serf。就这次的实战我有一些体会想写出来和大家一起讨论,希望能让大家少走一些弯路。
我用的cpu是samsung的S3C4510B,但不是samsung的snds100开发板。bootrom芯片是用的sst39vf040(8位数据宽度,512kBytes),sdram为2片hy57v641620(4bankX1MX16bit)。外接以太网口和串口。整体大致和snds100相同。但snds100的bootrom为两片29EE010组成16位宽度。
不管三七二十一,先将snds100的BSP编译后生成的bootrom写入,板子串口接上PC的串口,打开超级终端,上电!天啊,什么也没有!唉,慢慢分析吧!首先分析romInit.s。在可疑处插入如下的点灯指令:
/*==============add by seasoblue===========*/
LDR r0,L$_IopModReg
MOV r1,#0xff
STR r1, {r0}
LDR r0,L$_IopDat
MOV r1,#0xfd /* Show 2 */
STR r1, [r0]
/*==============end by seasoblue=================*/
重复烧入->上电的过程,结果发现在初始化sdram(定位sdram的起始地址为0,bootrom的起始地址为16M)再跳转后的点灯失败。看来程序根本就没有跳到romStart去执行!通过反汇编bootrom和分析bootrom的符号表,结果发现romInit被定位到1M的位置,而bootrom这种映象的romInit既不在0也不在1M处,而是在0xa8处!通过修改程序,结果能跳到romStart了,但后面还是不对。真是黔驴技穷了。只好向Serf兄求救啦!将serf提供的原有bootrom写入但也不能正常启动,真是苦呀!后来无意中将bootrom.hex写入,谁知一上电居然能正常启动了,那一刻真是不知是喜还是悲!
原来bootrom.hex的0地址放的就是romInit,这才符合文档介绍嘛!而链接器将romInit定位到1M是因为bootrom后来要拷贝到sdram的RAM_HIGH_ADRS(1M)处运行。
分析完后将自己的BSP生成bootrom.hex烧入,上电,奇怪串口还是没有显示!一定是串口设置有问题。比较serf兄的sndsSio.h文件,结果发现EXT_CLK和SNDS_CNT0_38400不一样。这正是串口要用的波特率。一个字--改!一阵捣鼓后,串口终于有显示了!再修改IP,用户,登录密码,重启,vxworks映象顺利load! 成功啦!哈 ̄哈哈。。。。。
这就是我的实战过程,虽然短短几百字,但却花费了我和一同事一个星期的时间,其中的甘苦相信很多朋友都曾有过类似的体会!
我现在没弄明白,为什么bootrm这种映象不能用不能在arm上用,而在X86上却能用?它在romInit之前放置的是什么东东(好象是.bss之类的)?
还有就是一定要设成little Endian存储模式,尽管arm支持bit Endian。因为编译器是编成小端模式的。
串口设置我还没有去研究。
最后还有一个问题请教serf兄:)我将sysNvRamGet函数中你定义的table数组用字符串“secEnd(0,0)aman:/tornado/target/config/snds100/vxWorks h=192.168.0.110 e=192.168.0.221 u=2 pw=2 tn=snds100”来替代,但启动后显示的还是config.h中DEFAULT_BOOT_LINE所定义的信息。好象没起作用?
希望大家多多交流!
--------------------------------
到家了!^O^
关键词: vxworks 生成 映象 一点 看法 老站转
共1条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |