TuringUi系列(六)

**CzrTuringB:**记录一下TuringUi框架搭建过程中的学习心得和体会。

第一部分 C语言理解

第一章 代码规范

  • 变量、结构体属性、函数形参采用首字母小写的驼峰命名;

  • 函数、常量、枚举、结构体名称、文件名称、采用首字母大写的驼峰命名;

  • C文件模板:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    /**
    *@ FileName:
    *@ Author: CzrTuringB
    *@ Brief:
    *@ Time: ${date}
    *@ Requirement:
    *@ Notes:
    */
    /* Includes" "------------------------------------------------------------------*/
    /* Includes< >------------------------------------------------------------------*/
    /* Data(作用域为当前C文件)-----------------------------------------------------*/
    //-define
    //-enum
    //-struct
    //-variable
    /* Functions Declare------------------------------------------------------------------*/
    /* Functions Define------------------------------------------------------------------*/
  • H文件模板:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    /**
    *@ FileName:
    *@ Author: CzrTuringB
    *@ Brief:
    *@ Time: ${Date}
    *@ Requirement:
    *@ Notes:
    */
    #ifndef __ _H
    #define __ _H
    /* Includes" "------------------------------------------------------------------*/
    /* Includes< >------------------------------------------------------------------*/
    /* Data(对外接口)-----------------------------------------------------*/
    //-define
    //-enum
    //-typedef(类型重命名)
    //-struct
    //-variable
    /* Functions Declare(对外接口函数)------------------------------------------------------------------*/
    #endif
  • 函数注释模板:

    1
    2
    3
    4
    5
    6
    7
    8
    /**
    *@ FunctionName:
    *@ Author: CzrTuringB
    *@ Brief:
    *@ Time: Jan 13, 2025
    *@ Requirement:
    *@ Notes:
    */

第二章 C文件设计理解

**CzrTuringB:**对于单片机编程而言,通常一个外设或一个功能对应一个C文件和配套的头文件,C文件中应包含功能的实现,头文件中则应包含对外的接口,供给其他文件使用。

  • 应包含自身对应的头文件和C文件实现功能所需的其他头文件。

  • 编码过程中尽量将不必要的参数定义限制在C文件内部,对外提供必须的接口以减小命名污染。

第三章 H文件设计理解

  • 头文件中存放的是功能实现对于项目工程文件的对外接口,非必要定义不要存放在头文件中。

  • 非必要情况下不要在头文件中包含其他的头文件,以避免头文件循环包含。

第二部分 FreeRTOS理解

第一章 STM32中断和FreeRTOS中断

第一章 资源管理

**CzrTuringB:**对于某一个外设或内存空间,若A任务操作外设或更改内存数据中途发生任务的切换,而切换的任务恰好也想操作或更改同一个外设或内存空间,那么代码的执行结果是不可预测的,因此在编程过程中应采取某些手段来避免此类现象的发生。

  • 常见的资源管理方法:

    1. 临界段

第一节 临界段

  • 临界段:指被被taskENTER_CRITICAL()宏定义和taskEXIT_CRITICAL()宏定义包围的代码。任何中断或任务在执行这段代码时都不能打断,否则可能导致数据竞争、资源冲突或系统异常。