STM32库层次关系笔记

STM32库层次关系笔记_第1张图片

STM32采用CM3核,内核是整个微控制器的CPU,该内核是ARM公司设计的的一个处理器体系架构。芯片厂商负责设计在内核之外的部件,被称为核心外设或者片上外设。

因为CM3的系列芯片采用的内核是相同的,主要区别为核外的片上外设差异,这些差异却导致移植困难,解决不同芯片厂商生产的CM3微控制器的兼容新问题,ARM与芯片厂商建立了CMSIS标准,实际上是建立了一个软件抽象层。

CMSIS层位于硬件层与操作系统或用户层之间,提供了与芯片生产商五官的硬件抽象层,可以为接口外设、实时操作系统提供简单的处理器软件接口,屏蔽硬件差异,便于软件移植。

CMSIS核心层包括:

内核函数层:包含用于访问内核寄存器的名称,地址定义,主要由ARM公司提供。

设备外设访问层:提供片上的核外外设的地址和中能够DAU你定义,主要有芯片生产商定义。

STM32固件库就是按照CMSIS标准建立。

几个比较重要的库文件:

1. core_cm3.hcore_cm3.c:由ARM公司提供,为采用CM3内核设计SoC的芯片商设计的芯片外设提供一个进入CM3内核的接口。core_cm3.c中有一些预编译器相关的条件编译语句,用于屏蔽不同编译器的差异。

2. System_stm32f10x.cST公司提供,设置系统时钟和总线时钟。

3. stm32f10x.h:包含了stm32中寄存器地址和结构体类型定义,在使用stm32 固件库的地方都要包括这个头文件。

4. 启动文件startup_stm32xxxxx.s:

  作用:

①  初始化堆栈指针SP

② 初始化程序计数器指针PC

③ 设置堆栈的大小

④ 设置异常向量表的入口地址;

⑤ 配置外部SRAM作为数据存储器(用户配置,一般开发版没有外部SRAM);

⑥ 设置C库的分支入口_main(最终用来调用main函数)。

5. misc.c:提供外设对内核NVIC(中断向量控制器)的访问函数,在配置中断时,必须添加到工程中。

6. Stm32f10x_conf.h:用来配置使用了什么外设的头文件,通过对这个头渐渐的增加或者删除外设驱动函数库。

7. Stm32f10x_it.c:编写中断服务函数,该文件已经定义了一些系统异常的接口,其他普通中断函数有我们添加, 中断函数的接扣通过查找启动文件得到。

你可能感兴趣的:(STM32库层次关系笔记)