Mstar 的Monitor 方案
开篇
最近在做一个显示器的项目,全是C,界面啥的都是用C写。完全不懂。就因为我们是搞上层android 的,所以和UI 相关的就分了过来。唉,也是没办法。为了工作,为了生活。干呗!
其实,这个项目系统就是一个单片机,我们的任务就是在这个单片机显示器上开发OSD 菜单。类似下面这样的菜单。
1. 开发工具
编译工具: keilc51
开发工具: source insight 或者sublime
代码管理: cygwin64
升级工具:ISP_Tool(v4.7.3).exe
debug 工具: MS Monitor System Tool.exe
OSD 菜单使用工具 :如下图
2. 代码结构
总代码结构:
主要代码结构:
3.编译
使用 keilc51 导入代码,然后点击编译。
编译成功后,会在Project 目录下生成bin 文件。
4.升级
编译生成bin 文件,然后使用如下工具升级:
也可以用代码辅助升级,看自己项目的需求
5.关键文件
文件 | 说明 |
---|---|
MenuTbl.h | osd 主菜单结构 |
msOsd.c | 绘制实现 |
menu.c | 绘制显示逻辑,切换菜单逻辑 |
ColorPalette.c | 色盘 |
LoadCommonFont.c | load font |
CommonFont.h | font 数据位置 |
MenuFunc.c | 功能函数实现 |
Global.h | 全局变量,font 起始位置,坐标定义 |
MenuStrProp.c | 字符串font 读取 |
KeyPad.c | 按键处理 |
… |
6.debug 工具
右边是log 输出的窗口。
7. 踩过的坑
- 使用windows 拉代码编译,千万不要使用你的linux 拉完代码,然后再从windows 映射到你的linux 代码上,这样编译升级出来的是有问题的。最好使用cygwin64 在windwos 上直接拉代码,然后修改,提交,push。
- mstar 显示器,说白了就是一个单片机,内存有限,请注意加载的代码长短以及资源font的大小。