CortexA53-6818开发板mmap函数内存映射对屏幕控制

操作对象 —》屏幕 —》/dev/fb0
显示屏的一些属性:
800*480像素点
每个像素点 4 个字节

操作步骤
1、打开 LCD
2、将颜色值写入LCD
3、关闭LCD

开始编写代码
编译代码 —》要想在ARM开发板上运行就需要使用 arm-linux-gcc 这个交叉编译器进行编译!!!!!
gec@ubuntu:/mnt/hgfs/share/day04/code/lcd_color$ file target_arm —》arm-linux-gcc 编译
target_arm: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV)
gec@ubuntu:/mnt/hgfs/share/day04/code/lcd_color$ file target_gcc —》gcc 编译
target_gcc: ELF 64-bit LSB executable, x86-64, version 1 (SYSV),
将编译成功的可执行文件下载到开发板运行
下载命令:
rx 你要下载的文件的名字 —》之后回车 —》传输 ----》点击发送Xmodem -->找到你的可执行文件

修改权限
	chmod 777 可执行文件名
	
运行程序
	./可执行文件名

第二种下载方式:rz下载
你们的开发板应该是没有 rz
要想使用rz 功能,需要将 rz 文件下载到 /bin

小提示:
从 开发板将文件弄到电脑上,可以使用以下命令:sz
格式:
sz 文件的路径名
sz /bin/rz

设置上传下载的路径
点击选项 —>会话选项 —》X/Y/Zmodem右边的上传/下载
上传:电脑—》开发板
下载:开发板—》电脑

修改字体 还有显示中文
点击选项 ----》会话选项 —》外观 --》。。。

中文 —》字符编码 UTF-8

#include <sys/mman.h>

void *mmap(void *addr, size_t len, int prot, int flags,int fildes, off_t off);
参数
addr —>你要映射到虚拟内存当中的某个地址上,但是一般写 NULL ,表示由系统自己分配
len —>你要映射的内存大小
prot —>协议/机制
PROT_READ │ Data can be read. │
PROT_WRITE │ Data can be written. │
PROT_EXEC │ Data can be executed. │
PROT_NONE │ Data cannot be accessed.
flags —>
MAP_SHARED │ Changes are shared. │ —>选择这个的意思是说你要操作虚拟内存就相当于操作物理内存
MAP_PRIVATE │ Changes are private. │
MAP_FIXED

fildes —>你要映射的文件对应的文件描述符
off —>偏移量,一般设置为0

返回值
成功 —》返回你映射的那块虚拟内存的首地址

int lcdfd = open("/dev/fb0" ,O_RDWR);
int pLcd = (int )mmap(NULL, 8004804, PROT_READ|PROT_WRITE, MAP_SHARED,lcdfd, 0);

memory map —>内存映射

作业:

使用 mmap 函数 显示彩虹 

编写 画点 画直线  画圆 函数 

显示自己的名字
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值