【深入理解STM32】第四篇:STM32工程文件详解

STM32工程文件构成

        从下图可以看出我们的工程目录是由CORE、OBJ、STM32F10x_FWLib、USER、SYSTEM以及HARDWARE文件夹组成的。此外还有一个文本文档README.TXT、以及一个Windows 批处理文件 (.bat)keilkilll.bat。

 

1、CORE文件夹 

   CORE文件夹下一共有三个文件,它们分别是core_cm3.c、core_cm3.h以及startup_stm32f10x_hd.s。

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

        core_cm3.h这个包含的是一些ARM CORTEX-M3内核相关的函数和宏定义,例如核内寄存器定义、部分核内外设的地址等等,其对应的是core_cm3.c文件。

        startup_stm32f10x_hd.s 是一个启动文件,里面是使用汇编语言写好的基本程序,当STM32 芯片上电启动的时候,受限会执行这里的汇编程序,从而建立起来C 语言的运行环境,所以我们把这个文件称为启动文件。

2、HARDWARE文件夹

 

 

 

        HARDWARE 文件夹下面存放的是每个实验的外设驱动代码,他的实现是通过调用 FWLib 下面的固件库文件实现的,比如 led.c 里面调用 stm32f10x_gpio.c 里面的函数对 led 进行 初始化,这里面的函数是重点。在后续的实验中可以看到会引入多个源文件。

3、OBJ文件夹

 

 

         OBJ :是用来存放编译过程文件以及hex 文件。

4、STM32F10x_FWLib文件夹

 

 

 

 

 

 

        STM32F10x_FWLib文件夹下面一共有两个子文件夹,它们分别是inc和src,是ST标准库的主要内容。

        inc是include的缩写,是标准库外设的头文件,里面的文件类型都是C/C++ Header File (.h)。

        src是source的缩写,是标准库外设的源文件,里面的文件类型都是C Source File (.c)。

        inc和src这两个文件夹是属于CMSIS之外的,属于芯片片上外设部分。在 src 和 inc 文件夹里的就是 ST 公司针对每个 STM32 外设而编写的库函数文件,每个外设对应 一个.c 和.h 后缀的文件。我们把这类外设文件统称为:stm32f10x_xxx.c 或 stm32f10x_xxx.h 文件xxx 表示外设名称。

 

 

        值得一提的是:这两个文件夹中,还有一个很特别的 misc.c 文件,这个文件提供了外设对内核中的 NVIC(中断向量控制器) 的访问函数,在配置中断时,我们必须把这个文件添加到工程中。

5、SYSTEM文件夹

 

 

 

 

 

 

 

 

        SYSTEM文件夹中一个包含着三个子文件夹,它们分别是delay、sys、usart。每个子文件夹下又分别包括一个C/C++ Header File (.h)和一个C Source File (.c)。

        delay文件夹下有一个delay.c和一个delay.h,这两个文件夹是配置Systick 延时函数的两个文件夹。

        sys文件夹下有一个sys.c和一个sys.h,这两个文件夹是配置IO 口位带操作的两个文件夹。

        usart文件夹下有一个usart.c和一个usart.h,这两个文件夹是配置串口相关函数的两个文件夹。

6、USER文件夹

 

 

        USER文件夹包含着许多不同类型的文件, USER 下面存放的主要是用户代码,

        system_stm32f10x.c文件里面主要是系统时钟初始化函数SystemInit 相关的定义,一般情况下文件用户不需要修改。

        stm32f10x_it.c 文件里面存放的是部分中断服务函数.

        main.c文件主要存放的是主函数。

        礦ision5 Project (.uvprojx)文件一般是用来打开工程的文件。其他的杂文件是编译器编译工程后生成的文件。

7、文本文档README.TXT

        README 分组主要就是添加了 README.TXT 说明文件,对实验操作进行相关说明。

8、Windows 批处理文件 (.bat)keilkilll.bat

       在Keil中编译工程时,会生成很多过程文件,工程文件夹就会变得很大,当复制此工程时,就会不方便。一般的过程文件后缀为:.o  .d  .crf  .htm  .dep  .lnp  .axf  .sct等。

      于是可以用记事本输入下面内容:

 

del *.bak /s
del *.ddk /s
del *.edk /s
del *.lst /s
del *.lnp /s
del *.mpf /s
del *.mpj /s
del *.obj /s
del *.omf /s
::del *.opt /s  ::不允许删除JLINK的设置
del *.plg /s
del *.rpt /s
del *.tmp /s
del *.__i /s
del *.crf /s
del *.o /s
del *.d /s
del *.axf /s
del *.tra /s
del *.dep /s           
del JLinkLog.txt /s
 
del *.iex /s
del *.htm /s
del *.sct /s
del *.map /s
exit

        保存为 keilkilll.bat,后缀名为.bat。放在工程根目录下。要复制工程时,双击执行它,就会自动把上述的过程文件删除,让工程文件夹最小。

 

 

        keilkilll.bat就是调用windows的del命令删除文件而已,“/s”代表子目录中的也要删除。

 

跑马灯实验目录结构 

                                                                 跑马灯实验目录结构

 

 

总结:

        USER:存放工程文件、主函数文件 main.c,以及其他包括system_stm32f10x.c等。

        CORE :用来存放核心文件和启动文件。

        OBJ :是用来存放编译过程文件以及hex 文件。

        STM32F10x_FWLib :用来存放 ST 官方提供的库函数源码文件。

        SYSTEM:此文件夹里面的代码由 ALIENTEK 提供,是STM32F10x 系列的底层核心驱动函数,可以用在 STM32F10x 系列的各个型号上面,方便大家快速构建自己的工程。

        HARDWARE:存放我们其他硬件的代码。

 

物联沃分享整理
物联沃-IOTWORD物联网 » 【深入理解STM32】第四篇:STM32工程文件详解

发表评论