发新帖我要提问
12
返回列表
打印
[生态工具]

MCU在执行main之前做了什么?

[复制链接]
楼主: jonas222
手机看帖
扫描二维码
随时随地手机跟帖
21
everyrobin| | 2025-4-13 11:22 | 只看该作者 回帖奖励 |倒序浏览
在微控制器(MCU)启动时,从上电到执行用户程序的main()函数之前,会经历一系列底层初始化操作。

使用特权

评论回复
22
pmp| | 2025-4-13 13:20 | 只看该作者
硬件复位与启动              

使用特权

评论回复
23
1988020566| | 2025-4-13 15:07 | 只看该作者
设置堆栈指针(MSP)。
调用复位处理程序(Reset Handler)。
初始化系统(调用 SystemInit)。
初始化全局和静态变量(零初始化和复制初始化)。
初始化浮点单元(FPU)。
初始化C库。
跳转到 main 函数。

使用特权

评论回复
24
updownq| | 2025-4-13 17:11 | 只看该作者
时钟是 MCU 运行的基础,不同的硬件模块需要合适的时钟信号才能正常工作。启动代码会配置时钟源(如晶振)、时钟分频器等,为 MCU 和各个外设提供稳定的时钟信号。

使用特权

评论回复
25
yangxiaor520| | 2025-4-13 20:11 | 只看该作者
底层设置,中断向量表设置。

使用特权

评论回复
26
xiaoyaodz| | 2025-4-13 20:30 | 只看该作者
在完成所有初始化工作后,启动代码会调用main函数,程序正式开始执行用户代码。

使用特权

评论回复
27
burgessmaggie| | 2025-4-14 07:57 | 只看该作者
启动代码会调用 __call_main 函数,跳转到 main 函数,开始执行用户程序。

使用特权

评论回复
28
bestwell| | 2025-4-14 10:10 | 只看该作者
完成 所有初始化操作后,启动代码会跳转到main函数,开始执行用户编写的程序。

使用特权

评论回复
29
单芯多芯| | 2025-4-21 12:54 | 只看该作者
启动代码要设置IO口、时钟、中断等,配置内存空间

使用特权

评论回复
30
shenxiaolin| | 2025-4-23 17:14 | 只看该作者
堆栈初始化、时钟初始化

使用特权

评论回复
31
明日视界| | 2025-5-6 20:48 | 只看该作者
复位后,CPU会去flash里特定地址找启动程序。

使用特权

评论回复
32
Moon月| | 2025-5-9 07:49 | 只看该作者
设置好时钟,单片机才能根据设定频率工作

使用特权

评论回复
33
dreamCar| | 2025-5-10 18:46 | 只看该作者
单片机上电或复位按钮按下后,会回到初始状态。

使用特权

评论回复
34
理想阳| | 2025-5-13 20:26 | 只看该作者
微控制器启动时,先进行硬件初始化,如设置时钟、配置I/O口等,然后跳转到main()函数。

使用特权

评论回复
35
zephyr9| | 2025-5-15 10:11 | 只看该作者
设置中断向量表就是给中断服务程序指定地址,确保单片机知道每个中断该去哪里执行

使用特权

评论回复
36
LinkMe| | 2025-5-15 21:33 | 只看该作者
堆栈初始化:设置堆栈指针,让单片机能正确管理内存。时钟初始化:配置时钟源和频率,确保单片机运行速度

使用特权

评论回复
37
地瓜patch| | 2025-5-21 15:30 | 只看该作者
mcu在初始化自己

使用特权

评论回复
38
suncat0504| | 2025-5-21 20:51 | 只看该作者
做必要的初始化处理。感觉运行机制和BIOS有一定相似性。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则