0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HC32L110系列的IAP控制模块基本功能

沈阳芯硕科技 来源:jetson024 作者:jetson024 2022-05-10 14:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

通常实现IAP功能时,需要在设计固件程序时编写两个项目代码,第一个项目程序即BOOT程序不执行正常的功能操作,而只是通过某种通信方式(如USB、USART)接收程序或数据,执行对第二部分代码的更新;第二个项目程序即APP程序用户真正的功能代码。这两部分项目代码同时烧录在Flash中,当芯片上电后,首先是第一个项目程序BOOT开始运行,它主要实现如下功能。
1)检查是否需要对第二部APP程序代码进行更新
2)如果不需要更新则转到4)
3)执行更新操作
4)跳转到第二部分代码执行
第一部分BOOT代码可以通过SWD或者离线编程器下载到芯片Flash内部,第二部分APP和第一部分BOOT一起烧入芯片内部,以后需要程序更新再通过第一把BOOT代码更新。根据芯片系列的Flash存放不同地址范围,从最低地址区域开始存放BOOT,紧跟其后的就是APP程序,本篇笔记受限于芯片内部Flash容量,只是存放一个APP程序。即在芯片内部有两个程序即BOOT和APP程序。
IAP功能具体实现
芯片程序一般从Flash地址0x0000_0000开始执行,基于Cortex-M0+内核特性,内部通过中断向量表来响应中断,程序从中断向量表取出复位中断向量执行中断程序,当中断产生,芯片内部PC指针定位到中断向量表来取出对应的中断服务程序执行。如果没有中断产生,在芯片执行完复位中断服务程序后,跳转到main函数顺序执行死循环。如果有中断产生,通过中断向量表执行对应的中断服务程序。
当加入IAP后,芯片还是从中断向量表取出复位中断向量执行中断程序,如果没有中断产生,在芯片执行完复位中断服务程序后,跳转到main函数。在执行完IAP后,新程序的复位中断向量地址为0x0000_0004 + BOOT程序大小,跳转到APP程序的复位向量表,执行APP的复位中断服务程序,随后跳转到APP程序的main函数执行。
其中:BOOT程序大小3.5KB
Para区域存放IAP升级期间参数和标志占用0.5KB
APP程序大小为24KB
Demo程序,操作流程如下:
先将APP工程HEX下载到芯片内部
打开BOOT工程HEX下载到芯片,或者可以使用工具将两个HEX文件合并在一起下载到芯片内部。
使用上位机演示程序,打开串口波特率固定为9600。按照协议将APP工程的bin文件下载到0x1000开始的芯片内部,其中要求APP的bin文件小于28KB。
参考样例及驱动
通过上述介绍,使用演示Demo程序IAP需要特定协议。
通信协议格式如下:
///*frame:68A0A1CPage L0L1D0... DN-1 CRC0CRC1 16*///
///*offset :0 1 2 3 4 5 6 7 8+N 9+N 10+N 11 +N*///
头字符: 固定字符为0x68一个字节
地址: A0 A1两个字节
控制码C:读地址为0x15 写地址为0x25
页地址page:一个字节代表现在要操作的那个页
长度L0 L1: 两个字节 L0代表高字节,L1代表低字节,此处长度仅代表数据区域长度
数据域D0…DN-1:代表读出或者写入的数据
数据校验CRC:采用CRC-16方式,代表数据域数据的校验。
结束符号:固定字符为0x16一个字节
读指令如下:
68 A0 A1 15 Page 0x00 0x00 CRC0 CRC1 16
正确回复:68 A0 A1 95 Page 0x04 0x00 D0 ………… D1023 CRC0 CRC1 16
错误回复 68 A0A1D5 Page 0x00 0x00CRC0CRC1 16
Page选择(0 -- 27)
每次读取1K字节数据
写指令如下:
68 A0 A1 25 Page 04 00 D0 ………… D1023 CRC0 CRC1 16
正确回复:68 A0 A1 A5 Page 04 00 CRC0 CRC1 16
错误回复 68 A0 A1 E5 Page 00 00 CRC0CRC1 16
Page选择(0 -- 27)
每次写1K字节数据
开始IAP升级指令
68 A0 A1 36 00 00 00 00 00 16
正确回复68A0 A1 B6 00 000000 00 16
错误回复68A0 A1 F6 00 000000 00 16
结束IAP升级指令
68 A0 A1 49 00 00 00 00 00 16
正确回复68A0 A1 C9 00 000000 00 16
错误回复68A0 A1 09 00 000000 00 16
发送数据帧如果发送结束到接收小于2s,如果超过说明IAP升级通信错误。
以下部分简要介绍IAP实现关键代码:
1)BOOT实现跳转到APP代码:
if(((*(__IO uint32_t*)appxaddr)&0x2FFE0000)==0x20000000) //检查栈顶地址是否合法
{
jump2app=(iapfun)*(__IO uint32_t*)(appxaddr+4);//APP程序复位地址
MSR_MSP(*(__IO uint32_t*)appxaddr); //初始化APP堆栈指针
jump2app(); //跳转到APP程序
}
2)APP程序中断向量偏移:
new_vect_tableEQU 0x00001000 ;中断向量偏移长度
; reset Vector table address.
LDR R0, =0xE000ED08
LDR R2, =new_vect_table
STR R2, [R0] ;向量表重定义点击并拖拽以移动
总结
以上章节简要介绍了HC32L110系列的IAP控制模块基本功能,详细说明了该模块的各个功能及操作步骤,用户在实际的应用开发过程中,如果需要更深一步了解该模块的使用方法及操作事项,应以HC32L110的用户手册为准。本章中提到的样例既可以作为用户进一步的实验与学习,也可以在实际开发中直接应用。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    463

    文章

    54644

    浏览量

    471019
  • 控制模块
    +关注

    关注

    2

    文章

    148

    浏览量

    19900
  • IAP
    IAP
    +关注

    关注

    2

    文章

    169

    浏览量

    26231
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    AD7147的基本功能

    AD7147 是由亚德诺半导体(ADI)推出的 ‌CapTouch™ 可编程控制器‌,专为电容式触摸传感设计,广泛应用于人机交互界面。其核心功能如下: 核心功能概述 ‌ 电容-数字转换(CDC
    发表于 05-06 09:31

    MC68HC908QYA/QTA系列控制器的深度剖析与应用指南

    MC68HC908QYA/QTA系列控制器的深度剖析与应用指南 在电子工程师的日常工作中,选择一款合适的微控制器(MCU)至关重要。MC68HC
    的头像 发表于 04-09 13:20 254次阅读

    探秘MC68HC908QYA/QTA系列控制器:特性、功能与应用解析

    探秘MC68HC908QYA/QTA系列控制器:特性、功能与应用解析 在电子工程领域,一款性能卓越、功能丰富的微
    的头像 发表于 04-09 13:15 277次阅读

    Freescale HC08 QC 系列 8 位微控制器:低成本解决方案的首选

    08 QC 系列基于流行的 HC08 内核,是面向通用市场的小封装 8 位微控制器家族。该系列成员具备强大的模拟能力、完整的串行模块
    的头像 发表于 04-09 13:10 336次阅读

    探索MC68HC908QY/QT系列控制器:功能、特性与应用全解析

    探索MC68HC908QY/QT系列控制器:功能、特性与应用全解析 概述 在电子工程师的日常工作中,微控制器(MCU)是不可或缺的核心组件
    的头像 发表于 04-09 11:30 288次阅读

    深入解析MC68HC908LB8微控制器:特性、功能与应用

    的MC68HC908LB8微控制器,详细了解它的特性、功能以及在实际应用中的表现。 文件下载: MC68HC908LB8VDWE.pdf 一、概述 MC68
    的头像 发表于 04-09 11:30 285次阅读

    深入解析MC68HC908JB8系列控制器:特性、功能与应用

    深入解析MC68HC908JB8系列控制器:特性、功能与应用 在电子工程领域,微控制器是众多电子设备的核心组件,它们的性能和
    的头像 发表于 04-09 11:15 368次阅读

    深入剖析MC68HC(7)05L5微控制器:功能、特性与应用全解析

    深入剖析MC68HC(7)05L5微控制器:功能、特性与应用全解析 在电子工程师的日常工作中,微控制器是不可或缺的核心器件。今天,我们就来详
    的头像 发表于 04-09 11:05 413次阅读

    MC68HC705KJ1系列控制器深度解析

    MC68HC705KJ1系列控制器深度解析 引言 在电子设计领域,微控制器是众多项目的核心组件。MC68HC705KJ1
    的头像 发表于 04-09 11:05 456次阅读

    深入解析MC68HC705JJ7/MC68HC705JP7微控制器:特性、功能与应用指南

    ,我们将深入探讨MC68HC705JJ7和MC68HC705JP7这两款微控制器,它们属于MC68HC05JJ/JP系列,具有丰富的特性和强
    的头像 发表于 04-09 11:05 295次阅读

    M68HC11K 系列控制器技术解析

    M68HC11K 系列控制器技术解析 在电子工程领域,微控制器是众多设备的核心大脑,而 M68HC11K
    的头像 发表于 04-09 11:05 344次阅读

    110W 双输出开关电源 PD - 110 系列:性能与设计解析

    系列,看看它在性能、设计和应用方面有哪些值得关注的地方。 文件下载: PD-110A.pdf 一、产品特性 1. 输入与保护 PD - 110 系列采用通用交流输入,全范围适应,能满
    的头像 发表于 04-05 15:15 800次阅读

    【飞凌嵌入式RV1126B开发板】+基本功能测试篇(1)

    基本功能的测试。 1.内核性能测试 1)查看内核和cpu信息 实现该测试功能的指令为:uname -a 图1 操作及内容 2)查看CPU频率 图2 操作及结果 3)查看环境变量信息 图3 操作及结果 4
    发表于 03-05 12:25

    小华HC32L低功耗额温枪开源方案

    1,本方案采用小华超低功耗MCU设计;适用HC32L136,HC32L176,HC32L166,HC32L196,HC32L186等
    发表于 02-12 17:40 1次下载

    单片机基本功能

    必须考虑其外部的连接情况,应保证在Standby或静态状态下不存在拉电流或灌电流。 3、外部中断:外部中断也是绝大多数MCU所具有的基本功能,一般用于信号的实时触发,数据采样和状态的检测,中断的方式由
    发表于 01-13 07:20