打印
[学习笔记]

AC78xx平台基于CAN的IAP升级例程

[复制链接]
5779|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 AutochipsMCU 于 2020-11-9 09:09 编辑

环境介绍
本例程支持通过上位机进行IAP升级,目前支持CAN接口。
上位机开发环境:QT 5.6.3
CAN工具:纬图 USBCAN适配器
MCU开发平台:AC78xx(AC781xAC780x)
MCU开发环境:Keil 5.23

软件介绍
软件分两个工程,一个AC78xx_Boot,一个AC78xx_App
Boot负责App程序跳转,以及程序升级功能。
App属于应用程序,负责产品功能实现。以及触发升级功能。
在开发IAP功能前,首先需要规划程序分区,需要把flash至少分为boot,app两个程序分区,一个data分区(用于存升级标志位,如果有eeprom等其他可存储的设备,可不用),flash的启动地址为boot的起始地址(及程序从boot开始执行)。
本例程程序分区规划如下:
Boot:起始地址:0x8000000,大小:0x5800
APP:起始地址:0x8006000,大小:0x19000(根据选择的芯片型号调整)
Data:起始地址:0x8005800,大小:0x800

功能测试
测试硬件环境
基于AC78xx demo平台,需要GlinkgoUSB-CAN工具。
备注:AC781x demo板是接到CAN1口上。

测试软件环境
1.分别下载AC780x_Boot和AC780x_App工程到demo板中。
App工程配置不能配为全片擦除,否则会擦掉boot程序。默认程序LED2会快闪。
2.打开上位机软件
下面基于上图标号进行描述升级流程。
3. 软件环境准备
1)    标号3设置CAN通信波特率,程序默认500K。
2)    标号8设置App起始地址。程序默认0x8006000。
3)    标号4选择需要升级的文件。文件格式为bin文件。

4. 升级
1)    点击标号1开始搜索设备(demo板正在运行app程序)。会搜到设备节点,显示在标号2区域。
2)    选中需要升级的节点,点击标号5进入升级模式。此时程序会进入升级模式,程序会跳转到boot中,等待升级命令。此时点标号1会搜到节点,并显示固件类型为boot。
Demo板现象:LED灯变为慢闪。
3)    选中升级的节点,点击标号6,开始升级。升级进度会弹框提醒。
4)    升级结束后,点击标号7退出升级模式,跳转到新升级的APP中。
注意:如果最后没有执行标号7,即使升级成功也不会清升级标志位,重启后还是会进入升级模式,程序停留在boot中。因此升级成功后,需执行标号7

资料说明:
上位机工具(源码和可执行文件)
IAP(PC_Tool).rar (15.94 MB)
AC781x平台IAP例程(Boot和App)
IAP(AC781x).rar (186.1 KB)
AC780x平台IAP例程(Boot和App)
IAP(AC780x).rar (102.4 KB)
IAP升级文档
AC78xx 基于上位机的IAP升级使用说明.pdf (537.31 KB)

使用特权

评论回复
评论
kinglena 2024-1-11 14:44 回复TA
@laoganma :同问 
laoganma 2022-11-10 09:07 回复TA
你好我想问一下上位机操作第一步就显示No device connected是什么问题?已经分别下好了boot和app程序,灯也在快闪了 

相关帖子

沙发
RunningX| | 2020-8-14 14:08 | 只看该作者
使用上位机,可能会报错,错误信息为:缺失libus0.dll文件
这个时候需要添加这个文件(论坛不支持dll格式文件,只能传压缩包): libusb0.rar (16.47 KB)
存放的目录为:一般为C:\WINNT\System32      64位系统为C:\Windows\SysWOW64

使用特权

评论回复
板凳
TechHolder| | 2020-8-14 14:24 | 只看该作者
RunningX 发表于 2020-8-14 14:08
使用上位机,可能会报错,错误信息为:缺失libus0.dll文件
这个时候需要添加这个文件(论坛不支持dll格式文 ...

使用特权

评论回复
地板
TechHolder| | 2020-8-14 14:24 | 只看该作者
RunningX 发表于 2020-8-14 14:08
使用上位机,可能会报错,错误信息为:缺失libus0.dll文件
这个时候需要添加这个文件(论坛不支持dll格式文 ...

使用特权

评论回复
5
zhengshuai888| | 2020-9-9 19:41 | 只看该作者
不错不错,谢谢分享干货。

使用特权

评论回复
6
这是神魔节奏| | 2021-3-24 16:11 | 只看该作者
上位机选择用文件中自带的V1.1版本的,网上下载的V1.2汉语版本的好像不支持

使用特权

评论回复
7
这是神魔节奏| | 2021-3-24 17:43 | 只看该作者
本帖最后由 这是神魔节奏 于 2021-3-24 17:51 编辑

请问如果现在已经开发了对应项目的应用程序,借用咱们例程中的AC781x_Boot实现CAN烧写功能,要做的工作除了以下还有哪些:
1、在AC781x_Boot和self工程_App中更改相应的单片机,并合理分配Flash区域;
2、除Flash更改外,AC781x_Boot不做任何更改;
3、self工程_App更改工程配置中定义起始地址和Size,以及在第一时钟重定向以APP起始地址的中断向量表SCB->VTOR = APP_START_ADDR;
4、移植System_UpdateAPP()函数;
5、此外self工程_App是不是还需要在初始化CAN中发送返回地址是0x10的报文?
6、self工程_App的看门狗必须要初始化?7、不考虑烧写30s的等待,是不是不需要配置timer?即如果进入升级模式,而没有升级文件,就一直等待在此状态。

使用特权

评论回复
8
elephant00| | 2021-3-26 11:15 | 只看该作者
不错不错,谢谢分享干货。

使用特权

评论回复
9
非谢家之宝树| | 2021-3-31 19:34 | 只看该作者
这上位机看着很是眼熟啊,貌似之前还参考过大佬的上位机例子。。。

使用特权

评论回复
10
Sy1vester| | 2021-4-15 09:01 | 只看该作者
干货,顶

使用特权

评论回复
11
lyp0709| | 2024-3-16 17:24 | 只看该作者
demo板有没有购买的链接?

使用特权

评论回复
12
agusliu| | 2024-6-12 18:21 | 只看该作者
杰发有深圳这边的FAE吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:合肥杰发科技有限公司
简介:四维图新全资子公司 全球多地布局;专注于汽车电子芯片及相关系统的研发与设计 车规级芯片覆盖整车;客户遍及海内外 全球超过8000万辆车搭载杰发科技芯片。

59

主题

268

帖子

11

粉丝