历史上的今天
返回首页

历史上的今天

今天是:2024年09月24日(星期二)

正在发生

2019年09月24日 | STM32库中重要文件说明详解

2019-09-24 来源:eefocus

1.stm32f10x.h:定义系统寄存器的地址以及使用结构体封装。定义声明以及包装内存操作。新版的固件库V3.0以上main等源文件中不再直接包含stm32f10x_conf.h,而是stm32f10x.h。


stm32f10x.h中定义了启动设置,以及所有寄存器宏定义,此文件中需要注意的有:


1、device选择;2、外部时钟频率选择;3、外设宏定义USE_STDPERIPH_DRIVER;


stm32f10x_conf.h中包含了所有外设的头文件,因此任意源文件只要包含了stm32f10x.h,就可以在源文件调用任意外设的函数,而不需要的外设部分,可以在stm32f10x_conf.h中注释掉,项目编译时就不会再编译以及去掉的外设。


2.stm32f10x_it.c和stm32f10x_it.h:所有中断服务函数


中断是嵌入式系统中重要的组成部分,但是在标准C中不包含中断。许多编译开发商在标准C上增加了对中断的支持,提供新的关键字用于标示中断服务程序 (ISR),类似于__interrupt、#program interrupt等。当一个函数被定义为ISR的时候,编译器会自动为该函数增加中断服务程序所需要的中断现场入栈和出栈代码。


中断服务程序需要满足如下要求:

  (1)不能返回值;

  (2)不能向ISR传递参数;

  (3) ISR应该尽可能的短小精悍;

  (4) printf(char * lpFormatString,…)函数会带来重入和性能问题,不能在ISR中采用。


参阅网上资料和个人的一些理解

a.为什么不能有返回值?


中断服务函数的调用是硬件级别的,当中断产生,pc指针强制跳转到对应的中断服务函数入口,进入中断具有随机性,并不是某段代码对其进行调用,那么如果有返回值它的返回值返回给谁?显然这个返回值毫无意义,如果有返回值,它必定需要进行压栈操作,这样一来何时出栈怎么出栈将变得无法解决。


b.不能向ISR传递参数?


同理,也是由于这样会破坏栈的原因,因为函数传递参数必定会要求压栈出栈操作,由于进入中断服务函数的随机行,谁给它传递参数都成问题


c.ISR应尽可能的短小精悍?


如果某个中断频繁产生,而它对应的ISR相当的耗时,那么对中断的响应就会无限的延迟,会丢掉很多的中断请求


d.printf(char * lpFormatString,…)函数会带来重入和性能问题,不能在ISR中采用。


这就涉及到一个中断嵌套问题,由于printf之类的glibc函数采用的是缓冲机制,这个缓冲区是共享的,相当于一个全局变量,第一层中断来时,它向缓冲里面写入一些部分内容,恰好这时来了个优先级更高的中断,它同样调用了printf,也向缓冲里面写入一些内容,这样缓冲区的内容就错乱了。


3.stm32f10x_conf.h:所有外设头文件


4.system_stm32f10x.c:设备外设访问层,主要配置时钟频率(设置系统以及总线时钟)


system_stm32f10x.h:配置时钟频率相应的头文件


5.下面是一些启动文件

6.stm32f10x_flash.icf:编译器链接库文件

推荐阅读

史海拾趣

芯联(CHIPLINK)公司的发展小趣事

面对激烈的市场竞争和不断上升的成本压力,芯联集成通过优化成本结构、提高生产效率等措施,成功降低了生产成本。同时,公司还加强了与供应商的合作,实现了供应链的优化管理。这些努力使芯联集成在保持产品质量的同时,降低了产品售价,提升了盈利能力。

AW Industries Inc公司的发展小趣事

随着市场竞争的加剧,AW Industries Inc意识到只有不断创新才能在行业中立足。公司加大了对研发的投入,并成功研发出了一款具有革命性的新型电子元件。这款元件不仅性能卓越,而且成本更低,迅速在市场上占据了主导地位。这一创新成果不仅为公司带来了丰厚的利润,也奠定了其在电子行业的领先地位。

Electronic公司的发展小趣事

小米,作为一家年轻的科技公司,在电子行业的发展中展现了惊人的成长速度。小米凭借出色的产品设计和创新的营销策略,迅速在手机市场获得了巨大成功。随着业务的不断拓展,小米还涉足了智能家居、物联网和互联网金融等领域,形成了完整的生态布局。小米通过提供高性价比的产品和优质的服务,赢得了大量年轻用户的喜爱和支持。

Aearo Technologies公司的发展小趣事

在发展过程中,Aearo Technologies经历了一次重要的收购事件。3M公司看中了Aearo在能量控制领域的领先地位和技术实力,于XXXX年将其收购。收购后,Aearo Technologies成为了3M旗下的一家子公司,继续保留其品牌和技术优势。通过业务整合和资源共享,Aearo Technologies在3M的支持下实现了更快速的发展。

FCI / Amphenol公司的发展小趣事

1997年,Amphenol公司经历了一次重要的转折点。当时,公司被KKR(一家具有传奇色彩的美国纽约的私人股权投资公司)以杠杆收购的方式收购。KKR的收购为Amphenol公司注入了新的活力,公司开始进行一系列的战略调整和业务转型。在KKR的助力下,Amphenol公司不仅保留了大部分现有的管理团队,还引入了更大的财务杠杆,使得公司能够更加灵活地应对市场变化和挑战。这一收购和转型不仅为Amphenol公司带来了新的发展机遇,也为其在全球连接器市场上的地位奠定了更加坚实的基础。

Fremont_Micro_Devices_USA公司的发展小趣事

FCI公司起源于1988年,当时由Framatome组建,其初衷是作为核能领域外的一个多样化经营项目。然而,随着市场的变化和公司的战略调整,FCI逐渐将重心转向连接器制造。经过20多次的精心收购和策略性扩张,FCI在短短20年内便成长为全球最大的连接器制造公司之一。这一转变不仅展现了FCI对市场敏锐的洞察力,也体现了其卓越的管理能力和执行力。

问答坊 | AI 解惑

线材在设备中使用简介

针对动力线(三相)、讯号线、IO线、特殊电源线简介 共通点: 线材本身就是阻抗体,为何电线会发烫发热?为何会有压降?为何会耗电? 都是电阻造成的。此阻抗来自何处? 1、 自身材料(金、银、铜、铝、锡) 传输系数(导电率)—金最佳、最贵 ...…

查看全部问答>

美国Synqor高效率电源模块(92%-98%)

SynQor公司是美国一家专门从事DC/DC和AC/DC电源模块研发生产的高科技公司,自1999 年推出通用开架式DC/DC模块电源开始,到现在已推出涵盖通讯,工业,医疗,国防,军 工等领域应用的全系列产品。产品系列包括电信级标准DC-DC模块电源(PowerQor, ...…

查看全部问答>

GPS导航电子地图如何更新升级

导航电子地图众所周知为GPS导航的核心和根本,导航地图更新和升级乃是导航地图生命线,甚至是GPS导航产品存活的标准。我国GPS导航市场经过几年的发展,现在关于导航地图的升级问题越来越来严重,成为导航电子地图商的一大难题。    &nbs ...…

查看全部问答>

HIVE-BASE+FAT?

如何实现FAT配置注册表实现自动化分区功能,因为我的EBOOT没有分区功能,但又想实现HIVE-BASE+FAT? 环境:S3C2410+NAND(64)+RAM(64)…

查看全部问答>

FPGA时钟控制电路设计

           今天老师安排了一个FPGA时钟控制电路的设计任务,对这个不是很了解,希望可以得到大家的帮助,提供一些相关信息或资料,谢谢·…

查看全部问答>

D600 中datetime 的问题

调用Datetime.now.tostring() 方法 模拟器上 返回2009-03-16 17:33:11 连接d600调试,datetime.now 返回 2009-03-16 星期一 17:33:11 S900返回2009-03-16 17:33:11 为啥多出个星期一呢。。忘赐教。…

查看全部问答>

有个客户设计的板,用手摸下板上的地,cpu就工作。

来自电子工程师技术交流(12425841) 12425841 究竟这样给板引入了什么?改变板上什么东西了?…

查看全部问答>

关于LQFP144的STM32,可以画成2层板吗?

关于LQFP144的STM32,可以画成2层板吗? 1。我参考一些开发板,大都是4层的,当然它板子尺寸比较小,而且采用0603封装。 我问做产品的,也是4层,抗干扰。 2。但是我的板子由于接插件较多,所以板子尺寸为200*250mm, 电路也不是很复杂,所 ...…

查看全部问答>

力挺430,学习、工作的好MCU!!!方法

  1 购买有关书籍,并到杭州利尔达公司网站和TI网站获取资料, 2FET 如果经济条件不错,可以直接购买。 3FET 自制仿真器FET,首先要到网上找到FET电路图,然后就可以使用画电路板软 件画电 ...…

查看全部问答>

【设计工具】verilog_interview.pdf

觉得还是很不错的 分享分享啊…

查看全部问答>