打印
[应用相关]

stm32里core文件

[复制链接]
169|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pmp|  楼主 | 2024-5-23 10:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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文件夹包含着许多不同类型的文件,
        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 /sdel *.ddk /sdel *.edk /sdel *.lst /sdel *.lnp /sdel *.mpf /sdel *.mpj /sdel *.obj /sdel *.omf /s::del *.opt /s  ::不允许删除JLINK的设置del *.plg /sdel *.rpt /sdel *.tmp /sdel *.__i /sdel *.crf /sdel *.o /sdel *.d /sdel *.axf /sdel *.tra /sdel *.dep /s           del JLinkLog.txt /s del *.iex /sdel *.htm /sdel *.sct /sdel *.map /sexit
        保存为 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:存放我们其他硬件的代码。


使用特权

评论回复
沙发
呐咯密密| | 2024-5-23 15:00 | 只看该作者
工程结构还是需要熟悉一下的

使用特权

评论回复
板凳
jf101| | 2024-5-24 15:28 | 只看该作者
其实关键就是内核驱动文件非常重要的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

pmp

160

主题

7311

帖子

6

粉丝