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

zynq远程更新程序

记录一下近期开发远程更新程序功能遇到的问题,如果有进行类似开发的同学可以借鉴,如果你对启动过程不了解,请看UG1085/UG585等对应的手册,或者网络搜一下。

片子是赛灵思的ZU11EG, vitis2019.2,跑的ftreeRTOS+LWIP,方案如下,

        具体方案是先通过UDP将boot.bin写入到emmc中,然后再从emmc烧写到flash,这里有一个注意事项,之所以不直接从emmc启动,是因为emmc没挂在对应的口上,从下面的boot mode可以看到,emmc必须挂载MIO[22:13]上面才行,否则没法从emmc启动,而用的硬件emmc挂在MIO[51:39]上面,因此没法直接刷emmc,如果是跑linux是可以的。

然后第二个注意事项是在写flash的时候,用的是官方的例程里的函数,最好是在写之前一次性擦完,然后只管写就行了,还要注意每次只能写一个page,如果每次都先擦一次写一次,由于是按照secter擦的(见下图),导致之前写的都被擦掉了,因为这个原因困扰了我一天,写完一读全是FF,

 为了验证下位机程序,我还专门学习了一下winform上位机,因为没人给写,还好比较简单,

 代码已经验证通过,以后就不用哭呵呵的用jtag了。

为了保证交互过程的可靠,我规定了一个协议,数据传输和响应都是按照协议进行的,如果有需要,可以提供源代码,首先说明这个上位机能用,但是不完善,毕竟才学了几天。

还有一个注意事项,由于boot是存储在emmc中的,每次下载都会下载到同一个文件里面,如果下载的boot和上一次大小不同就需要注意了,如果新的boot比上一次大,则没问题,如果比上一次小,则需要将文件大小进行截断,否则上一次boot的尾巴也会被写入flash,导致启动失败。

如果对你有帮助,请给我点个赞,多谢!

相关文章:

  • C++类二
  • 电子电路基础1(杂乱)
  • 使用 Preetham 天空模型与硬边太阳圆盘实现真实感天空渲染
  • Day 40训练
  • Unknown key: ‘auto_activate_base‘解决
  • AI变革思考2:当小众需求遇上人工智能,催生长尾应用的春天
  • 【AAOS】【源码分析】用户管理(三)-- 用户启动
  • 045-代码味道-数据泥团
  • ObservableRecipient与ObservableObject
  • 深度学习习题2
  • Python爬虫与Java爬虫深度对比:从原理到实战案例解析
  • Java 中比较两个 long 类型变量大小的方法
  • Linux网桥实战手册:从基础配置到虚拟化网络深度优化
  • N2语法 強調、限定
  • RK3588 InsightFace人脸识别移植及精度测试全解析
  • 合并表格(按行合并)
  • 汇川变频器MD600S-4T-5R5为什么要搭配GRJ9000S-10-T滤波器?
  • Unity基础-Mathf相关
  • latex画表格
  • 深度学习习题3
  • 延安网站建设网络公司/集客营销软件官方网站
  • 温州做网站建设哪家好/seo排名规则
  • 我想弄个自己的卖货网站怎样做/郑州百度推广哪家好
  • 濮阳新闻综合频道直播/关键词排名优化营销推广
  • 免费ppt模板下载党建/北京网优化seo优化公司
  • 如何做自己的视频网站/seo主要做什么