完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1 概述
FOTA方案使用了 平头哥芯片开发社区(OCC)作为服务端,用户需要在 OCC 上注册账号、创建产品、并上传升级包。设备端通过连接 OCC 服务器,下载升级包,进行升级。关于OCC FOTA服务的详情,请参考OCC文档:《FOTA服务》。 2 流程说明 本小节主要通过示意图解释各个步骤之间的关系,帮助使用者更深一层理解FOTA服务。 补充:图中的model对应下文的产品型号,cid(device_id)对应下文的设备ID。 3 上传镜像 工程在编译完成后生成固件,位于工程目录 generated/images.zip。该压缩文件将用于上传至OCC服务器生成升级包。 3.1 进入控制台 注册或登录平头哥芯片开发社区(OCC)控制台。 3.2 添加产品
3.3 初始固件的添加及发布
附:后续会需要将这里下载并解压镜像包得到的total_iamge.bin文件烧录至设备。 3.4 升级固件的添加及发布
注:新版本的【固件版本号】不要与前版本一致,建议递增。
等待版本状态变为已发布则表示升级固件上传成功。 4 升级设备管理 4.1 生成许可证 OCC平台会对每一个设备颁发一个许可证,用于设备升级,并需把许可证信息配置到设备中。进入产品详细配置界面中选择许可证选项卡: 页面中点击下载开始下载许可证数据。解压后,pieces目录中以设备ID为文件名,保存了每个设备的信息。通过文件名获取设备ID,后续操作会说明。 4.2 添加标签
4.3 设置升级策略
5 烧录镜像 从OCC 平台上下载的镜像,会有签名认证,需要将镜像中的total_image.bin文件烧录至设备,这里用Flash Programmer工具烧录,工具来源参考《TG6101上手指南:Flash Programmer使用说明》。
烧写完成后,按下REAET键复位设备使其运行。 6 设置设备端参数 串口通过 cli 命令写入升级参数和使能FOTA功能。 > factory set model {产品型号} success > factory set device_id {设备ID} success > kv setint fota_en 1 kv set int success 其中“{产品型号}”为《3.2 添加产品》填写的 产品型号,而“{设备ID}”为《4.1 生成许可证》通过文件名获取设备ID。再次重启开发板,检查FOTA串口打印升级信息,设备默认是 1分钟检测一次是否有新版本,需确认"cid"后面跟的字符串是否和设备ID一致,如果一致,表示设置生效。 7 检查版本 通过检查串口打印,可以知道当前软件版本是否升级成功:
可见,如同上传固件时设备的版本号一样,由1.1.1升级到了2.2.2,故升级成功。 8 分区单独升级 默认升级包会升级多个分区,如果需要升级单独分区,需修改上传固件包images.zip内的文件config.yaml解压 images.zip ,并修改 config.yamlconfig.yaml 文件中 partitions 字段内容如下: partitions: - { name: bmtb, address: 0x8000000, size: 0x001000 } - { name: boot, address: 0x8001000, size: 0x010000 } - { name: tee, address: 0x8011000, size: 0x010000, load_addr: 0x18000000} - { name: fct, address: 0x8021000, size: 0x004000 } - { name: imtb, address: 0x8025000, size: 0x002000 } #36K Reserve - { name: prim, address: 0x8030000, size: 0x600000, load_addr: 0x18010000, verify: true, update: FULL} - { name: lfs, address: 0x8630000, size: 0x200000, update: FULL } - { name: kv, address: 0x8830000, size: 0x004000 } #48K Reserve - { name: misc, address: 0x8840000, size: 0x788000 } #64K Reserve # - { name: kp, address: 0x8FFF000, size: 0x001000 } #debug partitions 字段的每个元素表示 一个分区,其中有 update 字段的分区表示可以升级的分区,去掉 update字段即表示不升级该分区,例如: - { name: lfs, address: 0x8630000, size: 0x200000 } lfs分区的 update字段删除,即表示不升级 lfs分区。修改完成后,重新打包images.zip上传到OCC即可。 文章转载自:平头哥芯片开放社区 作者:炎赫 |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
【平头哥Sipeed LicheeRV 86开发板试用体验】Waft初体验
15702 浏览 1 评论
13758 浏览 4 评论
【平头哥Sipeed LicheeRV 86开发板试用体验】四、烧写waft系统&搭建waft测试环境
19680 浏览 2 评论
59121 浏览 19 评论
【限时福利】加入芯片开发社区,领100G电子工程师资料大礼包
88163 浏览 121 评论
邀请函 | 3月2日 来上海参加平头哥“玄铁RISC-V生态大会”
784浏览 0评论
读书分享会 | 玄铁RISC-V处理器入门与实战电子书免费下载!
682浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 07:42 , Processed in 0.620770 second(s), Total 61, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号