打印
[经验分享]

mcu上电启动流程分析

[复制链接]
楼主: tpgf
手机看帖
扫描二维码
随时随地手机跟帖
21
dspmana| | 2024-3-14 14:15 | 只看该作者 回帖奖励 |倒序浏览
初始化代码执行完成后,MCU会开始执行主循环。在这个循环中,MCU会根据预设的程序逻辑处理外部事件、执行任务和处理数据。

使用特权

评论回复
22
wwppd| | 2024-3-15 14:01 | 只看该作者
eset_Handler函数会初始化堆栈指针(SP)。堆栈用于保存函数调用的现场(上下文)和参数,因此初始化堆栈指针是MCU启动流程中的重要步骤。

使用特权

评论回复
23
gygp| | 2024-3-16 15:54 | 只看该作者
启动代码执行完毕后,MCU会跳转到应用程序的入口地址,开始执行应用程序代码。至此,MCU的上电启动流程结束。

使用特权

评论回复
24
earlmax| | 2024-3-16 18:38 | 只看该作者
系统时钟是MCU的主时钟,控制着设备的时序和计时控制功能。在启动流程中,需要配置系统时钟以确保MCU能够按照预期的时序运行。

使用特权

评论回复
25
modesty3jonah| | 2024-3-17 17:40 | 只看该作者
根据MCU的启动模式(BOOT引脚设置),有可能是从闪存(Flash)的某一特定地址加载应用程序代码,也可能通过某种引导加载器(Bootloader)从其他存储介质加载。

使用特权

评论回复
26
benjaminka| | 2024-3-17 19:51 | 只看该作者
在复位过程中,MCU会初始化内部外设模块,如串行通信接口(UART)、定时器、GPIO(通用输入输出)等。初始化过程包括配置外设的工作模式、设置相关寄存器等。

使用特权

评论回复
27
jkl21| | 2024-3-20 13:32 | 只看该作者
启动代码紧接着会初始化MCU的内部和外部硬件资源,如关闭看门狗、设置时钟、初始化存储器控制器、配置GPIO、开启必要的外设、设置中断控制器等。

使用特权

评论回复
28
51xlf| | 2024-3-23 10:16 | 只看该作者
启动代码是一段在MCU上电或复位后最先执行的代码,它主要完成堆栈指针的设置、复位向量的获取和加载,然后初始化变量。

使用特权

评论回复
29
jtracy3| | 2024-3-23 14:23 | 只看该作者
应用程序代码随后被执行,一般是从.text段开始执行,这段代码负责进一步的系统初始化和进入主循环。

使用特权

评论回复
30
modesty3jonah| | 2024-3-23 18:33 | 只看该作者
复位信号结束后,时钟信号产生电路开始工作,为MCU提供稳定的时钟信号。时钟信号的频率和稳定性直接影响MCU的性能和工作稳定性。

使用特权

评论回复
31
wwppd| | 2024-3-23 19:18 | 只看该作者
MCU会从预设的地址(通常为0x00000000)开始执行程序。程序通常从复位中断向量开始执行,然后跳转到主程序(main函数)。

使用特权

评论回复
32
tabmone| | 2024-3-23 20:23 | 只看该作者
外设是MCU在运行过程中实际使用的设备。在启动流程中,需要对外设进行初始化,以确保它们在正常运行时能够正常使用。

使用特权

评论回复
33
wangdezhi| | 2024-3-23 21:39 | 只看该作者
在MCU接收到上电信号后,会进行复位操作。复位操作包括对内部寄存器、存储器和其他模块的初始化。复位过程通常由内部上电复位电路实现,该电路在上电时产生一个复位信号,持续一段时间后自动消失。

使用特权

评论回复
34
abotomson| | 2024-3-27 10:00 | 只看该作者
CPU从复位向量地址处取出第一条指令,开始执行启动代码。这个启动代码通常是由芯片制造商提供的,封装在固件库中的启动文件(startup.asm或者startup.s)中。
启动代码首先初始化堆栈指针(MSP或PSP),接着跳转到C/C++运行时环境初始化代码,设置堆、栈等内存区域,以及初始化全局变量。

使用特权

评论回复
35
10299823| | 2024-3-27 11:41 | 只看该作者
电源供电稳定后,MCU会经历一个复位过程。复位可以是由上电事件触发的硬件复位,也可以是由软件指令触发的复位。硬件复位通常会设置MCU的所有寄存器到默认状态,并启动初始化流程。

使用特权

评论回复
36
belindagraham| | 2024-3-27 12:02 | 只看该作者
复位后,MCU会执行存储在内部ROM或外部存储器中的初始化代码。这个初始化代码通常包括设置时钟系统、配置IO口、设置中断向量表、初始化内存和外设等。

使用特权

评论回复
37
backlugin| | 2024-3-27 17:32 | 只看该作者
内部自检通过后,程序计数器(PC)被初始化为默认值,通常指向MCU的启动向量表(Bootloader Vector Table)或应用程序的入口地址。

使用特权

评论回复
38
鹿鼎计| | 2024-4-3 15:22 | 只看该作者
单片机的开机和启动过程要比单片机简单得多

使用特权

评论回复
39
Pretext| | 2024-4-4 12:56 | 只看该作者
然后执行应用程序代码,通常从文本段开始,文本段负责进一步的系统初始化和进入主循环。

使用特权

评论回复
40
usysm| | 2024-4-6 16:30 | 只看该作者
在复位过程中,MCU会初始化内部寄存器,包括控制寄存器、状态寄存器、中断向量表等。初始化过程通常由硬件自动完成。

使用特权

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

本版积分规则