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;
      }
    

关于中断

  1. 中断函数定义在startup_xxx.s 中,统一放在向量表中,当中断发生时,MCU 处理器会自动调用对应的中断处理函数,此时main()函数会暂停当前处理并保留现场,待处理完中断后继续执行。
  2. 中断函数无返回值,无参数。
    中断向量表