今天学到了一个咩用的知识,台式电脑的主板有的支持集成显卡和独立显卡同时输出,有的不支持。只能同时单个输出,但是可以在一个显卡上接两个显示器实现分屏。此电脑-属性-设备管理器-显示适配器
单片机在启动时一般先会启动文件,51单片机是后缀为.a文件,STM32单片机是后缀为.s文件,作用是为C/C++程序的运行准备好环境,包括内存、时钟和库函数等。
| 步骤 | 执行者 | 动作描述 | 目标 |
|---|---|---|---|
| 1 | 硬件/CPU | 上电复位 (POR) | 强制所有硬件到初始状态。 |
| 2 | 硬件/CPU | 检查 BOOT 引脚 | 确定代码的启动位置(如主 Flash)。 |
| 3 | 硬件/CPU | 读取向量表 | 确定 SP 和 PC 的初始值。 |
| 4 | 硬件/CPU | 设置初始 SP/PC | 初始化主栈指针,跳转到 Reset_Handler。 |
| 5 | 启动文件 | 调用 SystemInit() | 配置系统时钟和 Flash 等基础硬件。 |
| 6 | 启动文件 | 初始化数据段 | 从 Flash 复制 .data 到 RAM,将 .bss 段清零。 |
| 7 | 启动文件 | 调用库初始化 | 初始化 C 运行时环境和静态构造函数。 |
| 8 | 启动文件 | 调用 main() | 进入用户应用程序的起点。 |
中断向量表的作用:
1.初始化栈指针(MSP)和复位处理函数(Reset_Handler)地址。CPU从硬件执行到软件执行的基石。Cortex-M架构中,第一个(0x00)32位字是初始化堆栈指针的值,第二个(0x04)32位字是复位处理程序的入口地址。
2.提供中断(定时器、串口等)和异常(除零、访问错误等)的向量表,帮助内核找到对应的服务程序(ISR)地址并跳转执行。
3.地址重映射。可以从默认地址重定位到其他地址。
堆栈的作用:函数调用和中断处理
1.存储局部变量
2.存储函数返回地址
3.中断和异常时的现场保护
