你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32的启动问题,大神帮我解惑,不胜感激

[复制链接]
到处学 提问时间:2015-7-24 10:49 /
小弟才开始用stm32不久,现在遇到几个疑惑,关于stm32的启动问题:
1.在用MDK写一些小程序的时候,都会有一个启动文件,这个文件是不是用来配置芯片的中断、内存、还有外设的一些信息的呢?如果是,还有没有一些其他功能,如果不是,那它是做什么的呢。
2.看stm32的启动过程,说需要先取MSP和PC指针,那么是不是PC指针先要指向启动文件存放在存储器中的首地址呢,这个地址是怎么定位的呢?
3.今天又看到一个bootloader,说是可以用来引导操作系统,这个东西功能是不是和启动文件类似呢,它又是怎么烧写到芯片的存储器中的呢?
求大神帮我解惑,让我这个小菜鸟能起飞。
收藏 评论9 发布时间:2015-7-24 10:49

举报

9个回答
creep 回答时间:2015-7-24 11:33:30
给你推荐本书,你的疑问基本都能解决:《Cortex-M3权威指南》。
moyanming2013 回答时间:2015-7-24 16:32:48
你问的都很好,很切中要害。学习的很深刻,希望继续努力。相互学习。我来简单跟你讨论下这些问题:
1.启动文件是用来声明堆、栈的大小即位置,中断向量函数的声明或定义等内容的。
其中最重要是要指出MSP的值,就是栈顶指针。
再就是PC的值即复位向量的声明和定义,复位向量就是做时钟、RAM、flash等的一些配置、最基本代码的配置,初始化C库并再跳转至用户main函数。具体就是初始化RAM、初始化RAM(包括对全局的、静态的变量等进行初始化,复制一些常量到内存),初始化C库(比如c的初始化、栈等),然后就跳入用户main函数了。
具体可以参考MDK-ARM提供的文档:armlib.chm(见附件)其中的“The C and C++ Library Functions”你可以找到一些更多细节。
2.PC指向的是复位向量(其实就是复位函数,用汇编写的)一般名字是Reset_Handler,Reset_Handler在编译时就确定了地址,然后按照顺序保存在存储器中,上电后,从存储器的逻辑0地址(具体要看地址映射)读取MSP,逻辑1地址读取PC。PC值就是Reset_Handler的地址值,程序跳往Reset_Handler,Reset_Handler做的就是上述第1步中的后面的事情,最后会跳往用户main函数。
3.bootloader和启动文件不是一个概念(区别于平常看到的bootloader--linux等用的较多,而每个厂商对此的解释也不同,需要仔细看手册),具体可以参考《The Definitive Guide to Arm Cortex-M3 and Cortex-M4 Processors》。简单说就是bootloader是厂商(ST)固化在系统存储区域的一段程序,可能包括串口、USB等一个或全部的驱动,用来使用ISP烧录程序用的,用户不会对该区域进行写;最简单的bootloader其实就是包含了板子的串口驱动及对flash进行擦除和写入的算法,到进行ISP的时候,通过PC软件选择好下载算法后进行烧录的,程序文件通过串口进行传输。启动文件是正常上电后,开始用户程序前做配置的一段代码,编程人员可以任意修改,甚至可以胡乱修改,只不过是系统可能起不来罢了,但只要通过ISP下载了正确的程序后,系统仍然可以正常运行。bootloader一般是任意时候都是可以使用的,其系统存储区不会遭到破坏。启动文件可以任意按照不同的意图进行修改。

armlib.chm

下载

396.12 KB, 下载次数: 1, 下载积分: ST金币 -1

moyanming2013 回答时间:2015-7-24 16:36:43
苏柚 发表于 2015-7-24 11:16
看看这篇帖子
STM32启动代码分析https://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=599326& ...

这本书很好啊。。。
到处学 回答时间:2015-7-24 17:44:02
恩恩,谢谢大神们的回复,刚一直在上课所以没看,周末再好好把头绪捋一捋。
chifen 回答时间:2015-7-24 20:29:14
帮顶                              
mark0668 回答时间:2015-7-24 22:42:57
感谢分享,学习了.
gonggu8181 回答时间:2015-7-25 06:43:41
学习了!
yanhaijian 回答时间:2015-7-25 08:24:07
creep 发表于 2015-7-24 11:33
给你推荐本书,你的疑问基本都能解决:《Cortex-M3权威指南》。

这本书是好书啊。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版