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

    文章

    8249

    浏览量

    162328
  • 单片机
    +关注

    关注

    6074

    文章

    45340

    浏览量

    663419
  • mcu
    mcu
    +关注

    关注

    147

    文章

    18604

    浏览量

    386832
  • IAP
    IAP
    +关注

    关注

    2

    文章

    165

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CW32F030芯片没使用的IO是什么状态?

    CW32F030芯片,没使用的IO是什么状态? 为什么会这么问呢?主要是之前遇到过一个比较有意思的事儿,用的PB3,但实际初始化时钟是PA,IO和配置是PB3,读取这个IO状态就是一直下拉状态。 就很好奇,CW32F030芯片,没使用的IO是什么状态呢?
    发表于 12-04 08:20

    请问CW32F030能否用于5V供电?

    CW32F030能否用于5V长期供电?
    发表于 12-04 06:53

    基于武汉芯源CW32F030C8T6直流无刷电机评估开发板的设计方案

    武汉芯源半导体2021年推出的CW32F030系列微控制器吗优势,该控制器全面实现-40℃-105℃超宽温度范围和1.65V-5.5V超宽工作电压,面向最广泛的各种
    发表于 12-04 06:16

    请问CW32F030有没有软件复位功能

    请问下CW32F030有没有软件复位功能,就是代码里面有没有软件复位功能。好像没看到
    发表于 12-03 08:09

    CW32F030C8T7永磁同步电机无感FOC控制的方案

    限度的发挥无浮点主控MCU性能,FOC运行周期可低至48us。硬件采用CW32F030高性能主控,双电阻采样,支持电机顺逆风启动,支持过流过压保护等功能CW32F030C8T7作为主控芯片,内置1路
    发表于 12-03 06:34

    基于芯源CW32F030 MCU低功耗温湿度监测系统设计

    芯源微电子推出的CW32F030 MCU因其低功耗和多功能外设广泛应用于物联网和环境监测系统。本篇文章展示如何使用CW32F030构建一个简单的温湿度监测系统,并实现低功耗模式,适用于
    发表于 12-03 06:20

    CW32F030 MCU设置外部中断和RTC唤醒条件的示例

    示例1:外部中断唤醒 假设我们有一个按键连接到CW32F030的某个外部中断引脚上,当按键被按下时,MCU将从Sleep模式唤醒。 c #include \"cw32a030
    发表于 11-25 08:00

    CW32F030 芯片 SPI DMA BULK发送问题,是什么原因导致的?

    CW32F030芯片用SPI DMA发送,Block模式没有问题,可以调试出来,但是因为每个字节最后一位会插入一个大约60ns的时间,这个时间会导致数据出错。看到规格书有说BULK模式,但是我将
    发表于 11-24 07:42

    CW32F030做温湿度采集,ADC读数跳变超过±3LSB正常吗?

    CW32F030做温湿度采集,ADC读数跳变超过±3LSB正常吗?已排除传感器问题,参考电压用LDO单独供电还是波动明显,是否需要外接精密基准源?
    发表于 11-20 07:47

    基于芯源CW32F030 MCU的I2C通信及应用

    芯源微的CW32F030是一款基于Arm Cortex-M0内核的32位低功耗MCU,具备高性能和丰富的外设功能,广泛应用于物联网、智能家居、工业控制等领域。CW32F030支持包括I2C、SPI
    发表于 11-18 08:29

    CW32F030使用中的注意事项有哪些?

    CW32F030使用中的注意事项有哪些?
    发表于 11-18 06:20

    CW32 MCU的工作电压、工作温度是多少?

    CW32通用型MCU工作电压是1.65V~5.5V,射频MCU工作电压则是1.8V/2.2V~3.6V;通用型CW32F系列MCU,比如:CW32F030CW32F020、
    发表于 11-12 06:49

    CW32 MCU最低功耗能做到多少?

    CW32L系列,比如:CW32L083、CW32L031深度休眠模式下,电流可低至600nA以下,CW32L010则可低至0.3uA;其它
    发表于 11-12 06:24

    CW32模块使用】SG90舵机

    我们的目标是将例程移植至CW32F030C8T6开发板【能够控制舵机旋转的功能】。首先要获取资料,查看数据手册应如何实现读取数据,再移植至我们的工程。
    的头像 发表于 03-29 17:22 1151次阅读
    【<b class='flag-5'>CW</b>32模块使用】SG90舵机

    AT32F423 PWC应用笔记

    电子发烧友网站提供《AT32F423 PWC应用笔记.pdf》资料免费下载
    发表于 01-15 15:30 0次下载
    AT32<b class='flag-5'>F</b>423 PWC应<b class='flag-5'>用笔记</b>