关于core_cm3.c和core_cm3.h,Core_cmFunc.h 和 Core_cmInstr.h的理解

以下来自:https://blog.csdn.net/guosir_/article/details/78627980

CMSIS是Cortex微控制器软件接口标准(CortexMicroController Software Interface Standard)的缩写,这个是ARM定制的一个用于Cortex-M系列的一个标准,主要是为了提供通用api接口来访问内核和一些片上外设,提高代码的可移植性。

CMSIS有三个层:核内外设访问层CorePeripheral Access Layer(CPAL),中间件访问层Middleware Access Layer(MWAL),设备访问层(DevicePeripheral Access Layer)。

CPAL用于访问内核的寄存器和组件,如NVIC,调试系统等。该层是由ARM实现的。

MWAL用于对中间件的访问,现在该层还未实现。(也不知道所谓的中间件是什么东西)。

DPAL用于定义一些硬件寄存器的地址和一些外设访问函数,由芯片制造商实现。

 

CPAL层的实现就是Core_cm3.c文件,DPAL层的实现就是system_stm32f10x.c文件(似乎还应该加上外设的函数库)。

 

接下来就来了解一下Core_cm3.c里面有什么东东:

首先是汇编关键字__ASM和__INLINE的宏定义,支持不同的编译器。由于使用的是Keil,所以就只看第一种,__CC_ARM。

这里面的函数调用都只符合ARM过程调用标准的,如R0到R3用作参数和返回值传递,这也是这里面唯一用到的。

此外,在Keil中使用了

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值