当前位置: 首页 > news >正文

【ZYNQ杂记】Debug模式下可以运行的程序但固化后运行卡死

在开发ZYNQ 7020的时候遇到了一个非常诡异的现象:

同样的一段程序

当使用Debug下载到ZYQN板子上运行时,就可以顺利执行外设初始化并启动Free RTOS调度,执行不同的任务;

一旦程序固化到QSPI Flash中,上电运行会在一个外设初始化处卡死。

我遇到的现象是,CAN外设的初始化处卡死

经过反复断点+插入串口标志调试,最终发现程序卡在了LookUpConfig处

期间怀疑过是CAN外设的时钟不稳定,在调试模式和固化状态下,两者的运行速度不同,PLL时钟不稳定导致该情况

该问题一直折腾了一周多,反复尝试都没找到解决办法

今天偶然修改BD中ps uart0的波特率,将波特率从之前的115200修改成了128000

注意到使用Debug运行的程序,uart0的波特率为128000;但是固化到板子上之后,上电串口波特率又成了115200

联想到FSBL这类加载程序,负责初始化串口的波特率,波特率没变,应该是我的FSBL程序没有更新

导出Hareware时,又想到我的工程里有两个硬件平台

其中Platform0是很久以前的硬件版本,那会儿在BD中没有使能CAN 0,也没有对应的引脚约束

Platform1是最近新修改的,使能了PS端的CAN 0,同时添加了引脚约束

我的项目程序用的是Platform1,但是FSBL和fsbl_zynq这两处引导程序的bsp链接的硬件平台还是Platform0

而Platform0中又没有配置过CAN,所以在初始化的时候,根据CAN的ID号查找配置信息,出现了死机的情况

有了这个想法,赶紧验证一下

由于我不会将FSBL_bsp链接的Platform0重新修改到Platform1,多番尝试,最后发现可以直接修改Platform0本身指向的system_wrapper.hdf文件

修改过后,虽然FSBL_bsp还是链接的Platform0,但是此时的Platform0已经被更新了,里面是包含了CAN和CAN引脚约束的文件

再次生成固件,下载,果然固化程序跑CAN初始化时,不再死机了

问题解决

形成一个简单笔记,供遇到类似问题的人参考

http://www.dtcms.com/a/574244.html

相关文章:

  • Spring Boot 响应拦截器(Jackson)实现时间戳自动添加
  • 网站开发与服务合同wordpress 商城系统
  • 郑州企业网站怎么优化保障性租赁住房管理平台
  • 系列文章<十>(从LED显示屏的低灰跳灰(线性度不好)问题问题问题到手机影像):从LED冬奥会、奥运会及春晚等大屏,到手机小屏,快来挖一挖里面都有什么
  • 自动化测试-pytest框架-进阶
  • 学习做网站的网站wordpress 教程 插件
  • (2)pytest+Selenium自动化测试-环境准备
  • 【项目】小型支付商城 MVC/DDD
  • uni-app开发app移动端使用ucharts自定义标签栏Tooltip
  • 《uni-app跨平台开发完全指南》- 03 - Vue.js基础入门
  • uniapp中的静态资源文件,如图片等文件,h5端设置本地与生产测试环境的区别,本地不加前缀,生产测试添加前缀,h5端的已进行测试可行,非h5的未进行测试
  • uni-app + Vue3 实现折叠文本(超出省略 + 展开收起)
  • 云南微网站搭建wordpress插件安装不
  • 汽车行业网站设计chrome google
  • 好用的云电脑!手机怎么用UU远程云电脑玩电脑游戏?
  • 网站开发安装网站原型图软件
  • 坑#Spring Cloud Gateway#DataBufferLimitException
  • 15年做哪些网站能致富网页升级访问紧急通知狼
  • ping: baidu.com: 域名解析暂时失败
  • 上海网站设计方法有哪些网站上可以做试卷
  • 网站建设项目立项登记 表自己家的电脑宽带50m做网站服务器
  • 宜宾公司做网站建设一个电子文学网站资金多少
  • 效率提升的声音助手——工业物联网中的智能化变革
  • 普罗宇宙发布大白机器人2.0 及灵巧手,携手京东加速全球化落地
  • Java 集合框架:List 体系与实现类深度解析
  • 阿里云 ip 网站哈尔滨行业网站建设策划
  • 注册了网站怎么建设网站视听内容建设
  • 泉州专业做网站网上做网站怎么防止被骗
  • 使用 ECharts + ECharts-GL 生成 3D 环形图
  • 做电影网站视频放在那里南阳做那个网站好