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

Zynq multi boot及网口远程更新开发

开发环境

       ZU11EG+VITIS2019, FreeRTOS+LWIP,flash启动模式,flash是两个16MB并行组成的32MB。

目标

通过以太网接口,实现设备的远程更新;

开发过程记录

   一开始是按照单个boot进行的,先通过UDP将boot发送到下位机,并存储在emmc中,然后再进行flash更新,每次更新都会将flash全部擦除,然后将boot写入flash,这种方案是可行的,但是存在风险,就是数据传输或者更新flash的时候如果出现错误,那么就必须通过jtag进行刷机,因为没有备份的boot程序,而且在测试过程中确实遇到过这种情况,因此单boot方案在实际中不可行,所以改为multiboot 方案。

       在开发multi boot方案之前需要对zynq的启动过程有一定的了解,详细启动过程可以参考UG1085/UG1137, 关键就是下面三个图,

 

这里简单介绍一下,在芯片出厂的时候内部PMU里面会固化一个BootRom,算是芯片自带的boot程序,这是整个芯片上电后最先运行起来的程序,这个程序运行起来以后会在flash里面间隔32KB寻找有效的boot header,找到后就load FSBL,随后FSBL就在RPU上运行起来,配置PS,PL等,将程序搬到内存中,然后就handoff,交给用户程序,这时系统就完成了启动过程。

       我们实现multi boot关键就是利用了BootROM能自动间隔32KB寻找有效boot header这个功能,我们将不用更新的程序放在后面,预留好空间,这个不用更新的程序,赛灵思叫做golden image,作用就是当我们远程更新过程中出现数据错误的时候,保证设备能够启动起来,并且能够进行二次更新,所以这个golden image 就是个兜底的作用, golden image 至少要具备程序更新功能,可以增加软件复位,更新后不断电就可以运行新程序。

    制作和下载golden image注意事项,

首先是这个golden image不要太大,不要带着PL的bit文件,否则会比较大,对于偏移,建议将该程序放到最后,将前面的空间留给应用程序,比如我制作文件大小是387KB,为了给以后增加功能留下空间,我准备将它下到最后的24*32K=768KB空间里面,由于flash是按照sector 64KB擦的,所以下载的时候偏移量要按照64KB对齐,这里偏移量我设置为0x1F40000。

在更新用户程序的时候要注意,不要将flash全擦了,768KB占用12个sector,我的flash一共有512个sector,因此我只需要擦500个就行,后面的就不要擦了,要不然golden image就丢了,

将golden image下载好以后,我们就可以实现网口远程更新了,如果更新有问题,可以多次尝试,因为我们的golden image一直都在。

其它

在应用程序里是否要实现远程更新功能?

其实也可以实现,这样只要更新不出问题,我们的golden image就没有机会启动,如果从减小代码的角度考虑,可以不实现,可以通过配置multi boot寄存器实现程序的跳转,将该寄存器的值+1,然后软件复位,就可以启动golden image,再进行更新。

   通过multi boot功能,我们可以实现多个程序跳转,比如前面可以放设备自检代码,设置一些加密功能,最后跳转到应用程序。

相关文章:

  • .Net框架,除了EF还有很多很多......
  • 简易版抽奖活动的设计技术方案
  • 数据库管理与高可用-PostgreSQL初体验
  • 安全编程期末复习34(红色重点向下兼容)
  • 8.1.排序的基本概念
  • ArkUI-X平台差异化
  • 函数中的Callable
  • Web安全漏洞详解及解决方案
  • 行业 |5G六年,互联网改变了什么?
  • Vue 2.0 + C# + OnlyOffice 开发
  • GO自带日志库log包解释
  • RAG->大模型搜索search-R1
  • Java中高并发线程池的相关面试题详解
  • AE之番外篇
  • 模型上下文协议(MCP)实践指南
  • 深入解析默认值工具类:DefaultUtil
  • TF-IDF算法详解与实践总结
  • 上海市计算机学会竞赛平台第六届上海市青少年算法竞赛网络赛(青年组)平方的和
  • Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
  • 【2025CVPR】花粉识别新标杆:HieraEdgeNet多尺度边缘增强框架详解
  • 网站查询系统怎么做/西安百度竞价外包
  • 网站建设zvge/南宁网站建设服务公司
  • 上海响应式网站制作公司/seo网站营销公司哪家好
  • 政府网站建设指标评价结果/seo手机优化软件哪个好用
  • 北京做微信网站哪家好/宁波seo排名外包
  • 新疆5g基站建设/2023年8月新冠疫情