前段时间,做了个项目,使用了华大HC32L110,一开始没什么,一切顺利。但是做OTA在线升级时,发现了一些问题。不同于M3内核的MCU,M0内核没有中断向量的寄存器(华大是M0+内核,有些网友说M0+是有这个寄存器的,这个我暂时没验证,稍后找资料看看),所以无法重定向中断向量。这就有点麻烦了,岂不是做不了固件升级了?

赶紧在网上搜索解决方案,结果发现了ST的STM32F0系列的解决方法,简单来说就是利用地址重映射的功能,让应用程序段的固件能找到正确的中断向量。所以赶紧试一下,what !华大M0+MCU没有地址重映射功能。。这可怎么办?

想了几天想破了头都不知道该怎么办。。。终于有一天,我顿悟了。我一直在思考怎么让MCU自动重定向中断向量。但是,既然不能自动重定向,难道就不能手动重定向吗?既然MCU只能固定的找到BOOT程序里的中断函数,那我在boot的中断函数里手动去找APP的中断函数不行么?理论上是可以的!赶紧试试。

void IRQ000_Handler(void)
{FunVoidType JumpToApplication;JumpToApplication = (FunVoidType) (0x2000 + 16*4);JumpToApplication();
}

测试一下,果然可以。。。

看来,有时候我们还是习惯了把简单的事情想复杂了。只要换个思路,还是挺简单的。

完整代码我已上传,下载地址:

https://download.csdn.net/download/pilihuo182175954/85413760

注意请将代码里面的APP偏移地址设置为你实际的偏移地址。我当时只是测试,所以没有把这个地址定义为宏,所以每个中断函数里都写了一遍,就是0x2000这个,记得一定要改为你的实际地址哦。

M0内核单片机中断向量重映射相关推荐

  1. linux内存重映射的概念及对内核虚拟地址的重映射方法分析

    [摘要]本文分析了Linux设备的内存映射的相关概念和理论,使用例子对mmap及nopage的驱动编写方法进行了解释,最后对3种不同的内核虚拟空间分配方法下,mmap驱动编写方法进行了细致的分析和调试 ...

  2. stm32单片机端口映射_STM32单片机的重映射与地址映射的使用方法及步骤

    重映射 STM32 中对于一些端口的外设已经被其他引脚所使用,这是就需要用端口重映射来解决 了,很方便. 以 USART1 为例 重映射的步骤为: 打开重映射时钟和 USART 重映射后的 I/O 口 ...

  3. 32 位 ARM® Cortex®-M0+内核 单片机

    PY32F003 系列微控制器采用高性能的 32 位 ARM® Cortex®-M0+内核,宽电压工作范围的 MCU.嵌入高达 32Kbytes flash 和 4Kbytes SRAM 存储器,最高 ...

  4. 32位ARM®Cortex®-M0+内核单片机 XL32F003系列MCU

    XL32F003系列微控制器采用高性能的32位ARM®Cortex®-M0+内核,宽电压工作范围的MCU.嵌入高达64 Kbytes flash和8 Kbytes SRAM存储器,最高工作频率32 M ...

  5. STM32F0芯片IAP实现之中断向量表重映射(没有中断向量表偏移寄存器SCB->VTOR的应对方法)

    问题背景 项目使用STM32F030,需要通过IAP进行固件升级,在FLASH里面要烧录两份代码:一个Boot loader,一个用户应用程序APP.在开发应用程序APP时,外设中断不能正确响应进到对 ...

  6. STM32从Flash地址0x08000000的启动重映射

    在初写STM32程序时,遇到一个困惑,STM32的Flash在MDK里被设置为起始地址0x0800 0000,而CM3手册规定芯片复位时要从0x0000 0000地址开始取出中断向量 ,那STM32怎 ...

  7. STM32F103单片机JTAG端口重映射

    STM32单片机复位后,JTAG口默认是被占用的.如果想将JTAG占用的几个IO口设置为普通IO口,就需要进行端口重映射. 复位后端口默认功能可以在STM32参考手册上看到 要将JTAG占用的这些口设 ...

  8. Linux内核内存管理(2):固定映射地址(fixmap)和输入输出重映射(ioremap)

    Linux内核内存管理 固定映射地址(fixmap)和输入输出重映射(ioremap) rtoax 2021年3月 在英文原文基础上,针对中文译文增加5.10.13内核源码相关内容. Print ke ...

  9. C语言printf重入,单片机中printf函数的重映射

    单片机中printf函数的重映射 一.源自于:大侠有话说 1.如果你在学习单片机之前学过C语言,那么一定知道printf这个函数.它最最好用的功能 除了打印你想要的字符到屏幕上外,还能把数字进行格式化 ...

  10. 国产高性能32位M0内核MCU单片机DP32G003

    DP32G003TS20内嵌ARM Cortex M0 内核,最高工作频率可达48MHz,内置高速存储器,丰富的增强型IO端口和外设连接到总线.本产品包括16路IO.1个(9 通道)12位的ADC.2 ...

最新文章

  1. IO 多路复用之poll总结
  2. 进程和线程相关小知识
  3. 代码质量检测平台架构设计
  4. 荣耀双十一开门红:斩获多品类销量及销售额冠军
  5. jenkins + Git 搭建持续集成环境
  6. logstash multiline
  7. ubuntu下安装win7虚拟机总结
  8. iOS手机模拟器配置
  9. Android柠檬水面试题,柠檬水的饮料摊(面试案例)
  10. oracle系统常见错误(摘自文平书)
  11. 人机融合智能时代的人心
  12. 学计算机应用技术买什么笔记本电脑,大学什么专业用电脑 要不要买电脑
  13. 如何启用计算机安全模式,怎么进入电脑安全模式
  14. smplayer 字幕!解决smplayer字幕乱码的方法
  15. 阿童木机器人完成数千万元B1轮融资,雅瑞资本领投
  16. SF中对象发出消息后在chatter上显示名字的问题
  17. 凭借近2亿的年销量,小米三年超越苹果的可能性有多大?
  18. 问题 A: 买牛奶  某同学负责给班里的同学买牛奶 ,每人两瓶。输入一个整数,表示班级人数。输出牛奶瓶数
  19. 倍福--IO模块灯亮没输出
  20. 【2023秋招面经】4399 前端 一面-部门初面(26min)

热门文章

  1. Scratch的安装与界面介绍
  2. mysql 查询重复数据并删除
  3. 前端Tippy.js组件 配置 Button点击事件
  4. spss多元线性回归散点图_SPSS19.0实战之多元线性回归分析
  5. java如何知道城市是省会_全国各省的省会都是怎么确定的?
  6. 计算机家庭网络共享,Windows7创建家庭组实现多台电脑之间共享资源
  7. 家庭计算机上网必须用到的设备,家庭网络中常见的几种网络设备介绍
  8. veeam 备份文件服务器,如何用veeam给windows服务器做备份?
  9. 吃欢天面皮的26种吃法,中国人的福音!
  10. 搜狗浏览器怎么清除浏览记录 搜狗浏览器清除浏览记录教程