STM8芯片启动流程解析
需积分: 10 24 浏览量
更新于2024-10-14
收藏 8KB TXT 举报
"STM8芯片启动流程及其中断向量表详解"
STM8微控制器是意法半导体(STMicroelectronics)推出的一种8位单片机,它具有高效能、低功耗的特点,广泛应用在各种嵌入式系统中。STM8的启动流程涉及到其内部的bootloader和程序存储空间的组织。
1. 启动流程:
STM8芯片在上电或复位后,会从预定义的地址0x6000处开始执行代码,这里存放的是由ST出厂时写入的bootloader。bootloader的主要任务是初始化系统,包括设置时钟、内存映射等,并将程序从非易失性存储器(通常是FLASH)加载到RAM中执行。一旦完成这些操作,bootloader会跳转到用户程序的入口地址0x8000开始执行用户代码。
a) 验证:在将FLASH中的程序加载到RAM之前,bootloader会对代码进行校验,确保数据完整无误。如果检测到错误,它可能会触发错误处理机制或者重新尝试加载。
b) 跳转:当验证成功后,bootloader会跳转到RAM中的入口地址,通常是0x82,这是用户程序的主函数开始的地方。
2. 中断向量表:
在STM8中,中断向量表是处理中断请求的关键。中断向量表包含了每个可能中断服务例程(ISR)的地址,当发生中断时,CPU会自动跳转到对应的ISR地址开始执行。中断向量表在STM8中通常位于0x8200地址开始的位置,如资源摘要信息所示。
每个中断都有一个固定的中断向量,比如`TRAP_IRQHandler`对应软件中断,`TLI_IRQHandler`对应外部顶级中断(TLI),`AWU_IRQHandler`对应自动唤醒中断等。中断向量表中的每个条目是一个函数指针,指向对应的ISR。当中断发生时,CPU会跳转到这个地址开始执行,处理中断事件。
例如,`EXTI_PORTA_IRQHandler`是GPIOA端口外部中断0的ISR地址,当GPIOA上的某个引脚发生中断时,CPU会跳转到这个地址执行中断服务程序。
在编写STM8程序时,中断向量表的定义通常在`stm8_interrupt_vector.c`文件中,程序员需要确保每个中断向量指向正确的ISR。未使用的中断向量通常设置为相同的地址,这样在未启用中断时,CPU会执行一个空操作,防止意外的中断处理。
总结来说,STM8的启动流程涉及了从ROM中的bootloader开始执行,然后加载并执行用户程序,而中断向量表则定义了如何响应系统中的各种中断事件。理解这些概念对于开发基于STM8的嵌入式系统至关重要。
123 浏览量
156 浏览量
点击了解资源详情
411 浏览量
2019-08-23 上传
2023-09-05 上传
344 浏览量
2023-09-22 上传
2023-06-10 上传