STM8芯片启动流程解析

需积分: 10 19 下载量 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的嵌入式系统至关重要。
panxiang1011
  • 粉丝: 3
  • 资源: 8
上传资源 快速赚钱