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

[复制链接]
1856|38
liuzaiy 发表于 2023-1-9 23:36 | 显示全部楼层
这个是很深奥的问题
 楼主| pengf 发表于 2023-1-9 23:38 | 显示全部楼层

明白了,多谢大家讨论这么多哈
SantaBunny 发表于 2023-2-3 19:36 | 显示全部楼层
启动流程指复位或上电到执行到main中间,板子做的事情 中断向量表是处理终端时函数的地址
SantaBunny 发表于 2023-2-11 11:47 | 显示全部楼层
DSP一直都是从FLASH中装载到RAM中运行的
公羊子丹 发表于 2025-4-6 07:36 | 显示全部楼层
STM32F4 启动过程从复位开始,首先会执行启动文件中的重置向量,这个时候 CPU 会从地址 0x08000000(默认的 Flash 启动地址)开始执行代码。
周半梅 发表于 2025-4-6 07:37 | 显示全部楼层
启动时,STM32F4 会根据启动配置来决定是否从 Flash 或者从其它介质(如系统内存)启动程序。在大多数情况下,它是从 Flash 中加载程序。
帛灿灿 发表于 2025-4-6 07:39 | 显示全部楼层
启动后,STM32F4 会进入系统初始化流程,主要会初始化系统时钟、外设、堆栈等。在这之后,程序会跳转到 main() 函数开始执行。
童雨竹 发表于 2025-4-6 07:40 | 显示全部楼层
在启动时,系统会执行 reset_handler,这个处理函数会进行必要的初始化,然后跳转到用户编写的 main() 函数中执行应用程序。
万图 发表于 2025-4-6 07:41 | 显示全部楼层
对于 STM32F4 系列,启动文件(startup_stm32f4xx.s)中包含了 Reset_Handler,这个函数会首先执行一些基本的初始化,然后跳转到 SystemInit(),最后再跳到 main()。
Wordsworth 发表于 2025-4-6 07:43 | 显示全部楼层
如果你配置了外设初始化(比如 Flash 或者 RCC),在启动后这些外设会根据配置初始化,确保系统能正常工作。
Bblythe 发表于 2025-4-6 07:44 | 显示全部楼层
STM32F4 使用 ARM Cortex-M4 内核,启动时会初始化堆栈指针并配置中断向量表,确保中断系统正常工作。
Pulitzer 发表于 2025-4-6 07:45 | 显示全部楼层
STM32F4 启动时会执行预定义的系统初始化代码,在这过程中,它会进行外设的时钟配置、内存初始化、系统时钟配置等,最终把控制权交给用户的主程序。
Uriah 发表于 2025-4-6 07:47 | 显示全部楼层
你可以在启动文件中找到所有的中断向量和启动代码,STM32F4 启动后会根据外部中断或定时器等触发事件来执行相应的中断服务程序。
Clyde011 发表于 2025-4-6 07:48 | 显示全部楼层
如果你使用的是 STM32CubeMX 生成的代码,启动时会自动生成系统初始化代码,包括系统时钟配置和外设初始化,保证启动后的设备能够正常运行。
星闪动力 发表于 2025-4-7 09:59 | 显示全部楼层
STM32的Flash宽度通常是32位,但128位指的是数据总线宽度,与Flash本身无关。
未来AI 发表于 2025-4-8 11:56 | 显示全部楼层
通常通过优化指令集,采用DMA来加快执行速度。
xinxianshi 发表于 2025-11-6 09:40 | 显示全部楼层
虽然Flash的访问频率无法很高,但可以用位宽来处里
哪吒哪吒 发表于 2025-11-17 12:02 | 显示全部楼层
以前常用DSP,它们通常是从闪存加载到RAM中运行的。
zephyr9 发表于 2025-11-18 20:37 | 显示全部楼层
复制到RAM的方法有,GD芯片是这样操作的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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