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

2023-05-16

一、现象描述

    将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秒左右

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

zynq7020 vxWorks 移植问题笔记:bootrom启动时间过长 的相关文章

  • MySQL深入的学习笔记

    MYSQL高级 MySql架构演变 这个很重要 软件的环境是如何从单应用算法极致优化的方向 到分布式的进化 这个时代 就会淘汰好多单体应用的coder 比如我自己 哈哈哈哈 1 0时代 单机单库 单应用 单数据库 快速 方便 好维护 并发量
  • Java变量的声明、初始化和作用域

    一 Java变量的声明 在 Java 程序设计中 xff0c 每个声明的变量都必须分配一个类型 声明一个变量时 xff0c 应该先声明变量的类型 xff0c 随后再声明变量的名字 下面演示了变量的声明方式 double salary int
  • 无线网卡无法启动(代码 10),怎么办?

    前言 无线网卡突然无法启动 xff0c 代码 10 xff0c 怎么办 xff1f 本文记述了作者遇到这个问题的经历和最终解决方法 xff0c 希望我的分享能给大家节约宝贵时间 一 我遇到的问题 先说明一下 xff1a 我用的是华硕的飞行堡
  • systemd内置变量

    替换符含义 b系统的 34 Boot ID 34 字符串 参见 random 4 手册 C缓存根目录 对于系统实例来说是 var cache xff1b 对于用户实例来说是 XDG CACHE HOME E配置根目录 对于系统实例来说是 e
  • IOS轻松实现仿网易新闻顶部滑动指示器(Scrollview实现)

    实现原理很简单 xff0c 就是利用了scrollview进行自定义 xff0c 对外部传入的scrollview滑动事件进行监听 xff0c 源码如下 xff1a xff08 1 xff09 h文件代码 ScrollViewIndicat
  • 【极客日常】Go语言string、int、float、rune、byte等数据类型的转换方法

    golang的数据类型转换是困惑新gopher的一大问题之一 相对于python xff0c golang的数据类型转换可要麻烦的多 xff0c 而且还不走寻常路地诞生了些新的方法跟名词 因此本文讲解golang常见数据类型string i
  • View的mParent变量初始化

    mParent变量实际上是PhoneWindow DecorView类型 xff0c 是所有应用窗口的根视图 xff0c 是FrameLayout的子类 View的requestLayout 函数也是调用了mParent requestLa
  • java:N的N次方

    题目描述 现给你一个正整数N xff0c 请问N N的最左边的数字是什么 xff1f 输入格式 输入包含多组测试数据 每组输入一个正整数N xff08 N lt 61 1000000 xff09 输出 对于每组输入 xff0c 输出N N的
  • CentOS升级curl

    1 安装repo rpm Uvh http www city fan org ftp contrib yum repo rhel6 x86 64 city fan org release 2 1 rhel6 noarch rpm 2 查看该
  • ACM:入口的选择------深度优先搜索

    入口的选择 Time Limit 1000MS Memory Limit 32768K Description Zeism玩的赛车游戏中 xff0c 有一种树形的赛道 树根表示赛道的终点 xff0c 任何一个叶子结点表示一个赛道的入口 xf
  • ACM:n!的位数 :斯特林公式

    n 的位数 Time Limit 2000MS Memory Limit 65536K Description 针对每个非负整数n xff0c 计算其n 的位数 Input 输入数据中含有一些整数n xff08 0 n xff1c 10 7
  • java 自定义封装jdbc dao类

    手动封装jdbc和dao层 xff0c 体会其中的优点与不足 注 xff1a 本次采用的mysql数据库记得添加数据库的驱动包 Dbhelper类 xff1a 对jdbc进行封装 xff0c 采用单例模式 xff0c 不用每次都去连接数据库
  • Mybatis 二级缓存

    mybatis的缓存分为一级缓存和二级缓存 xff0c 缓存是用来缓存部分经常性访问的数据 xff0c 而不必每一次都跑到数据库获取或运算 xff0c 目标是提高系统的性能 一级缓存 对于每一个sqlSession 其中有一个HashMap
  • virtualbox启动报错:Interface VirtualBox Host-Only Ethernet Adapter is not a Host-Only Adapter interface

    参考 xff1a 参考 xff1a windows下VirtualBox使用过程中遇到的一个错误 报错信息 xff1a Interface 39 VirtualBox Host Only Ethernet Adapter 39 is not
  • Tried to access visual service WindowManager from a non-visual Context

    适配Android12时遇到的一个问题 xff0c 做个记录 xff1a 尝试使用WindowManager做一些事情的时候 xff0c 我们一般会先获取WindowManager的实例 xff0c 即 xff1a WindowManage
  • Electron使用electron-builder打包windows时如何签名

    windows打包基本配置 xff1a span class token string 34 build 34 span span class token operator span span class token punctuation
  • Electron打包mac OS安装包的配置和签名(干货)

    1 先看配置 xff08 electron vue xff09 打包使用的是electron builder package json span class token punctuation span span class token o
  • 【nodejs】exec在windows下读取中文乱码问题

    最近在做一个项目需求是读取计算机名称 在windows上使用nodejs exec读取时会有些电脑上会出现乱码问题 直接在cmd上执行hostname xff0c 返回的是没有问题的 当我使用exec读取时就乱码了 xff0c 虽然可以使用
  • 分享 :CSS常见面试题

    CSS基础 2 1 link和 64 import都可以为页面引入CSS文件 xff0c 其区别是 xff1f 将样式定义在单独的 css 的文件里 xff0c link 和 64 import 都可以在 html 页面引入 css 文件
  • Android LOG系统原理剖析

    引言 在我们android的开发过程中 xff0c 最不可少的就是加Log xff0c 打印Log的操作 这样可以帮助我们去查看各个变量 xff0c 理清楚代码的逻辑 而Android系统 xff0c 提供了不同维度 xff0c 不同层面

随机推荐