一、相关知识模块
1、RTOS & FreeRTOS
(1) RTOS 实时操作系统(Real Time Operating System)
是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。
大体上,实时操作系统(RTOS)要求:
1) 多任务
2) 处理能被区分优先次序的进程线
3) 一个中断水平的充分数量
特征:
1)高精度计时系统
2)多级中断机制
3)实时调度机制
(2)FreeRTOS 一个迷你的实时操作系统内核
功能包括:
任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。
由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。相对μC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行。
(3) 裸机系统( 轮询处理事件 )
单片机是裸机,RTOS是操作系统;
轮询系统:裸机编程时,先初始化好相关的硬件,然后让主程序在一个死循环里顺序做各种事情。
前后台系统(在前台中断,在后台无限循环):在轮询的基础上加入了中断。
2、Little VGL (LVGL)图形库
LVGL是一个开源图形库,提供完善的GUI开发组件,具有易于使用的图形元素,绚丽的界面和占用内存低等特点。
LittlevGL用C语言编写,以实现最大的兼容性(与C ++兼容),模拟器可在没有嵌入式硬件的PC上启动嵌入式GUI设计。
LVGL官网:https://littlevgl.com/
特点:
- 强大的构建块按钮,图表,列表,滑块,图像等
- 带有动画,抗锯齿,不透明度,平滑滚动的高级图形
- 各种输入设备的触摸板,鼠标,键盘,编码器等
- 多显示器支持,即同时使用更多的TFT和单色显示器
- 支持 UTF-8编码的多语言
- 完全可定制的图形元素
- 独立于任何微控制器或显示器使用的硬件
- 可扩展以使用很少的内存(80 kB闪存,12 kB RAM)进行操作
- 操作系统,支持外部存储器和GPU,但不是必需的
- 单帧缓冲区操作,即使具有高级图形效果
3、蓝牙协议栈
蓝牙技术是SIG (Special Intersted Group) 定义的一组协议的规范,是一种无线数据与数字通信的开放性规范,它以低成本、近距离无线连接为基础,为固定与移动设备建立了一种完整的通信方式和技术,允许遵循规范的蓝牙应用应用能够进行相互间操作。蓝牙分为传统蓝牙、高速蓝牙、低功耗蓝牙(BLE),是物联网常见无线应用通讯协议之一。
二、开发环境和工具
1、开发环境
硬件:
BlueX_BX8188_SmartWatch_DVK_V4.0开发板,
表盘屏幕,J_Link V9 (用于烧录),
软件:keil5,MING
2、学习教程:
环境搭建、屏幕适配、添加按钮驱动、使用图片资源包、制作图片资源包、制作开机界面、列表菜单、页面跳转、显示二维码和文字、快速生成page、画表针、画进度条、画选择控件、添加弹窗功能、实现自动息屏。
三、遇到的问题
1、代码连接烧录失败
原因:缺少9.0版本以上的J_Link器件;