zynq vxworks6.9.4.10 boot引导镜像启动不了

硬件平台:zynq 7045
软件平台:workbench 3.3 Vxworks6.9.4.10,Vavido 2017.2
问题描述:将生成的boot.bin文件通过仿真器烧录到SPI flash后,boot可以正常启动,其他网络功能也正常;通过FTP下载VxWorks镜像时,程序会一直停在at 0x00200000阶段,不能显示vxworks启动界面;
所做尝试:
1.直接将fsbl,bit文件和vxworks镜像合起来编译生成boot.bin,然后通过xlinx仿真器烧录到spi flash中,发现镜像可以启动,功能一切正常;(该方法应该只针对zynq板子,其他powerpc应该不适用);
2.切换到vxworks 6.9.4.7发现boot可以引导vxworks镜像启动;但该版本不支持EMMC所以不能使用该版本;
3.切换到vxworks 6.9.4.8发现boot可以引导vxworks镜像启动;该版本也支持EMMC,但EMMC格式化有问题,该版本对EMMC支持做的不太好;
4.最后只能想着在vxworks 6.9.4.10上面解决boot不能引导镜像启动的问题;由于boot可以启动,只是在引导镜像最后一步可能由于什么原因导致系统异常;


解决办法:
1.boot可以正常启动;也可以加载镜像;只是最后一步出问题;这时考虑能否通过点灯的方式来判断vxworks镜像到底在哪里出问题了;
首先在sysAlib.s中添加点灯程序;因为它是镜像起来后最先执行的代码;(要根据硬件原理图来确定是哪个灯对应的MIO是哪一个,然后参照手册来写相应的寄存器)
    LDR   r12, =0xe000a204
    LDR   r11, =0x00000001
    STR   r11, [r12]
    LDR   r12, =0xe000a208
    LDR   r11, =0x00000001
    STR   r11, [r12]
    LDR   r12, =0xe000a040
    LDR   r11, =0x00000000
    STR   r11, [r12]
测试发现这部分没有问题;应该能够跳转到C程序;usrint--->sysHwint----->kernelInit-------->usrRoot------>  sysHwInit2

     *(int *)(0xE000A204)=0x1;
     
     *(int *)(0xE000A208)=0x1;
      

    *(int *)(0xE000A040)=0x0;


最终发现是两个版本的串口驱动不一样导致的,将串口驱动替换后,vxworks镜像能够正常启动。
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值