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

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

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

举报

8个回答
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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版