电子产品量产工具-软件架构-显示系统
该笔记为百问网韦东山老师免费课程学习过程的整理,学习过程中,软件架构思想很重要,所以在每学习完一个单元后悔整理一下。由于韦老师在授课过程中的函数名称和变量命名时不太直观,所以我就自己根据软件分离来重新对函数命名。
软件架构
整体软件架构
该课程整体的软件架构:
共有三层结构,最后一层是和硬件相关的Driver层。
中间层是基于Driver层抽象出的软件逻辑层,向上提供与硬件无关的功能函数接口,向下对Driver层接口封装抽象。
最上层是应用层,实现用户级别的软体功能。
简单的说,应用层是研发总监,中间层是主管/部门经理,底层是干货的码农兄弟们。
显示系统软件架构
disp_manager.c是主管的角色,他知道手下每个码农兄弟能做什么,然后以领导化的语言汇总抽象之后向上层的研发总监报告。那么他是怎么知道下面各码农能做什么呢?当然是靠各位码农兄弟们向这位主管报告了!
framebuffer.c作为码农兄弟的角色,他们会向主管们报告自己是谁,能干嘛?在入职的时候他们会填写表格信息(就是g_tFramebufferOpr),上交给主管,通过fb_framebufferInit()向主管注册了自己。主管在用到相应的功能时就会叫对应的码农兄弟去干活,并且会把一些要求的参数给到这位码农兄弟。码农兄弟接到之后,运用他多年修炼的C+V功力去完成任务,并且把结果告诉主管。
数据结构抽象
数据结构抽象是非常重要的,在项目初期架构师规划好的数据结构会使代码更加健壮。
数据结构抽象可以理解为是一个公司的各种规章制度,各种表格。有全公司的,也有各部门的,也有各码农为了干活方便自己定义的。
include/disp_manager.h中定义了三个数据结构:
typedef struct disp_region
typedef struct disp_dispbuff
typedef struct disp_oper
便于参数在Driver层和中间层间互传。
===========
测试程序
这里测试程序disp_test也就是应用层了,角色是研发总监。
void lcd_put_ascii(int x, int y, unsigned char c)
int main(int argc, char **argv)
从上到下的函数调用举例如下:
电子产品量产工具-软件架构-显示系统相关推荐
- 项目-电子产品量产工具
项目框架 一.显示设备 disp_manager.c 存在着一个链表.链表中存放在底层设备节点的指针,通过这个链表中的指针来控制底层的 设备,里面有很多控制设备节点的函数 frambuffer.c ...
- ubuntu 串口调试工具推荐_升级版全系列视频第一个项目电子产品量产测试与烧录工具...
第一章 前言 温馨提示:本文共10111字,预计阅读时间26分钟. 之前说过要开源100ASK_IMX6ULL批量测试GUI: 100ask_imx6ull批量测试神器即将开源 ,今天说到做到免费开源 ...
- 电子量产工具:输入系统-输入管理单元测试
软件总框图: 输入管理单元测试 添加input_test.c,内容如下 #include <sys/mman.h> #include <sys/types.h> #includ ...
- 慧荣SMI SM32X量产工具G1219 图文教程.恢复方法
第一步:先用ChipGenius芯片检测工具检测您的U盘信息以便查找合适的量产工具: 第二步:根据ChipGenius检测的结果 找到合适的量产工具: 第三步:点击Scan USB按钮扫描一下就可以 ...
- 【电子量产工具】1.显示系统
文章目录 前言 一.显示系统分析 二.封装显示结构体 三.底层 Framebuffer 四.显示管理层 五.测试程序 实验效果图: 总结 前言 最近看了 电子量产工具 这个项目,本专栏是对该项目的一个 ...
- 【电子量产工具】6. 业务系统
文章目录 前言 一.业务系统分析 二.处理配置文件 三.生成界面 四.根据输入事件找到按钮 五.业务系统总流程测试 测试效果: 总结 前言 最近看了 电子量产工具 这个项目,本专栏是对该项目的一个总结 ...
- 【电子量产工具】4. UI系统
文章目录 前言 一.UI界面分析 二.结构体描述按钮 三.按钮初始化 四.默认绘制按键事件函数 五.默认按下按键事件函数 六.测试程序 实验效果 总结 前言 最近看了 电子量产工具 这个项目,本专栏是 ...
- 惊心动魄修复U盘【另附U盘量产工具】(显示文件格式为RAW 需要格式化)
序 昨天把一个8G的U盘借给同事,结果今天早上来,她和我说U盘打不开要格式化了,因为之前遇到这样的问题,也帮同事们弄过,所以满怀信心安慰MM说,没事的,结果按照以前的办法失效了..拿到自己的电脑试了好 ...
- 方便的U盘量产工具不刻盘装系统
2019独角兽企业重金招聘Python工程师标准>>> 可以把U盘模拟成usb-cdrom,iso文件弄到这个cdrom里面,在能usb启动的机器上设好usb-cdrom启动就可以利 ...
最新文章
- 在 Azure 中的 Linux VM 上创建 MongoDB、Express、AngularJS 和 Node.js (MEAN) 堆栈
- 如何不用重启在CentOS 7/ RHEL 7虚拟机中添加一块新硬盘
- PyPI又双叒叕发现恶意软件,能盗取信用卡还有后门程序
- mac睡眠快捷键_告别Mac新手,MacOS电脑高手不得不会的10个使用技巧!
- jfinal框架中后台获取前端传递的参数
- 概率dp——处理分母为0的情况hdu3853
- 【Linux网络编程】并发服务器的三种实现模型
- 网络协议入门(OSI七层和TCP/IC四层协议)
- android键盘输出增加按键码
- verdi中波形怎么看间距_热血传奇:怎么看传奇中的“首充”?
- zblog php获取文章的第一张图片,zblog 获取文章图片作缩略图的几种方式
- Web Server 配置及上传文件
- Linux下修复U盘坏块,快速修复U盘坏块的方法
- 官方验证!雨林木风 Ghost XP SP3 装机版 ylmf_xp3_yn9.8 !!附:官方全部MD5!
- 彻底解决Python包下载慢问题
- 5G手机会给我们带来什么样的变化
- linux美元符号切换为井号,struts2 (# % $)井号,百分号,美元符号的含义和使用方法举例...
- Android手游3d模型导出,楚留香手游3D模型怎么提取 提取教程
- odoo 重写unlink方法
- java后台地址(省,市,区)、姓名、手机号算法智能识别