实时嵌入式系统的软件一般由C语言编写,程序结构基本上都是这样的:
// 主程序
int main(void)
{
init(); // 初始化
while(1){
tick(); // 业务逻辑
}
return 0;
}
// 计时器
static unsigned int g_timer_tick_cnt = 0;
// 时钟中断回调
void isr_timer(){
g_timer_tick_cnt += 1;
}
// IO中断回调
void isr_can_io(){
// CAN总线通信
}
void isr_uart_io(){
// 串口通信
}
本文主要介绍如何使用面向对象的思想,用C构造一个模块化的程序。这个程序主要包括(1)基础模块的封装,包括通讯协议、传感器、步进电机等;(2)任务状态机的设计,并以配置数据驱动的方式实现业务流程。(3)可视化的流程配置工具,以及配套的调试平台搭建。最终,在嵌入式系统上运行的程序由C编写,开发者通过json定义具体的业务流程之后,由一个Python程序自动生成C语言的配置数据。
// 未完待续....