ARM Cortex-M3初探
ARM初探–alias
alias是为老函数,取一个新的名字!
attribute关键字来描述函数,变量和数据类型的属性,用于编译器对源代码的优化
#include <stdio.h>
int __Hard_Fualt()
{ printf("my func = %s\n",__FUNCTION__); return 0;
} int myFun() __attribute__((alias("__Hard_Fualt")));
int main()
{ myFun(); return 0;
}
下面是ARM Cortex-M3中应用alias的一段代码能够简化,程序的编写进程!
void NMI_Handler(void) __attribute((alias("HardFault_Handler"))); //alias指令别名
void MemManage_Handler(void) __attribute((alias("HardFault_Handler")));
void BusFault_Handler(void) __attribute((alias("HardFault_Handler")));
void UsageFault_Handler(void) __attribute((alias("HardFault_Handler")));
void SVC_Handler(void) __attribute((alias("HardFault_Handler")));
void DebugMon_Handler(void) __attribute((alias("HardFault_Handler")));
void PendSV_Handler(void) __attribute((alias("HardFault_Handler")));
经过使用alias修饰之后,只需定义一个NMI_Handler()
函数即可,其它的函数调用的时候就会调用NMI_Handler()
函数;
void HardFault_Handler(void)
{__disable_irq();__set_MSP(__Vectors);LEDS_SETUP();{register int count;for (count = 0; count < 5; count++){LedRunningOn();Delay_ms(250);LedRunningOff();LedConnectedOn();Delay_ms(250);LedConnectedOff();Delay_ms(1000);}}NVIC_SystemReset();
}
ARM Cortex-M3初探相关推荐
- ARM Cortex M3指令集
一.跳转指令 跳转指令用于实现程序流程的跳转,在ARM 程序中有两种方法可以实现程序流程的跳转: Ⅰ.使用专门的跳转指令. Ⅱ.直接向程序计数器PC 写入跳转地址值. 通过向程序计数器PC 写入跳转地 ...
- The Definitive Guide to ARM Cortex M3 and Cortex M4 Processors, 3rd Edition.pdf
在网上找不到可以直接下载的直链,要不是要登录就是要付费,挺麻烦的,百度都搜不到什么好东西,谷歌一下发现了可以直接下载的连接如下 https://www.academia.edu/35524606/ 直 ...
- ausam3x 嵌入式linux,ATSAM3X8EA-AU - 微控制器, 32位, SAM3X系列, ARM 皮质-M3, 84nb
ATSAM3X8EA-AU - 微控制器, 32位, SAM3X系列, ARM 皮质-M3, 84 MHz, 512 KB, 96 KB, 144 引脚, LQFP The ATSAM3X8EA-AU ...
- ARM® Cortex®-M内核单片机STM32家族介绍,覆盖STM32F、STM32H、STM32L全系列
STM32是ARM®Cortex®-M内核单片机.目前提供10大产品线(F0, F1, F2, F3, F4, F7, H7, L0, L1, L4),超过700个型号.STM32产品广泛应用于 ...
- ARM Cortex -M 体系结构————————ARM微控制器与嵌入式系统(清华大学慕课记录)
ARM的发展过程 对于ARM公司来讲,ARM公司只做CPU设计,采用出售IP的方式运营,半导体产商无需自己设计CPU,是生产关系的革命,提高了生产力.下面这张图ARM核的多个系列,我们可以看到ARM从 ...
- Cortex、ARMv8、arm架构、ARM指令集、soc?Cortex A8、A9都是ARMv7a 架构;Cortex M3、M4是ARMv7m架构;前者是处理器(内核)后者是指令集的架构(架构)
架构组成元素的指令集状态或者语法thumb指令集与arm指令集的区别例如thumb指令集是什么_thumb指令集与arm指令集的区别以及thumb-2的关系在下一文中介绍,本文暂时不讨论 有粉丝问我到 ...
- 基于Arm Cortex内核的32位MCU和MPU(M0、M0+、M3、M4、M33、M7、A7)
基于Arm Cortex内核的32位MCU和MPU ST意法半导体产品矩阵 M3典型--STM32 F1系列Cortex-M3基础型MCU M4典型--带有DSP和FPU指令的STM32F4系列高性能 ...
- ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR 有啥区别
ARM架构.ARM7.ARM9.STM32.Cortex M3 M4.51.AVR之间有什么区别和联系? ARM架构:由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~AR ...
- ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR 之间有什么区别和联系?
本文转自嵌入式资讯精选公众号,特别鸣谢, 编者按:初学习ARM单片机的同学们可能会对ARM的架构定义并不是很明确,形形色色的名词背后到底代表什么含义呢?请听听这位嵌入式工程师的经验总结. ARM架构: ...
- ARM 架构 ARM7 ARM9 STM32 Cortex M3 M4 51 AVR 有啥区别
ARM架构.ARM7.ARM9.STM32.Cortex M3 M4.51.AVR之间有什么区别和联系? ARM架构:由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~AR ...
最新文章
- Conda创建环境失败:CondaHTTPError: HTTP 000 CONNECTION FAILED
- 溃不成军:科通芯城一度再跌近30% 股价三天腰斩
- java面试(2)--大数据相关
- CSS 工程化 小结
- 分布式应用,response导出error on submit request on future invoke、java.lang.OutOfMemoryError: Java heap space
- opencv14-自定义线性滤波
- python检测特定颜色的形状_python opencv 检测特定颜色
- jmeter线程说明_jmeter 线程组
- java pattern 转义_浅谈关于Java正则和转义中\\和\\\\的理解
- 某电商商品搜索系统架构设计
- javascript 定义对象、方法和属性的使用方法(prototype)
- 国美金融贷款绝对定位与相对定位的关系(国美金融贷款位置)
- unity3d-学习笔记19-卡牌游戏制作(战斗胜利界面,点击菜单栏出现其他选项以及对应功能,实现能量卡消耗蓝条)
- 明尼苏达计算机科学硕士录取案例,专业42-明尼苏达大学双城分校研究生录取-W同学...
- 异步编程举例之闹钟程序
- 海思平台项目经验总结
- latex中公式的上下限和左右如何改变,即独立公式和行间公式的切换
- 戴尔服务器温度显示器,选择Dell UltraSharp 27的四大理由:有温度的科技更近人心...
- 《观察与思考》:相信中国,寻找下一个比尔·盖茨
- 快速查询的秘籍 —— B+ 树索引