[生态工具] MCU在执行main之前做了什么?

[复制链接]
2792|59
everyrobin 发表于 2025-4-13 11:22 | 显示全部楼层
在微控制器(MCU)启动时,从上电到执行用户程序的main()函数之前,会经历一系列底层初始化操作。
pmp 发表于 2025-4-13 13:20 | 显示全部楼层
硬件复位与启动              
1988020566 发表于 2025-4-13 15:07 | 显示全部楼层
设置堆栈指针(MSP)。
调用复位处理程序(Reset Handler)。
初始化系统(调用 SystemInit)。
初始化全局和静态变量(零初始化和复制初始化)。
初始化浮点单元(FPU)。
初始化C库。
跳转到 main 函数。
updownq 发表于 2025-4-13 17:11 | 显示全部楼层
时钟是 MCU 运行的基础,不同的硬件模块需要合适的时钟信号才能正常工作。启动代码会配置时钟源(如晶振)、时钟分频器等,为 MCU 和各个外设提供稳定的时钟信号。
yangxiaor520 发表于 2025-4-13 20:11 来自手机 | 显示全部楼层
底层设置,中断向量表设置。
xiaoyaodz 发表于 2025-4-13 20:30 | 显示全部楼层
在完成所有初始化工作后,启动代码会调用main函数,程序正式开始执行用户代码。
burgessmaggie 发表于 2025-4-14 07:57 | 显示全部楼层
启动代码会调用 __call_main 函数,跳转到 main 函数,开始执行用户程序。
bestwell 发表于 2025-4-14 10:10 | 显示全部楼层
完成 所有初始化操作后,启动代码会跳转到main函数,开始执行用户编写的程序。
单芯多芯 发表于 2025-4-21 12:54 | 显示全部楼层
启动代码要设置IO口、时钟、中断等,配置内存空间
shenxiaolin 发表于 2025-4-23 17:14 | 显示全部楼层
堆栈初始化、时钟初始化
明日视界 发表于 2025-5-6 20:48 | 显示全部楼层
复位后,CPU会去flash里特定地址找启动程序。
Moon月 发表于 2025-5-9 07:49 | 显示全部楼层
设置好时钟,单片机才能根据设定频率工作
dreamCar 发表于 2025-5-10 18:46 | 显示全部楼层
单片机上电或复位按钮按下后,会回到初始状态。
理想阳 发表于 2025-5-13 20:26 | 显示全部楼层
微控制器启动时,先进行硬件初始化,如设置时钟、配置I/O口等,然后跳转到main()函数。
zephyr9 发表于 2025-5-15 10:11 | 显示全部楼层
设置中断向量表就是给中断服务程序指定地址,确保单片机知道每个中断该去哪里执行
LinkMe 发表于 2025-5-15 21:33 | 显示全部楼层
堆栈初始化:设置堆栈指针,让单片机能正确管理内存。时钟初始化:配置时钟源和频率,确保单片机运行速度
地瓜patch 发表于 2025-5-21 15:30 | 显示全部楼层
mcu在初始化自己
suncat0504 发表于 2025-5-21 20:51 | 显示全部楼层
做必要的初始化处理。感觉运行机制和BIOS有一定相似性。
小熊01 发表于 2025-6-5 12:21 | 显示全部楼层
就像电脑开机先去硬盘找系统启动文件一样。
AIsignel 发表于 2025-6-11 13:43 | 显示全部楼层
堆栈指针得对准,单片机内存管理才没问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部