操作对象 —》屏幕 —》/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 函数 显示彩虹
编写 画点 画直线 画圆 函数
显示自己的名字