很多时候,做单片机项目,会因为性能和内存资源的限制,没办法运行一些“大型”的通用框架,这个时候,一些轻量级的软件框架有显得尤为重要了。 这里就给大家分享一款一款适合单片机裸机的开源软件框架:Zorb
1、Zorb简介Zorb Framework是一个基于面向对象的思想来搭建一个轻量级的嵌入式框架。搭建Zorb Framework的目的是为在不能运行Linux的芯片上快速开发应用,不用反复造轮子。 Zorb Framework的初步设计功能有: 1、时间系统功能zf_time 2、环形缓冲区功能zf_buffer 3、列表功能zf_list 4、状态机功能zf_fsm 5、事件功能zf_event 6、定时器功能zf_timer 7、任务功能zf_task 前6个功能,就可以实现纯事件驱动的程序,基本可以满足中小型嵌入式应用程序开发的需求。加上任务功能,是为了满足部分程序对实时性要求较高的需求。 当然,也可以将前6个功能裁剪出来,然后运行在现有的嵌入式系统上面,这样子也可以满足实时性的需求。 2、环境搭建 采用STM32F429开发板作为硬件运行环境,硬件资源用到串口1和systick,其中串口1提供调试打印功能,systick提供系统时间计数功能。 
关于硬件环境的搭建不多说,可以参照开发板提供的例程来搭建,板级初始化完成了调试串口和systick的初始化。 - /******************************************************************************
- * 描述 :硬件环境初始化
- * 参数 :无
- * 返回 :无
- ******************************************************************************/
- void BSP_init(void)
- {
- /* 嵌套向量中断控制器组选择 */
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
- /* 初始化调试串口 */
- Debug_USART_init();
- /* Systick初始化 */
- SystemTick_init();
- }
- /******************************************************************************
- * 描述 :硬件底层程序
- * 参数 :无
- * 返回 :无
- ******************************************************************************/
- void BSP_process(void)
- {
- }
3、调试 开发一个程序,最开始也最重要的是搭建调试的环境,我们采用串口1作为调试输出(printf映射),然后调试信息分为三个等级,后续上位机可以根据不同等级进行高亮提示:
|