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

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

3天内不再提示

应用笔记(四)| 在CW32F030上实现IAP功能

武汉芯源半导体有限公司 2022-08-09 10:52 次阅读

前言

IAP 是 In Application Programing 的首字母缩写,在应用编程,即在程序运行的过程中进行编程(升级程序, 更新固件)。IAP 是用户自己的程序在运行过程中对 Flash 部分区域进行烧写,目的是为了在产品发布后可以方便地通过 预留的通信口对产品中的固件程序进行更新升级。

1

功能实现

IAP 功能的实现,一般将程序分为两个部分,即:Bootloader 和 APP。Bootloader 程序用于上电时判断程 序是进入 IAP 升级流程还是进入 APP 应用程序执行过程。其一般放置在 FLASH 的开始部分,如下图示:

poYBAGLOYUGAVLeFAACGWYo6uzs871.jpg

CW32F030 的 Flash 起始地址为 0x00000000,划分 0x00000000 ~ 0x00001FFFF 这 8Kbyte 的空间用于存放 Bootloader 程序,APP 的起始地址选择为 0x00002000。

CW32F030 采用 ARM® Cortex®-M0+ 内核,具有向量表偏移寄存器 VTOR,故其从 Bootloader 中实现向 APP 中跳转较为简单,仅设置向量表偏移即可。

本应用中 Bootloader 采用 UART1 作为 IAP 的通讯接口,以 Ymodem 协议进行文件的传输。APP 程序通过 SYSTICK 定时器计时,并通过中断的方式每 200ms 对口线 PB09 翻转一次,驱动 LED1 闪烁。

2

Bootloader 程序设计

poYBAGLOYUKAOAGDAAEzpeCU1qY977.jpg


2.1参考代码

pYYBAGLOYUKAVYqAAAO0ZQvd4SY485.jpg

2.2程序编译

以 MDK-ARM 为例,编译时注意如下选项:

1. 设 置 Bootloader 程 序 的 起 始 地 址 和 占 用 ROM(FLASH) 空 间 的 大 小, 本 例 中 Bootloader 从 地 址 0x00000000 处执行,占用 7.46Kbyte 的空间,故分配 8Kbyte(size=0x2000)的 FLASH 空间保留给 bootloader。如下图:

pYYBAGLOYUKAOtpLAAKF0D-R1Ng999.jpg

2. 链接时,使用 IDE 的对话框配置,如下图:

pYYBAGLOYUKANeiFAAJ8a1Ti9YA549.jpg

3

APP 程序设计

APP 程序可以先按正常程序的设计流程进行设计和调试,等调试测试通过后,需要进行如下的修改:

1. 在对系统初始化时,修改中断向量表的偏移地址

如下图将 VECT_TAB_OFFSET 修改为 0x00002000,这个偏移量就是用户的程序准备在 FLASH 中存放 的地址,本例设置为 0x00002000。这样用户程序的中断向量表就被重定位到 0x00002000 处,与 ARM® Cortex®-M0+ 内核默认的中断向量表地址 0x00000000 相区分。

poYBAGLOYUKAXkIiAAREwL_-E4s168.jpg

2. 修改编译配置

如下图,START 填入的值,即为 APP 程序在 FLASH 中存放的起始地址,也是中断向量表需要偏移的位置。

poYBAGLOYUGANG7TAAPYVHqlDdE972.jpg

3. 链接时,使用 IDE 的对话框配置,如下图:

poYBAGLOYUKAftUDAAL4YZnk8ik402.jpg

4

演示

上 位 机 采 用 Windows 的 超 级 终 端, 设 置 串 口 波 特 率 为 115200bps,8 位 数 据 位,1 位 停 止 位。下 位 机 CW32F030C8T6 StarKit 复位后,按下 KEY1 后,超级终端将有如下显示:

pYYBAGLOYUKAfgKYAAERWANtxd8577.jpg

屏幕不断显示字符“C”,提示下位机准备接受文件。选择“传送”-“发送文件”,如下图:

poYBAGLOYUKAZTLiAAGuifTIeME175.jpg

在出现的对话框中选取用户的 APP 文件,并将协议选择为“Ymodem”,并点击“发送”,如下图:

pYYBAGLOYUKAKB4VAAGdFA6pSto478.jpg

程序传输完成后,屏幕将有如下提示:

pYYBAGLOYUKARpGGAAH4LZziwA8618.jpg

此时,CW32F030C8T6 StarKit 板上的 LED1 将以 200ms 的间隔闪烁,说明用户程序已正常运行。

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

    关注

    48

    文章

    7481

    浏览量

    150997
  • 单片机
    +关注

    关注

    6032

    文章

    44511

    浏览量

    632630
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16965

    浏览量

    350186
  • IAP
    IAP
    +关注

    关注

    2

    文章

    163

    浏览量

    24244
收藏 人收藏

    评论

    相关推荐

    基于CW32模块的SHT30温湿度传感器设计

    我们的目标是将例程移植至CW32F030C8T6开发板【测量温湿度的功能】。首先要获取资料,查看数据手册应如何实现读取数据,再移植至我们的工程。
    的头像 发表于 11-12 11:14 199次阅读
    基于<b class='flag-5'>CW</b>32模块的SHT30温湿度传感器设计

    基于CW32直流电机PID学习套件介绍

    主要参数 电源输入:5-12V 测量电压范围:10mV-15V 安装方式:模块化直插 主控型号:CW32F030 电机型号:CHR-GM25-310 减速比:1:45 电压:DC 3V-6V 支持
    的头像 发表于 07-15 16:03 394次阅读
    基于<b class='flag-5'>CW</b>32直流电机PID学习套件介绍

    武汉芯源半导体CW32F030K8T7在即热式热水器的应用介绍

    捕获/比较通道和3对互补PWM输出,死区时间和灵活的同步功能组16位通用定时器;三组16位基本定时器;窗口看门狗定时器;独立看门狗定时器; 图:CW32F030K8T7在即热式热水器的应用框图
    发表于 06-06 14:17

    武汉芯源半导体CW32F030系列单片机为即热式热水器的智能化提供理想选择

    随着智能家居技术的不断进步,即热式热水器作为现代家庭中的重要组成部分,正逐渐向智能化、节能化方向发展。本方案通过采用武汉芯源半导体的CW32F030系列单片机,以其高性能、超强抗干扰等特性,为即热式
    的头像 发表于 06-05 17:19 1110次阅读
    武汉芯源半导体<b class='flag-5'>CW32F030</b>系列单片机为即热式热水器的智能化提供理想选择

    使用通用串口模块下载CW32F030芯片的方法

    CW Programmer V1.53。 自备HEX文件。 如下图所示: 二、硬件准备 以WCHLINK仿真器+CW32F030CXT6官方板演示下载过程。     三、使用引脚说明 CW3
    的头像 发表于 05-31 17:30 561次阅读
    使用通用串口模块下载<b class='flag-5'>CW32F030</b>芯片的方法

    CW32使用DMA单通道、定时器触发ADC实现了多路AD采集

    本测试样例基于CW32F030C8T6MCU,使用DMA单通道、定时器触发ADC实现了12路AD采集。
    的头像 发表于 05-24 09:29 781次阅读
    <b class='flag-5'>CW</b>32使用DMA单通道、定时器触发ADC<b class='flag-5'>实现</b>了多路AD采集

    芯海CS32F0XXTIMER外设模块应用笔记

    用户示例做了工作原理与相关代码介绍,以方便用户快速移 本应用笔记分为部分: ●定时器特性概述 。基本定时器功能介绍 高级定时器功能介绍 ●特定场景应用示例 下表列出了本应
    发表于 05-16 15:02

    芯海CS32F0XXADC外设模块应用笔记

    。 本应用笔记分为三部分: ●独立 ADC 模式 降低ADC误差固件的方法 VDD 跳变的情况下使用 ADC模式 下表列出了本应用笔记覆盖的CS32微控器类型及PACK版本号*附件:CS32
    发表于 05-16 14:58

    芯海应用笔记:CPW3101入门指南

    本技术说明文档提供关于 CPW3101 开发板 UFCS_EVB_V1.2 功能介绍、特性说明、使用说明、IAP升级、使用注意事项等,旨在帮助用户更好地使用 CPW3101 开发板_V1.2,进行芯
    发表于 05-16 14:39

    芯海应用笔记:CSU3AF10 IAP功能设计指南_V1.0

    和 UART 两种协议的 IAP 升则方式的差异、IAP 设计需要注意的事项等。*附件:应用笔记:CSU3AF10IAP功能设计指南_V1
    发表于 05-16 14:29

    芯海通用 MCU 应用笔记 :CS32F103 系列 MCU IAP 升级指南

    本应用笔记旨在帮助指导用户针对芯海 CORTEX-M3 MCU CS32F103 系列单片机 IAP 应用的快速开发。本应用笔记实现了 CAN 和 USART 两种接口方式来开发
    发表于 05-16 11:40

    芯海通用 MCU 应用笔记: CS32F03x IAP 升级

    本技术文档旨在帮助客户实现 IAP 升级提供一个参考方案和模板。本文档提供基于 UART 升级的 MCU 参考代码和 PC 端的升级工具软件。适用 MCU 型号:CS32F030、CS32F
    发表于 05-16 10:55

    芯海科技应用笔记:CS32F0XX TIMER外设模块指导

    绍的特定用户示例做了工作原理与相关代码介绍, 以方便用户快速移。本应用笔记分为部分:定时器特性概述、基本定时器功能介绍、高级定时器功能介绍、特定场景应用示例。*附件:应
    发表于 05-16 10:52

    武汉芯源半导体基于CW32F030C8T7永磁同步电机无感FOC控制方案全新亮相!

    近日,武汉芯源半导体基于CW32F030C8T7永磁同步电机无感FOC控制方案全新亮相!
    的头像 发表于 02-27 11:34 827次阅读
    武汉芯源半导体基于<b class='flag-5'>CW32F030</b>C8T7永磁同步电机无感FOC控制方案全新亮相!

    基于CW32F030C8T7永磁同步电机无感FOC控制方案全新亮相!

    同步电机无感FOC控制方案应用框图 硬件采用CW32F030高性能主控,双电阻采样,支持电机顺逆风启动,支持过流过压保护等功能CW32F030C8T7作为主控芯片,内置1路12bit高精度ADC
    发表于 02-27 11:18