发新帖我要提问
12
返回列表
打印
[STM32F4]

STM32F4系列启动后是如何进行指令执行的?

[复制链接]
楼主: pengf
手机看帖
扫描二维码
随时随地手机跟帖
21
liuzaiy| | 2023-1-9 23:36 | 只看该作者 回帖奖励 |倒序浏览
这个是很深奥的问题

使用特权

评论回复
22
pengf|  楼主 | 2023-1-9 23:38 | 只看该作者

明白了,多谢大家讨论这么多哈

使用特权

评论回复
23
SantaBunny| | 2023-2-3 19:36 | 只看该作者
启动流程指复位或上电到执行到main中间,板子做的事情 中断向量表是处理终端时函数的地址

使用特权

评论回复
24
SantaBunny| | 2023-2-11 11:47 | 只看该作者
DSP一直都是从FLASH中装载到RAM中运行的

使用特权

评论回复
25
公羊子丹| | 2025-4-6 07:36 | 只看该作者
STM32F4 启动过程从复位开始,首先会执行启动文件中的重置向量,这个时候 CPU 会从地址 0x08000000(默认的 Flash 启动地址)开始执行代码。

使用特权

评论回复
26
周半梅| | 2025-4-6 07:37 | 只看该作者
启动时,STM32F4 会根据启动配置来决定是否从 Flash 或者从其它介质(如系统内存)启动程序。在大多数情况下,它是从 Flash 中加载程序。

使用特权

评论回复
27
帛灿灿| | 2025-4-6 07:39 | 只看该作者
启动后,STM32F4 会进入系统初始化流程,主要会初始化系统时钟、外设、堆栈等。在这之后,程序会跳转到 main() 函数开始执行。

使用特权

评论回复
28
童雨竹| | 2025-4-6 07:40 | 只看该作者
在启动时,系统会执行 reset_handler,这个处理函数会进行必要的初始化,然后跳转到用户编写的 main() 函数中执行应用程序。

使用特权

评论回复
29
万图| | 2025-4-6 07:41 | 只看该作者
对于 STM32F4 系列,启动文件(startup_stm32f4xx.s)中包含了 Reset_Handler,这个函数会首先执行一些基本的初始化,然后跳转到 SystemInit(),最后再跳到 main()。

使用特权

评论回复
30
Wordsworth| | 2025-4-6 07:43 | 只看该作者
如果你配置了外设初始化(比如 Flash 或者 RCC),在启动后这些外设会根据配置初始化,确保系统能正常工作。

使用特权

评论回复
31
Bblythe| | 2025-4-6 07:44 | 只看该作者
STM32F4 使用 ARM Cortex-M4 内核,启动时会初始化堆栈指针并配置中断向量表,确保中断系统正常工作。

使用特权

评论回复
32
Pulitzer| | 2025-4-6 07:45 | 只看该作者
STM32F4 启动时会执行预定义的系统初始化代码,在这过程中,它会进行外设的时钟配置、内存初始化、系统时钟配置等,最终把控制权交给用户的主程序。

使用特权

评论回复
33
Uriah| | 2025-4-6 07:47 | 只看该作者
你可以在启动文件中找到所有的中断向量和启动代码,STM32F4 启动后会根据外部中断或定时器等触发事件来执行相应的中断服务程序。

使用特权

评论回复
34
Clyde011| | 2025-4-6 07:48 | 只看该作者
如果你使用的是 STM32CubeMX 生成的代码,启动时会自动生成系统初始化代码,包括系统时钟配置和外设初始化,保证启动后的设备能够正常运行。

使用特权

评论回复
35
星闪动力| | 2025-4-7 09:59 | 只看该作者
STM32的Flash宽度通常是32位,但128位指的是数据总线宽度,与Flash本身无关。

使用特权

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

本版积分规则