VMware模拟器文件控制与LCD设备文件控制(颜色显示)

目录

1、搭建开发板模拟器环境

(1)将simulator.tar.gz拷贝到虚拟机,解压

(2)在mmap_drv文件夹中打开终端

(3)编译

(4)安装生成的驱动文件

(5)在event_drv文件夹中打开终端,也一样操作

(6)启用模拟器

(7)模拟器测试(需要另外打开一个终端)

2、lcd设备文件控制(颜色显示)

(1)通过系统函数来控制lcd设备文件的流程如下

(2)lcd特性

(3)系统函数具体详解

a.打开文件open

b.写入文件write

c.关闭文件close


1、搭建开发板模拟器环境

(1)将simulator.tar.gz拷贝到虚拟机,解压

(2)在mmap_drv文件夹中打开终端

(3)编译

编译:sudo make

问题1:如果需要清除生成驱动文件,则输入以下内容

sudo make clean

再执行sudo make

问题2:如果出现sudo :make:command not found ,则进行安装即可

sudo apt install make

然后执行提示:/bin/sh:1:gcc-12:not found问题,则执行以下命令安装依赖包即可:

sudo apt install gcc g++ gcc-12-multilib g++-12-multilib

(4)安装生成的驱动文件

sudo insmod mmp_drv.ko

//删除驱动文件:sudo rmmod mmp_drv.ko

驱动模拟文件ko分为自动和手动两种模式

(5)在event_drv文件夹中打开终端,也一样操作

cd ~/Desktop/event_drv

sudo make clean ///清除文件

sudo make

sudo insmod event_drv.ko

(6)启用模拟器

cd ~/Desktop/VTSLcd

sudo ./VTSLcd

(7)模拟器测试(需要另外打开一个终端)

cd ~/Desktop/lcd_event

gcc bmp.c lcd_event_ui.c -o lcd_event_ui

sudo ./lcd_event_ui //sudo管理员权限

2、lcd设备文件控制(颜色显示)

(1)通过系统函数来控制lcd设备文件的流程如下

  • 打开文件
  • 将颜色写入到 lcd 屏幕上
  • 关闭文件

(2)lcd特性

  1. 设备名字:"/dev/ubuntu_lcd"
  2. 设备宽高(像素点、尺寸、分辨率):800*480
  3. 位深度(一个像素点所占用的大小):32位
  • 1字节=8位; 4字节=32位
  • 整个屏幕的大小=宽*高*位深度/8
  • int lcd_argb[800*480];
  1. 屏幕属性组成:

透明度(a)、红(r)、绿(g)、蓝(b)

例如:在不考虑透明度(AA)的情况下,

红色为0xAA FF 00 00,

绿色为0xAA 00 FF 00,

蓝色为0xAA 00 00 FF,

黑色为0xAA 00 00 00

(3)系统函数具体详解

a.打开文件open

// 调用open函数时前,包含以下头文件

#include <sys/types.h>

#include <sys/stat.h>

#include <fcntl.h>

// open 函数原型:声明

int open(const char *pathname, int flags);

参数列表说明

const char *pathname :即将要打开的文件的(路径/文件名字),以字符串做识别,例如,设备文件名字,"/dev/ubuntu_lcd"

int flags:权限标记(常用权限:O_RDONLY:只读, O_WRONLY:只写, O_RDWR:可读可写)

open前面的int:open的返回值数据类型:失败返回-1(失败的状态为-1),成功(非-1)则返回打开的文件的别名(整数)

eg:

b.写入文件write

// 调用write之前需要包含以下头文件:

#include <unistd.h>

// write的函数原型:声明

ssize_t write(int fd, const void *buf, size_t count);

int fd:已经打开的文件的别名(整数)

const void *buf:缓冲区,容器,即将要写入文件的数据

size_t count :缓冲区的大小

eg:

c.关闭文件close

// 调用close之前需要包含以下头文件:

#include <unistd.h>

// close的函数原型:声明

int close(int fd);

int fd:即将要关闭的文件的别名(整数)

eg:

close(lcd_stauts);

  • 23
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凉辰梦凡星

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值