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初探相关推荐

  1. ARM Cortex M3指令集

    一.跳转指令 跳转指令用于实现程序流程的跳转,在ARM 程序中有两种方法可以实现程序流程的跳转: Ⅰ.使用专门的跳转指令. Ⅱ.直接向程序计数器PC 写入跳转地址值. 通过向程序计数器PC 写入跳转地 ...

  2. The Definitive Guide to ARM Cortex M3 and Cortex M4 Processors, 3rd Edition.pdf

    在网上找不到可以直接下载的直链,要不是要登录就是要付费,挺麻烦的,百度都搜不到什么好东西,谷歌一下发现了可以直接下载的连接如下 https://www.academia.edu/35524606/ 直 ...

  3. 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 ...

  4. ARM® Cortex®-M内核单片机STM32家族介绍,覆盖STM32F、STM32H、STM32L全系列

     STM32是ARM®Cortex®-M内核单片机.目前提供10大产品线(F0, F1, F2, F3, F4, F7, H7, L0, L1, L4),超过700个型号.STM32产品广泛应用于 ...

  5. ARM Cortex -M 体系结构————————ARM微控制器与嵌入式系统(清华大学慕课记录)

    ARM的发展过程 对于ARM公司来讲,ARM公司只做CPU设计,采用出售IP的方式运营,半导体产商无需自己设计CPU,是生产关系的革命,提高了生产力.下面这张图ARM核的多个系列,我们可以看到ARM从 ...

  6. Cortex、ARMv8、arm架构、ARM指令集、soc?Cortex A8、A9都是ARMv7a 架构;Cortex M3、M4是ARMv7m架构;前者是处理器(内核)后者是指令集的架构(架构)

    架构组成元素的指令集状态或者语法thumb指令集与arm指令集的区别例如thumb指令集是什么_thumb指令集与arm指令集的区别以及thumb-2的关系在下一文中介绍,本文暂时不讨论 有粉丝问我到 ...

  7. 基于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系列高性能 ...

  8. ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR 有啥区别

    ARM架构.ARM7.ARM9.STM32.Cortex M3 M4.51.AVR之间有什么区别和联系? ARM架构:由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~AR ...

  9. ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR 之间有什么区别和联系?

    本文转自嵌入式资讯精选公众号,特别鸣谢, 编者按:初学习ARM单片机的同学们可能会对ARM的架构定义并不是很明确,形形色色的名词背后到底代表什么含义呢?请听听这位嵌入式工程师的经验总结. ARM架构: ...

  10. ARM 架构 ARM7 ARM9 STM32 Cortex M3 M4 51 AVR 有啥区别

    ARM架构.ARM7.ARM9.STM32.Cortex M3 M4.51.AVR之间有什么区别和联系? ARM架构:由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~AR ...

最新文章

  1. Conda创建环境失败:CondaHTTPError: HTTP 000 CONNECTION FAILED
  2. 溃不成军:科通芯城一度再跌近30% 股价三天腰斩
  3. java面试(2)--大数据相关
  4. CSS 工程化 小结
  5. 分布式应用,response导出error on submit request on future invoke、java.lang.OutOfMemoryError: Java heap space
  6. opencv14-自定义线性滤波
  7. python检测特定颜色的形状_python opencv 检测特定颜色
  8. jmeter线程说明_jmeter 线程组
  9. java pattern 转义_浅谈关于Java正则和转义中\\和\\\\的理解
  10. 某电商商品搜索系统架构设计
  11. javascript 定义对象、方法和属性的使用方法(prototype)
  12. 国美金融贷款绝对定位与相对定位的关系(国美金融贷款位置)
  13. unity3d-学习笔记19-卡牌游戏制作(战斗胜利界面,点击菜单栏出现其他选项以及对应功能,实现能量卡消耗蓝条)
  14. 明尼苏达计算机科学硕士录取案例,专业42-明尼苏达大学双城分校研究生录取-W同学...
  15. 异步编程举例之闹钟程序
  16. 海思平台项目经验总结
  17. latex中公式的上下限和左右如何改变,即独立公式和行间公式的切换
  18. 戴尔服务器温度显示器,选择Dell UltraSharp 27的四大理由:有温度的科技更近人心...
  19. 《观察与思考》:相信中国,寻找下一个比尔·盖茨
  20. 快速查询的秘籍 —— B+ 树索引

热门文章

  1. Firebug 1.7正式版发布,支持Firefox 4
  2. hdu-1166敌兵布阵(树状数组)
  3. java之hiberante之集合映射之list映射
  4. 第二次学习笔记(linux/unix操作系统)
  5. js ie 6,7,8 使用不了 firstElementChild
  6. 《微信企业号开发日志》之企业号接入
  7. Delphi编程注意事项
  8. 掌握 Ajax,第 8 部分: 在请求和响应中使用 XML
  9. who whoami who am i的区别
  10. CUDA Study ---- Hardware Architecture