1 TMF框架简介
TMF(Tasks Managed Framework)是笔者在多年项目实践过程中,总结出来的一种单片机开发框架。主要目标是对系统实行模块化管理,对多个任务模块的执行函数进行统一调度管理,既有利于实现“高内聚低耦合”,提高系统可靠性,同时也为任务处理带来极大便利。主要功能如下:
(1)任务管理:当系统需要执行某个任务时,只须设置该任务结点的执行状态字,就可以由管理程序完成任务的执行。
(2)自定义任务阻塞:分全局阻塞、同类型指令阻塞和不阻塞三种。在系统上电初始化时,某些设备在初始化成功前,是不能执行其它任务的(如4G模块在初始化成功前,不能往服务器发数据),这时应进行全局阻塞。 如果有些任务属于同一类型,但由于对某设备的独占性,或者执行有先后顺序要求,在前一条任务执行结果返回之前,后一个任务不能执行,这时可进行同类型任务阻塞,系统将越过后续同类型任务,并继续执行其它类型任务。
(3)任务自动重发:在交互系统中,如果指令发出后在规定时间内,没有收到响应,则自动重发,直到达到最大执行次数。
(4)自定义响应检测:能够根据项目实际需求打开本地或远端响应检测。例如,直接和单片机串口相连的芯片或模块,如果存在应答交互,则应打开为本地响应检测; 如果和远程服务器存在应答交互,则应打开远程响应检测。有些模块同时需要打开本地响应检测和远程响应检测,如4G模块等。
(5)自定义远程连接状态检测:如果某些指令需要和远程服务器进行通讯,在指令执行前,要对连接状态进行判断; 其它指令则无需对连接状态进行检测。
(6)自定义指令目标函数入口:可同时指定一个或多个执行任务的目标函数入口,框架会自动按先后顺序去执行。
(7)自定义指令执行失败处理函数入口:在指令执行失败后,如果需要时行善后处理,应指定处理函数入口。
(8)多任务时间片管理:每个任务设定相同或不同的执行时间间隔。相比传统延时函数,能够提高系统的执行效率。相邻任务之间可能存在相同或不同延时需求,如4G模块指令响应时间为300ms,因此相邻两条指令间隔不能小于300ms。如果直接延时300ms,势必影响到其它任务的响应速度,降低单片机总体执行效率。
持续更新中,敬请期待。