CMSIS 到底是什么 CMSIS的意思是Cortex Micro-controller Software Interface Standard,微控制器软件接口标准, 是 Cortex-M 处理器系列的与供应商无关的硬件抽象层。CMSIS 可实现与处理器和外设之间的一致且简单的软件接口,从而简化软件的重用,缩短微控制器开发人员新手的学习过程,并缩短新设备的上市时间。
如何使用CMSIS,需要哪些文件?以Freescale Kinetis L系列举例。
独立于编译器的文件:
● Cortex-M3内核及其设备文件(core_cm3.h + core_cm3.c)
─ 访问Cortex-M0内核及其设备:NVIC等
─ 访问Cortex-M0的CPU寄存器和内核外设的函数 ● 微控制器专用头文件(device.h) - MKL25Z4.h
─ 指定中断号码(与启动文件一致)
─ 外设寄存器定义(寄存器的基地址和布局)
─ 控制微控制器其他特有的功能的函数(可选) ● 微控制器专用系统文件( system_device.c) – system_MKL25Z4.h + system_MKL25Z4 .c
─ 函数SystemInit,用来初始化微控制器
–函数 void SystemCoreClockUpdate (void); 用于获取内核时钟频率
─SystemCoreClock,该值代表系统时钟频率
─ 微控制器的其他功能(可选) ● 编译器启动代码(汇编或者C)( startup_device.s) - startup_MKL25Z4.s for Keil
─ 微控制器专用的中断处理程序列表(与头文件一致)
你可以对比的看.scf 和.map文件,.map文件就是依据.scf文件来进行加载域和执行域的确定的。 我们可以看到VECTOR_ROM和ER_m_text的两个加载域和执行域是一致的。
这个图是我网上找的,具体地址界限并不和上面的程序一致。
|