STM8启动流程详解:从 bootloader 到中断向量和main函数
需积分: 9 167 浏览量
更新于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的输入/输出功能至关重要。
301 浏览量
228 浏览量
107 浏览量
228 浏览量
120 浏览量
2015-05-12 上传

qq_25890587
- 粉丝: 0
最新资源
- VS2010环境Qt链接MySQL数据库测试程序
- daycula-vim主题:黑暗风格的Vim色彩方案
- HTTPComponents最新版本发布,客户端与核心组件升级
- Android WebView与JS互调的实践示例
- 教务管理系统功能全面,操作简便,适用于winxp及以上版本
- 使用堆栈实现四则运算的编程实践
- 开源Lisp实现的联合生成算法及多面体计算
- 细胞图像处理与模式识别检测技术
- 深入解析psimedia:音频视频RTP抽象库
- 传名广告联盟商业正式版 v5.3 功能全面升级
- JSON序列化与反序列化实例教程
- 手机美食餐饮微官网HTML源码开源项目
- 基于联合相关变换的图像识别程序与土豆形貌图片库
- C#毕业设计:超市进销存管理系统实现
- 高效下载地址转换器:迅雷与快车互转
- 探索inoutPrimaryrepo项目:JavaScript的核心应用