| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> STM32F429入门(八):初识固件库 -> 正文阅读 |
|
[嵌入式]STM32F429入门(八):初识固件库 |
一、什么是固件库?
按照我的理解就是,它就是一个封装好的函数库,跟前几次自己写库差不多。 二、CMSIS标准及库层次关系 因为基于 Cortex 系列芯片采用的内核都是相同的,区别主要为核外的片上外设的差异, 这些差异却导致软件在同内核,不同外设的芯片上移植困难。为了解决不同的芯片厂商生产的 Cortex 微控制器软件 的兼容性问题,ARM 与芯片厂商建立了 CMSIS 标准(Cortex MicroController Software Interface Standard)。 所谓 CMSIS 标准,实际是新建了一个软件抽象层。 CMSIS 标准中最主要的为 CMSIS 核心层,它包括了:
可见 CMSIS 层位于硬件层与操作系统或用户层之间,提供了与芯片生产商无关的硬件抽象层,可以为接口外设、实时操作系统提供简单的处理器软件接口,屏蔽了硬件差异, 这对软件的移植是有极大的好处的。 三、固件库文件分析 打开固件库文件,我们可以看到这几个文件: ?打开Libraries--CMSIS--Device--ST,里面这个文件就是代表你所要开发的芯片的厂商,点开后点进Source--Templates,会看到很多开发环境,我们点开arm,里面就是我们启动时所需要的启动文件。 ? 在CMSIS中,以上圈出的两个文件是较为重要的。
? 较重要的是在 core_cm4.c 文件中包含了“stdint.h” 这个头文件,这是一个 ANSI C 文 件,是独立于处理器之外的,就像我们熟知的 C 语言头文件 “stdio.h” 文件一样。位于 RVMDK 这个软件的安装目录下,主要作用是提供一些类型定义。
这些新类型定义屏蔽了在不同芯片平台时,出现的诸如 int 的大小是 16 位,还是 32 位 的差异。 2.Device文件夹 在 Device 文件夹下的是具体芯片直接相关的文件,包含启动文件、芯片外设寄存器定义、系统时钟初始化功能的一些文件,这是由 ST 公司提供的。
这个文件包含了 STM32 芯片上电后初始化系统时钟、扩展外部存储器用的函数,例如 我们前几天提到供启动文件调用的“SystemInit”函数,用于上电后初始化时钟,该函数的 定义就存储在 system_stm32f4xx.c 文件。STM32F429 系列的芯片,调用库的这个 SystemInit 函数后,系统时钟被初始化为 180MHz,如有需要可以修改这个文件的内容,设 置成自己所需的时钟频率。 作用:初始化系统环境,配置系统时钟。
3.STM32F10x_StdPeriph_Driver 文件夹
? 4.stm32f4xx_it.c、 stm32f4xx_conf.h 文件 打开\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Templates,里面有stm32f4xx_it.c、stm32f4xx_it.h、stm32f4xx_conf.h这三个文件。
?在 ST 标准库的函数中,一般会包含输入参数检查,即上述代码中的“assert_param” 宏,当参数不符合要求时,会调用“assert_failed”函数,这个函数默认是空的。 实际开发中使用断言时,先通过定义 USE_FULL_ASSERT 宏来使能断言,然后定义 “assert_failed”函数,通常我们会让它调用 printf 函数输出错误说明。使能断言后,程序运行时会检查函数的输入参数,当软件经过测试,可发布时,会取消 USE_FULL_ASSERT 宏来去掉断言功能,使程序全速运行。
5.最后,我们按照开机的流程来理一理以上的文件: 那明天就学学如何新建固件库工程吧!? |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 0:37:25- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |