cortex-m0p/m7 之 关闭中断与跳转

news/2025/3/4 7:44:13/

Cortex-M文档以及CMSIS_5下载地址:Overview (arm-software.github.io)

内核构架:内核架构 — 芯闻 (soc.xin)

core_cm0plus.h

core_cm7.h

cmsis_gcc.h

cortex-m0无中断向量寄存器 ICER,m0-plus/m7都有中断向量寄存器 ICER。

使用 __disable_irq();  关闭总中断后,需要 __enable_irq 打开总中断,才能使能外设中断NVIC_EnableIRQ。

关闭 总中断__disable_irq

#include "cmsis_gcc.h"

__ASM volatile ("cpsid i" : : : "memory");

打开 总中断__enable_irq

#include "cmsis_gcc.h"

__ASM volatile ("cpsie i" : : : "memory");

关闭 模块 中断NVIC_DisableIRQ

core_cm7.h/core_cm0plus.h

打开 模块 中断NVIC_EnableIRQ

core_cm7.h/core_cm0plus.h

设置SP指针__set_MSP(start)

#include "cmsis_gcc.h"

__asm volatile ("MSR msp, %0" : : "r" (start) : );

获取跳转地址void (*user_app)(void) = *(u32 *)(start+4);获取跳转程序的入口地址
跳转user_app();

跳转之前,需执行一下步骤:

1. 关闭 外设中断;

2. 设置SP指针,复位指针;

3. 获取跳转程序的入口地址;

4. 跳转。 

示例如下:


http://www.ppmy.cn/news/774494.html

相关文章

Cortex-M7 特性

【编程模型】 在CPU执行程序过程中,可以分为Thread模式和Handler模式;在Thread模式下执行应用代码,属于处理器正常工作过程;在Handler模式下执行异常代码,例如不可屏蔽异常服务程序,硬件错误异常服务程序等…

M7-ASEMI二极管M7

编辑-Z M7在SMA封装里采用的1个芯片,其尺寸都是46MIL,是一小电流、贴片二极管。M7的浪涌电流Ifsm为30A,漏电流(Ir)为5uA,其工作时耐温度范围为-55~150摄氏度。M7采用GPP芯片材质,里面有1颗芯片组成。M7的电性参数是&a…

NXP iMX8M Plus M7核心FreeRTOS开发

By Toradex胡珊逢 Toradex 的 Verdin iMX8M Plus 计算机模块采用 NXP 的 iMX8M Plus 处理器。该 CPU 除了有支持 AI 硬件加速单元的 NPU 外,还配置了一个 M7 微控制器。相比于 iMX 8 QuadMax 处理器上时钟频率为 266MHz 的M4 微控制器, 该M7 的时钟频率…

Cortex-M的M0,M+,M3,M4,M7几种内核的简单区别

Cortex-M内核M0,M0,M3,M4,M7之间的区别 图片来自于www.stmcu.com.cn high-performance 高性能 Mainstream 主流 Ultra-low-power 低功耗 知识补贴: 之所以ARM公司会把Cortex-M分为这么多系列,主要是针对不…

Error: Flash Download failed - “Cortex-M7“

问题产生原因:keil工程和实际烧写的芯片,没有成功通讯; 可能的解决方法: 1:查看硬件连接是否正确,设备上电是否成功; 2:查看keil参数配置的芯片及地址是否正确; 3&#…

[STM32H7]ARM Cortex-M7 缓存基础原理知识

多年来,大多数基于微处理器的小型系统通常都没有使用缓存,随着 ARMv7 架构的推出,缓存技术在 ARMv7- A家族中得到了支持(例如 Cortex-A8 等微处理器内核),但在诸如 Cortex-M3 和 Cortex-M4 等 ARMv7- M 等微控制器内核设计中都还不…

C++泛型编程(一)

泛型编程 泛型编程函数泛型编程类 好久没有写过博客了,最近需要封装一个泛编库,在做的时候发现遇到了一些困难,其实之前就分析处理过;只是未对疑难点进行总结,导致自己又重新处理一次疑难杂症。 泛型编程函数 // tem…

意外发现,Cortex-M7的性能和诸多关键参数碾压A7和R7

origin: https://www.amobbs.com/thread-5676525-1-1.html 之前一直以为ARM, A-R-M, M排在最后也最便宜,肯定性能最低,但最近意外发现并非如此,M7居然完全碾压R7和A7! 如下表所示,我从ARM网站,eembc.org网站查到的结果…