STM32固件库
一、STM32固件库开发和传统寄存器开发方式的区别

二、CMSIS标准
CMSIS标准--Cortex Microcontroller Software Interface Standard,是ARM公司为了解决不同SOC厂商生产不同的Cortex某系类芯片的软件兼容性问题,与芯片厂商建立的软件内核标准。
1、Cortex-M3芯片架构(硬件结构)

2、CMSIS标准(软件结构)

三、STM32固件库
1、文件结构

2、关键文件夹和相关文件说明
① 顶层目录
- _htmresc 内含CMSIS图标和ST图标
- Libraries 文件夹下是驱动库的源代码及启动文件
- Project 用驱动库写的例子和一个工程模板
- Utilities 基于ST官方开发板的例程
- stm32f10x_stdperiph_lib_um.chm 库使用帮助文档
② CMSIS目录
主要是ARM公司为Cortex-M3提供的内核操作接口。
1. CoreSupport
ARM公司为Cortex-M3提供的内核操作接口
core-cm3.c、core-cm3.h的作用是为采用Cortex-M3核设计SOC的芯片厂商设计的芯片提供一个进入CM3内核的接口。
2. DeviceSupport
ST公司为STM32F10X系类提供的与内核相关的文件,包含启动文件、外设寄存器定义和中断向量定义层的文件。
- startup目录下的startup_stm32f10x_**.s Cortex-M3芯片的启动汇编文件
- stm32f10x.h 此文件把stm32f10x的所有外设的特殊功能寄存器地址全都定义了
- system_stm32f10x.c 此文件配置stm32的系统时钟和总线时钟
- system_stm32f10x.h system_stm32f10x.c对应的头文件
③ STM32F10x_StdPeriph_Driver
这个文件夹下的内容是ST公司为STM32F10X芯片的所有外设--SOC厂商在Cortex-M3核外加进去的设备--开发的库。
- src 包含每个外设的库函数文件
- inc 包含每个外设的库函数文件对应的头文件
其中需要额外说明的是一个特别的文件misc.c,它提供了外设对内核中的NVIC--中断向量控制器--的访问函数,在配置中断时,需要将这个文件添加到工程中。
④ STM32F10x_StdPeriph_Template
- main.c 用户主函数文件
- stm32f10x_conf.h 用来配置使用了什么外设的头文件,当定义宏USE_STDPERIPH_DRIVE时被stm32f10x.h所包含
- stm32f10x_it.c ST公司专门为编写中断服务程序预留了函数,这些函数接口在汇编文件中已经被定义了。
- stm32f10x_it.h stm32f10x_it.c对应的头文件
四、总结STM32固件库
1、遵循CMSIS标准的STM32软件结构

2、用户使用库时的必备文件
C文件
- startup_stm32f10x_**.s
- system_stm32f10x.c
- core-cm3.c
- stm32f10x_it.c
头文件
- system_stm32f10x.h
- stm32f10x.h
- core-cm3.h
- stm32f10x_it.h
- stm32f10x_conf.h
参考:STM32库开发实战指南
STM32固件库的更多相关文章
- STM32固件库文件分析
STM32固件库文件分析 1.汇编编写的启动文件 startup/stm32f10x.hd.s:设置堆栈指针,设置pc指针,初始化中断向量,配置系统时钟,对用c库函数_main最后去c语言世界里. 2 ...
- STM32固件库详解
STM32固件库详解 emouse原创文章,转载请注明出处http://www.cnblogs.com/emouse/ 应部分网友要求,最新加入固件库以及开发环境使用入门视频教程,同时提供例程模板 ...
- 第9章 初识STM32固件库
第9章 初识STM32固件库 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fire ...
- 第9章 初识STM32固件库—零死角玩转STM32-F429系列
第9章 初识STM32固件库 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fire ...
- (一)STM32固件库详解(转载)
本篇博文是转载自emouse,因为不能直接转载,所以是复制过来再发布的. emouse原创文章,转载请注明出处http://www.cnblogs.com/emouse/ 1.1 基于标准外设库的 ...
- 在IAR(EWARM)中移植STM32固件库
一.移植环境说明 (1).win10系统 (2).IAR(EWARM)7.7 (3).STM32标准固件库3.5.0 http://www.st.com/content/st_com/en/produ ...
- STM32固件库模板下载以及固件库学习方法
固件库模板下载 固件库模板新建过程: 下载我们上节的固件库文件 电脑新建一个文件夹命名为Fwlib-Template,在此文件夹下分别新建DOC Libraries Project User 这四个文 ...
- STM32固件库和自定义工程模板
固件库结构 本文使用的固件库是STM32F10x_StdPeriph_Lib_V3.5.0,可以在官网获取.该固件库包含四个文件夹和一个库的说明文档,如下图所示,stm32f10x_stdperiph ...
- STM32固件库3.5+uCOS2.86移植(转自暴走的工程师)
考了很多移植的资料和代码,终于移植好了...应该是完美移植吧~~哈哈哈~~ 编译环境是IAR 工程适用于STM32F10X大容量产品,如果不是,请自行修改启动文件和工程配置 编译器优化等级最高...这 ...
随机推荐
- 雄踞AppStore榜首的游戏<别踩到白块儿>源码分析和下载(一)
AppStore和Android市场情况 莫名其妙爆红的游戏 真的莫名其妙,笔者下这个游戏两次.第一次在豌豆荚排行榜看到这款游戏,名字怪怪的,下载下来尝试一下,没认为有什么新颖的,还在思虑这是不是刷榜 ...
- stl之deque双端队列容器
deque与vector很相似,不仅能够在尾部插入和删除元素,还能够在头部插入和删除. 只是当考虑到容器元素的内存分配策略和操作性能时.deque相对vector较为有优势. 头文件 #include ...
- redis单机及其集群的搭建
http://www.cnblogs.com/mouseIT/p/5288204.html
- 问题分析探讨 --> 大约有700W数据的表,把当天的10W数据select导入新表,整个原来的表就锁死
Sun shine 16:15:55 帅哥 我有个手机表 大约有700百数据,,每天新增 大约五万,并且新也有update 大约10万 然后 我每晚 把当天的数据select 导入一个新表中的时 ...
- EL表达式读取数据(在Map,javaBean,List)
<%@page import="cn.hncu.domain.User"%><!--这里是进行导包--><%@ page language=" ...
- char与varchar区别
char:储存定长数据,长度不够,以空格填满.储存效率高. varchar: 变长数据,根据数据长度储存,节省空间,效率低.
- i++与++i的区别
i++与++i的意思都是i自身加1,不过这个两个语句却有很大的区别. ++i,就是直接在i上再加1,这个无需多解释. i++会稍微特殊些,他会在下次执行语句,再遇到i时,才会在i身上加1. 打个比方, ...
- C# Callback 回调实用讲解 [原创]
这个是2011年写的一个技术贴,现在看可能有点过时了,有兴趣的朋友也可以看一下. 一. 描述 在开发winform程序时不会考虑页面刷新问题,只要控制好线程别导致假死就ok了,但是在开发web页面程序 ...
- .NET Entity Framework入门简介及简单操作
Entity Framework是微软借鉴ORM思想开发自己的一个ORM框架. ORM就是将数据库表与实体对象(相当于三层中的Model类)相互映射的一种思想. 最大的优点就是非常方便的跨数据库平台. ...
- 学习笔记_Java_day13_JSTL标签库(1、2、3、4、5、6、7、8)
1.一种标签语言 day13 l JSTL标签库(重点) l 自定义标签(理解) l MVC设计模式(重点中的重点) l Java三层框架(重点中的重点) JSTL标签库 1 什么是JSTL ...