zynq7020 vxWorks 移植问题笔记:bootrom启动时间过长

一、现象描述

    将vxWorks6.9移植到zynq7020单板上时,将fsbl.elf启动文件与bootrom.elf文件混和生成BOOT.BIN,在fsbl文件中已将调试打印信息打开,BOOT.BIN 放拷贝到SD中,上电启动fdbl打印过后接近20多秒,bootrom打印才出现。

二、问题追朔

1.可能是romInit.S中指令cache未打开

2.可能是bootInit.c中romStart函数解压缩时间过长

3.可能是bootInit.c中romStart函数解压缩后对内存全部清零操作导致时间过长

4.设备初始化过程中,某个设备初始化失败导致延时等待,启动时间过长

5.MMU初始化过程中,覆盖内存过大,初始化时间过长

三、测试程序设计

1.将核1设计裸核程序定时器,时间精度 1us

2.核0 bootrom 启动过程中通过ocm相应地址置 0x77777777启动核1定时器

3.核0 bootrom 启动过程中通过ocm相应地址置 0x99999999关闭核1定时器

4.核1将代码段执行时间写到OCM相应地址去

5.读取OCM中代码段执行时间

四、问题定位

发现在终端串口初始化过程中,ioctl设置串口波特率115200时,执行时间达到18秒以上

查看vxbZynq7kSio.c中设置波特率函数,由于循环实验波特率寄存器设置值,导致算法时间过长,需要优化波特率设置算法

五、修改

修改vxbZynq7kSio.c,降低算法时间,重新编译bsp和bootrom

重新实验后,zynq启动bootrom从20多秒启动时间缩短至5~7秒左右

 

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值