历史上的今天
返回首页

历史上的今天

今天是:2024年12月03日(星期二)

正在发生

2018年12月03日 | stm32启动文件相关说明

2018-12-03 来源:eefocus

说的直白点就是以下区别,在选择启动文件的时候有选择性区别!


startup_stm32f10x_cl.s互联型的STM32F105xx,STM32F107xx

startup_stm32f10x_hd.s 大容量的STM32F101xx,STM32F102xx,STM32F103xx

startup_stm32f10x_hd_vl.s 大容量的STM32F100xx

startup_stm32f10x_ld.s 小容量的STM32F101xx,STM32F102xx,STM32F103xx

startup_stm32f10x_ld_vl.s 小容量的STM32F100xx

startup_stm32f10x_md.s 中容量的STM32F101xx,STM32F102xx,STM32F103xx

startup_stm32f10x_md_vl.s 中容量的STM32F100xx

startup_stm32f10x_xl.s 超大容量FLASH在512K到1024K字节的STM32F101xx,STM32F102xx,STM32F103xx

疑问一:为什么需要选择启动文件?


1.建立中断服务入口地址,即把中断向量与中断服务函数链接起来。


我们知道在串口NVIC配置中我们只定义了个   NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;


也就是中断服务向量,再然后我们在stm32f10x_it.c文件的void USART2_IRQHandler(void){} 函数里添加串口的服务程序。

 

但是mcu怎么知道中断向量USART2_IRQn对应的是USART2_IRQHandler(){}呢,这个就是启动文件所起的作用。


在启动文件  .s  中 以   g_pfnVectors:  开头。


2.从systeminit()函数进入到main()函数.


对于stm32我们定义系统时钟的时候直接在system_stm3210x.c文件里修改宏定义即可,而事实上到底是从哪开始执行的呢?


system_stm3210x.c文件里有个SystemInit()函数,就是对时钟的设置。


而这个SystemInit()在哪调用的呢,就是启动文件先调用了,然后才进入到mian()函数。


在启动文件  .s  中有以下一段话可以解释。 


/* Call the clock system intitialization function.*/
  bl  SystemInit
/* Call static constructors */
  bl __libc_init_array
/* Call the application's entry point.*/
bl main
bx lr

3.有些启动文件定义了堆栈大小,可以在这里进行修改。(有些是在  .ld  进行定义的)


疑问二:这些文件在哪里?


打开官方库文件,可以了解到STM32F10x_StdPeriph_lib/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup

     

下有4个文件夹arm  gcc_ride7  iar  TrueSTUDIO

     

到底选择哪个文件夹呢?  这与编译器有关,不同的编译器调用的指令集是不同的,所以需谨慎选择


arm适用于arm编译器   gcc_ride7适用基于GCC_ride7编译器的  iar就不用说了都清除  TrueSTDIO是ST自己的编译器当然也是基于GCC的用MDK于eclipse可以使用

(在eclipse下用的GCC插件的话,需要把后缀名 .s 改为 .S成大写,不然会编译出错)


疑问三:怎么选择101xx 102xx 103xx是小容量、中容量还是大容量?


查user manual手册,以下为摘录


可以这么认为:flash容量<=32k       选择  ld

64k<=   <=128k     选择 md

       256<=   <=512k     选择  hd


那怎么区分MCU是多大的flash容量呢?


可以参考下表对于芯片命名说明:Flash memory size 

6:32K8:64K  B:128KC:256K D:384KE:512K  Flash memory size!


推荐阅读

史海拾趣

Gustav Klauke GmbH公司的发展小趣事

Gustav Klauke GmbH在电子行业中的五个发展故事

故事一:创立与电气时代的崛起

1879年,Gustav Klauke GmbH在德国雷姆沙伊德成立,正值第二次工业革命带来的“电气时代”大爆发。创始人Gustav Klauke凭借其对精工品质的执着追求,将公司的业务聚焦于电气连接技术和电缆作业工具的研发。随着全球电气工业的迅速发展,Klauke迅速成为该领域的佼佼者,为供电系统的各个环节提供可靠且实用的解决方案,满足了社会对电气产品日益增长的多元化需求。

故事二:产品创新与多元化发展

历经百年开拓,Klauke的产品线不断丰富和完善。从最初的钟表维修钳子,到电缆接线端子的生产,再到电池驱动的液压工具的研发,Klauke始终走在行业前沿。特别是1994年推出的首款电池驱动液压工具,标志着公司在电气连接技术上的重大突破。至今,Klauke已拥有多达280种工具,2000多个型号,超过10000个优质部件,广泛应用于电力、铁路和工业等多个领域。

故事三:品质与认证的国际认可

Klauke深知电气连接作业对安全可靠性的极高要求,因此始终将产品质量放在首位。公司不仅拥有IEC(国际电工委员会)、UL(美国保险商试验所)、DNV(挪威船级社)和GL(德国劳氏船级社)等特殊行业的权威资质认证,还通过严格的产品测试报告,确保每一款产品都能达到国际最高标准。这种对品质的坚持,让Klauke在全球客户中赢得了极高的信誉和口碑。

故事四:全球化布局与业务拓展

随着全球市场的不断扩大,Klauke积极实施全球化战略。从德国本土出发,公司在全球范围内设立了多个分公司和销售办事处,如印度、奥地利、西班牙等。同时,公司还通过并购和合作等方式,不断拓展业务领域和市场份额。例如,2018年Gustav Klauke GmbH被艾默生收购,现隶属于“专业工具”部门,这一举措进一步提升了公司在全球电气工具市场的竞争力。

故事五:未来展望与技术创新

面对未来,Klauke继续秉承德国精工品质的优良传统,致力于技术创新和服务优化。公司正密切关注物联网和工业4.0等下一代趋势,并制定相应的战略计划。例如,新型电池供电液压工具配备了蓝牙接口,实现了移动数据读取和工具配置的便捷性。此外,Klauke还计划推出更多高适应性、精准性的电气连接解决方案,以更好地满足全球日益多元的施工作业需求。展望未来,Klauke将继续向下一个百年目标迈进,为电子行业的发展贡献更多力量。

DRI Relays Inc公司的发展小趣事

品质是企业的生命线。为了提升产品质量和客户满意度,DRI Relays Inc公司不断加强品质管理。公司建立了严格的质量检测体系,对原材料、生产过程和成品进行全面检测。同时,公司还注重员工素质的提升,定期开展培训和技能竞赛等活动,提高员工的技能水平和质量意识。这些措施有效地保证了公司产品的稳定性和可靠性,赢得了客户的信任和好评。

Gespac Inc公司的发展小趣事

为了满足全球客户的需求,DRI Relays Inc公司开始实施全球化战略。公司先后在亚洲、欧洲和美洲等地设立了分公司和研发中心,以便更好地了解当地市场需求和提供定制化服务。同时,公司还积极参与国际展览和交流活动,加强与全球客户的沟通和合作。这些举措不仅提高了公司的国际知名度,还为公司赢得了更多的订单和市场份额。

Equinox公司的发展小趣事

2020年,新冠疫情的爆发给全球健身行业带来了前所未有的挑战。许多健身房因为疫情而被迫关闭,Equinox也不例外。然而,Equinox并没有放弃,而是迅速调整策略,通过线上课程、虚拟健身等方式保持与客户的联系。同时,公司还加强了内部优化和成本控制,以应对疫情带来的经济压力。

Hartmann Codier GmbH公司的发展小趣事

随着科技的发展,Equinox意识到数字化对于提升客户体验的重要性。因此,公司开始投入大量资源建设数字平台,提供在线预约、课程购买、健康管理等服务。这些数字化功能不仅方便了客户,还提高了公司的运营效率。

GigPeak公司的发展小趣事

GigPeak公司自成立之初,便专注于高速数据传输技术的研发。在2005年,公司研发团队成功开发出一种新型的光电转换器,该转换器能够在极低的功耗下实现前所未有的数据传输速率。这一技术创新迅速吸引了业界的关注,并成功应用于多个高端数据中心项目,帮助GigPeak在竞争激烈的市场中脱颖而出。随着技术的不断迭代和市场的广泛认可,GigPeak逐渐成为了高速数据传输领域的领军企业。

问答坊 | AI 解惑

【MPS商城钜惠体验季】开箱

     周一下单, 今天周五就收到了, MPS发货速度还是挺快的.        包装非常结实, 外面一个大盒子,里面每件货都再装了一个小盒子.       这是一颗DCDC转换芯片:  & ...…

查看全部问答>

关于共地干扰问题

下图是:一个高压脉冲放电系统,绿色的部分与黄色的部分(外控)是共地的,绿色部分(放电)的作用是产生一个-400V的和输入PWM脉宽相同的-400V电压脉冲原理是电荷泵电流不大30mA,该绿色模块使用12V输入,由黄色部分供给。蓝色部分MCU主控与外控通过快 ...…

查看全部问答>

关于CMOS双向模拟开关认识问题

 疑问:CMOS传输门内部是一个P沟道MOS和N沟道MOS对接,当C高电平时下端的N管是导通的,当C为低电平的时候上端PMOS管基极为低电平不也是导通?大佬们我是哪里理解有问题? …

查看全部问答>

【MPS商城钜惠体验季】开箱

这次活动,太划算了,正好最近在做一个家庭环境监测板自己玩,就选了mEZS91202A这个现成的板子准备做供电用 收到时的包装 发货清单以及选型手册  板子单独用纸箱包装   板子实物     …

查看全部问答>

ESP8266 WEB智能小后台 ,采电压,绘曲线,向服务器传信息

一个月前,自己想设计一个不用安装应用程序的智能手机控制的硬件。                是否有人有兴趣?有兴趣的可以联系我,                朝“自带 ...…

查看全部问答>

【MPS商城钜惠体验季】开箱

本帖最后由 qinyunti 于 2022-11-25 23:07 编辑 借着论坛的活动,购买了EVM54304-MN-01A评估板和MP20048芯片。 到货了,赶紧开个箱。 包装很好,专业 …

查看全部问答>

EEWorld邀你来拆解(第7期)——拆拆减肥利器----初步拆解

在使用了大概十天后,今天开始正式拆解。整体使用感受不错,在我咬牙切齿的锻炼下,体重下来了0.5公斤,又在我咬牙切齿的吃东西中,吃了回来。 真可谓     爱情和金钱可能会辜负你,离你远去,但是肥肉不会。   ...…

查看全部问答>

运放电路的噪声问题

如下图: 运放电路噪声分析时,反馈电阻R1(10K)可视为理想电阻R2(10K)与白噪声源(VN)串联。工程上一般认为VN等效到输出端的噪声就是它本身。但是,若把VN画在R2左侧,VN等效到输出端的噪声应该为VN乘以运放增益。但人们都是认为等效输出为VN ...…

查看全部问答>

【MPS商城钜惠体验季】开箱

啥也不说了,直接开箱,上图 主角来啦,EVM54304-MN-01A,这个家伙了不起,4路输出,我等不及去测试啦! 开箱结束,非常感谢eeworld和mps的活动!         …

查看全部问答>

请问哪些芯片支持zigbee协议?

请问哪些芯片支持zigbee协议? …

查看全部问答>