STM8启动流程详解:从 bootloader 到中断向量和main函数
需积分: 9 45 浏览量
更新于2024-09-14
1
收藏 88KB DOC 举报
STM8启动流程是一个关键的过程,对于理解和开发基于STM8微控制器的项目至关重要。STM8是一款低功耗、精简的8位微控制器,其启动流程涉及多个步骤和特定的内存区域。以下是对STM8启动流程的详细解析:
1. **Bootloader启动**:
STM8的启动始于ROM中的bootloader,它位于0x6000地址处。bootloader负责加载预编程的固件到微控制器的内部Flash存储器。
2. **从0x8000地址转移**:
一旦bootloader完成其任务,程序会从0x8000地址(内部Flash的起始地址)开始执行,这个地址之后的区域是用户可编程的软件部分。这是软件设计者可以控制和自定义代码的起点。
3. **中断向量表**:
0x8000地址处存放了中断向量表,其中包含了各个中断处理函数的地址。当STM8遇到中断时,程序会自动跳转到相应中断向量地址对应的函数执行。例如,'0x82'是内部中断指令,处理STM8的复位中断。
4. **复位中断与main函数**:
STM8的复位中断是启动过程的关键,它定义在`stm8_interrupt_vector.c`文件中,如 `(void@near(*)())0x8200, _stext, /* RESET */`。复位后,程序会首先调用`_stext`函数,这个函数通常就是`main()`函数的入口点,标志着应用程序的正式开始。
5. **中断处理函数**:
向量表中还包括其他中断处理函数,如`TRAP_IRQHandler`(陷阱中断)、`TLI_IRQHandler`(外部顶层中断)、`AWU_IRQHandler`(自动唤醒中断)等,它们分别处理不同的硬件事件。这些函数都在`0x8200`地址之后。
6. **外部中断**:
EXTI(外部中断控制器)用于处理来自GPIO引脚的外部信号,如EXTI_PORTA_IRQHandler和EXTI_PORTB_IRQHandler分别对应GPIOA和GPIOB的中断。
总结来说,STM8启动流程包括bootloader引导、内存地址转移、中断向量表的使用以及一系列中断处理函数的执行。理解这些步骤有助于开发者编写高效、稳定的STM8应用,并且熟悉中断处理机制对于正确配置和利用STM8的输入/输出功能至关重要。
290 浏览量
223 浏览量
2022-09-24 上传
223 浏览量
119 浏览量
648 浏览量
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
qq_25890587
- 粉丝: 0
最新资源
- 脱粒机Mod:优化RAM分配提升游戏体验
- SParse: 大规模日志文件高效解析工具
- CC3D电缆摄像机控制器项目发布
- 易语言实现软件后台自动下载与安装技术源码
- Qt实现获取当前屏幕分辨率的方法
- ShaderLab技术在操场渲染效果中的应用
- Apache+PHP+MySQL环境快速搭建工具Appserv-win32介绍
- 酷派F1手机USB驱动下载与安装指南
- 跨平台JavaScript小部件集 - 适用于各种开发环境
- 易语言实现文本数字字母混合检测方法
- SwiftForms:自定义表格与单元格的高效库
- Go语言编程挑战:advent-of-code解析
- 幼儿园财务校务管理系统源码解析
- CintaNotes v3.6.0笔记管理软件高效实用操作指南
- 掌握函数操作,轻松实现字符串分离技巧
- 基于MyEclipse和Struts2的用户注册管理系统