折腾了些时间,总算解决了

芯片型号是HC32F460,用串口实现IAP升级,从21IC论坛中找到了同样的IAP升级源码,下载后,在自己的开发板上测试也没问题,阅读源码发现,作者的源码中串口通信部分没有用中断。

不过像这样的IAP程序也没有太多事情可做,主要就串口通信和FLASH更新,不用DMA传输也没多大影响。

但我想将它改为串口通信用中断实现,结果是怎么都不行,头大了...,想啊想,怎么会不行呢,然后仔细阅读《HC32F460系列用户手册》发现以下描述:

我恍然大悟了,哦,原来如此。

那么我的串口通信要用中断实现,就需要将串口通信部分代码放到RAM中,怎么实现呢?刚好前期对分散加载有了解,大家可以参考我的专栏《armLink》中关于分散加载的内容。这里就不赘述了。

因此我的代码用了2个技术,DMA传输和分散加载。

串口通信改为用DMA实现,这样我认为效率会更高。

看代码,IAP程序主要分2个部分,一个是和上位机通过串口通信,另一个是分散加载文件的编写。

一、串口通信部分代码

华大MCU的IAP升级相关推荐

  1. 剖析MCU的IAP升级软件设计思路

    关注.星标公众号,不错过精彩内容 转自公号:最后一个bug 二次整理:strongerHuang 做软件开发的人,都知道程序升级.升级的方式有很多,今天就来讲讲升级的软件的设计思路. 一.ISP/IC ...

  2. 华大 MCU 之四 使用问题记录

      在最近使用华大 MCU 时,遇到了不少坑,这里记录一下,以方便在以后升级驱动库!其中,有些问题仅仅是在由 ST 切换到 华大之后不太适于的问题,有些是驱动库的更改问题!   如果您发现我说的问题是 ...

  3. 华大 MCU 之一 HC32F460 替换 STM32F411 移植记录

    更新 2020年 10 月 21 日,将驱动库更新到了最新版 1.1.1 2020年 10 月 20 日,MCU 由原来的 HC32F460KCTA 更换为 HC32F460KETA 简介   目前, ...

  4. 华大 MCU 之三 时钟控制器(CMU)配置记录

      今天在新项目(MCU 为华大 HC32F460)中不再使用外部晶振,转而要使用 HC32F460 内部的 HRC,之前在使用外部晶振时,对华大 MCU 的时钟配置有过一些了解,但是,由于使用内部晶 ...

  5. iap升级问题 stm32f103r8_STM32的基于串口的IAP固件升级与加密

    大家好,我是川楠,最近,在问答频道上看到有人对IAP升级心存疑惑.恰好,我本人在这方面的做过功课,也实战使用到很多的项目上,所以我就来为大家做个抛砖引玉吧. 本次例程,我用的是STM32F103VET ...

  6. 差分升级 增量升级 单片机 STM32 IAP升级OTA升级,物联网车联网可用

    差分升级 增量升级 单片机 STM32 IAP升级OTA升级,物联网车联网可用 介绍博客 https://blog.csdn.net/zhou74281/article/details/1177776 ...

  7. LPC11U3x系列IAP升级 BootLoader分析

    首先要明确LPC11Uxx系列的程序执行开始地址是0x00000000, 从0x0开始的512字节大小的存储空间存放的是中断向量表,之后便是程序,数据一般存放在8KB大小的SRAM中.(具体可参考LP ...

  8. 基于STM32的IAP升级程序

    基于STM32的IAP升级程序 IAP介绍 功能设计 硬件设计 软件设计 软件设计流程如下 完整程序 具体实现 设计功能程序 IAP实现程序 主程序 后续 IAP介绍 IAP(In Applicati ...

  9. 华大 MCU 之七 DMA 导致 SPI 异常停止的原因分析、DMA 配置的那些坑

    缘起   在最近的项目测试中发现,SPI 通信总是莫名其妙的失败,查看寄存器发现 SPI 已经被停止了.根据手册,SPI 在异常情况下会被强制停止(SPI 的使能为被清零),而根据波形显示通信过程没有 ...

  10. 华大 MCU 之六 SEGGER Embedded Studio 及 Ozone 使用 Jlink 调试

      首先说一下,我之前的开发流程是:VSCode 编辑代码 + Keil 编译及调试.Keil 的调试功能虽然很强大,但是多数功能需要配合 ARM 自家的 ULINKpro 才可以用,例如 Perfo ...

最新文章

  1. Linux文件大小排序
  2. 从表现现象查找电脑问题的根源
  3. jQuery学习笔记(四)
  4. 基于Python从头开始使用 RMSProp 进行梯度下降
  5. c语言图像的简单叠加,第10章C语言图形编程.ppt
  6. 碳排放计算-20210515
  7. 那些年震撼我们心灵的音乐
  8. 在线FLV播放器实现方法
  9. 华为关闭telnet命令_华为s5720配置telnet命令详解
  10. L1-030. 一帮一-PAT团体程序设计天梯赛GPLT
  11. 抑郁症患者突然心情变好,不一定是好事!
  12. 互联网,因特网和万维网的区别是什么?
  13. 简单理解数字签名和验签
  14. 成都,今夜请将我遗忘 读后感
  15. Topic7——279. 完全平方数
  16. 1028 人口普查 (20分)
  17. Inno Setup入门(十五)——Inno Setup类参考(1)
  18. python 喜马拉雅 音乐下载 演示代码
  19. 【Simulink】锁相环模块
  20. (ESP32学习1)IO的输出高低电平与上下拉输入

热门文章

  1. python做积分_python曲线积分
  2. 计算机软件考试初级什么好考,初级程序员好考吗
  3. uniapp-微信小程序直播插件小记
  4. Oracle ORA-01033: 错误解决办法
  5. solidworks经典实例网盘下载_三菱 PLC FX3U 程序无线下载经典实例
  6. ff写法 图片_花体f怎么写
  7. 零基础自学软件测试-项目经验-电商项目实战-测试用例设计-促销中心
  8. 微信小程序中集成有赞UI自定义Tabbar组件
  9. Android Sophix热修复集成
  10. 解决win 7拷贝共享文件很慢