/***************************************************** *============================================================================ * HISTORY * Below this line, this part is controlled by TSTS. DO NOT MODIFY!! 伪时间片嵌入式平台(Task Step by Step Turn by Turn Structure,简称TSTS) *============================================================================ ****************************************************************************/ #ifdef D_reame_first_before_use_TTSS //任务命名规则: // 1:第一层 /// 0驱动芯片级 flash /// 1芯片应用级 save /// 2任务应用级 jilu_save // // 2:第二层/flash/i2c/7290/等各类芯片 // 3:任务序号/不同的芯片/ // 命名规范 1,函数命名规范 D_xxxx 宏定义 Lx_driver_function | | | | | |-函数功能 | | | |-驱动器件名称 | |-第几层的函数 第几层的函数: LD 为了兼容和易读 定义的宏定义 基本上和寄存器或者管脚打交道的 L0 基本上和寄存器或者管脚打交道的函数 L1 基本上和寄存器或者管脚打交道的函数 L2 调用L1的函数 L3 调用L2的函数 头函数的引用原则: 高Layer调用低Layer 设计模式 :每个设备或者任务都有自己的属性 程序是由多个流程组成: 1,中断类的的内置特殊流程,由cpu内核调度 2,底层驱动级别的流程,简单的直接就是多个函数调用即可,复杂的需要专门写流程实现,甚至需要和中断类的流程相互配合 3,协议通讯,驱动模式等复杂驱动的流程,例如2.4g模块的不同模式设置下的数据流控制流程 3,功能实现的应用级别的流程,在设备模式等设置好的前提下,主要实现应用层次的工作, 多流程工作要点 : 需要画多流程并行的流程图,并结合数据流. update by cc @20220307 clib/clib.c: 公用的函数 和硬件无关 放置串行模式(串口等其他通讯总线类的输出)输出的函数, 一些覆盖模式输出的(lcd等固屏输出的)的也可使用 void Lc_print(void (*L0pf_send_uc)(char ww), char *dat,...) ----------------------------------------------------------------------------------------- app asp bsp debug ----------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------- tpc/: 接收到的数据放入到指向特定协议的缓存中,和协议的格式有关 一般分为 标头式或者标尾式 公用的串口通讯定义 struct _s_uart_rec_ 的公共协议包(关键的结构体)的声明------struct _s_uart_rec_ void L1_uart_2buf(struct _s_uart_rec_ *p)串行数据保存到指向特定协议的缓冲中 -------------------------------------------------------------------------------------------- msp/uartx.c 底层代码 和cpu相关 缓存发送也放在里面 L0_UART0_Init UART0_IRQHandler L0_Usend_uc------UserDef -------------------------------------------------------------------------------------- 简单外设 app: call readfunc///use val bsp: drivera readfunc+val 复杂外设 app: send massage --use val2 asp: chain filter average 算法 一直执行handdle +val2 bsp: drivera readfunc+val nb : at指令长度 2--32 *a = "dfasdfasdf" *b = "dfasdfa4456567sdf" ff 33 ff "dfasdfasdf" "dfasdfa4456567sdf" 0d 0a send() { send head send a send b send tail尾巴 } ******************************************************************************/ #endif