MCU 裸机程序
不带操作系统的MCU 程序称为裸机程序, 程序结构与C 应用服务差不多,围绕main()函数开始,并将main函数设计为永不退出。
程序结构如下:
main 函数一直执行,处理业务逻辑,一般业务程序需要一直执行,所以main函数不能退出。
中断函数处理外部信号,及时处理业务。
#include <stdio.h> // 外部中断处理 void EXTI0_IRQHandler(void) { } int init(void) { // 初使化程序,比如时钟,硬件实例化 // 开启要要用的硬件模块 return 0; } int main(int argc,char **argv) { init(); while(1){ // 写自己的逻辑 } //此处return永远不会执行 return 0; }
关于中断
- 中断函数定义在startup_xxx.s 中,统一放在向量表中,当中断发生时,MCU 处理器会自动调用对应的中断处理函数,此时main()函数会暂停当前处理并保留现场,待处理完中断后继续执行。
- 中断函数无返回值,无参数。
