ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Cortex-M3:为什么启动文件中常见 __Vectors 和 Reset_Handler 这些命名?

2026/8/5 18:31:43 拓冰建站 浏览量
Cortex-M3:为什么启动文件中常见 __Vectors 和 Reset_Handler 这些命名? 难度:★本文首发于我的嵌入式技术号「OneChan讲Soc嵌入式」,未经授权禁止转载。打开任何一个 Cortex-M3 的启动文件,你第一眼看到的多半是这些名字:__Vectors DCD __initial_sp DCD Reset_Handler DCD NMI_Handler DCD HardFault_Handler再看分散加载文件(.sct):*.o (RESET, +First)链接器生成的符号:Image$$ARM_LIB_STACK$$Base这些名字有一个共同点:它们不是指令集规定的,不是硬件强制的,但你几乎在所有工程里都能看到一模一样的拼写。为什么?因为这是 ARM 生态数十年演化出的一套“约定”。它不是法律,但违背后的代价,和违法一样严重。今天这篇文章,就来拆解启动文件中命名约定的来龙去脉,看看“约定优于配置”这个软件工程原则,是怎么在底层汇编世界里扎根的。一、先做一个实验:把名字改掉会怎样?我们大胆地把启动文件里的所有标准名字换成自定义的。