通过内存映射的方式向lcd屏幕输出几个圆
/*************************************************
*
* file name:color.c
* author :momolyl@126.com
* date :2024/05/11
* brief :通过内存映射的方式向lcd屏幕输出几个圆
* note :None
*
* CopyRight (c) 2024 momolyl@126.com All Right Reseverd
*
**************************************************/
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/mman.h>
int main(void)
{
int lcd_fd = open("/dev/fb0", O_RDWR);
if (-1 == lcd_fd)
{
printf("open lcd faild\n");
return -1;
}
int *lcd_mmap = (int *)mmap(
NULL,
800 * 480 * 4,
PROT_READ | PROT_WRITE,
MAP_SHARED,
lcd_fd,
0);
int x = 350, y = 300, r = 50;
int x1 = 100, y1 = 100, r1 = 20;
int x2 = 600, y2 = 260, r2 = 70;
for (int i = 0; i < 800 * 480; i++)
{
if (((i / 800) - y) * ((i / 800) - y) + ((i % 800) - x) * ((i % 800) - x) <= r * r)
{
lcd_mmap[i] = 0x00CCFFFF;
}
else if (((i / 800) - y1) * ((i / 800) - y1) + ((i % 800) - x1) * ((i % 800) - x1) <= r1 * r1)
{
lcd_mmap[i] = 0x00FFCCE5;
}
else if (((i / 800) - y2) * ((i / 800) - y2) + ((i % 800) - x2) * ((i % 800) - x2) <= r2 * r2)
{
lcd_mmap[i] = 0x00CCCCFF;
}
else
lcd_mmap[i] = 0x00ffffff;
}
write(lcd_fd, lcd_mmap, 800 * 480 * 4);
return 0;
}
运行结果

通过内存映射的方式向lcd屏幕输出几个圆的更多相关文章
- linux mmap 内存映射【转】
转自:http://blog.csdn.net/xyyangkun/article/details/7830313 [-] mmap vs readwritelseek mmap vs malloc ...
- JAVA I/O(三)内存映射文件
<Java编程思想>中对内存映射文件有详细的介绍,此处仅做简单记录和总结.内存映射文件允许创建和修改因为太大而不能放入内存的文件. 1. 内存映射文件简单实例 import java.io ...
- ZT 匿名内存映射
mmap函数使用 分类: Linux/Unix C/C++ 2008-01-22 17:03 6089人阅读 评论(1) 收藏 举报 unix编程null网络 UNIX网络编程第二卷进程间通信对mma ...
- C++中使用内存映射文件处理大文件
引言 文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理的函数和类,常用的有Win32 API的CreateFile().WriteFile().ReadFile() ...
- mmap内存映射
http://blog.csdn.net/kongdefei5000/article/details/70183119 内存映射是个很有用,也很有意思的思想.我们都知道操作系统分为用户态和内核态,用户 ...
- C语言 mmap()函数(建立内存映射) 与 munmap()函数(解除内存映射)
mmap将一个文件或者其它对象映射进内存.文件被映射到多个页上,如果文件的大小不是所有页的大小之和, 最后一个页不被使用的空间将会清零.mmap在用户空间映射调用系统中作用很大. 条件 mmap()必 ...
- 共享内存之——mmap内存映射
共享内存允许两个或多个进程共享一给定的存储区,因为数据不需要来回复制,所以是最快的一种进程间通信机制.共享内存可以通过mmap()映射普通文件 (特殊情况下还可以采用匿名映射)机制实现,也可以通过sy ...
- linux mmap 内存映射
mmap() vs read()/write()/lseek() 通过strace统计系统调用的时候,经常可以看到mmap()与mmap2().系统调用mmap()可以将某文件映射至内存(进程空间), ...
- linux 内存映射-ioremap和mmap函数
最近开始学习Linux驱动程序,将内存映射和ioremap,mmap函数相关资料进行了整理 一,内存映射 对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器 ...
- Windows进程间通信--共享内存映射文件(FileMapping)--VS2012下发送和接收
之前以为两个互不相关的程序a.exe b.exe通信就只能通过网络,人家说可以通过发消息,我还深以为不然,对此,我表示万分惭愧. 之前课本上说的进程间通信,有共享内存.管道等之类的,但没有自己操刀写过 ...
随机推荐
- HDU2062题解 01背包而已
RT,我就不解释了,题目连接http://acm.hdu.edu.cn/showproblem.php?pid=2602. 初学01背包的人可以做做 #include<iostream> ...
- 图最短路径之Floyd
Floyd Warshall Algorithm 算法参考地址:Floyd Warshall Algorithm | DP-16 - GeeksforGeeks 算法的简介 Floyd 用于求解所有对 ...
- 高通Android UEFI中的LCD分析(2):关键的函数
# 高通Android UEFI中的LCD分析(2):关键的函数 背景 在启动流程分析中,看到了几个经常出现的函数,这里实际分析一下有关的实现.以搞清楚高通做了什么,以及我们能做什么. 重要函数 MD ...
- selenium的各种操作
import time from selenium.webdriver import Edge from selenium.webdriver.common.by import By from sel ...
- lumen、laravel 环境问题汇总
框架报500 1.chmod 777 -R storage 将日志目录权限设置下. 2.修改fastcgi,将代码目录包含进去. fastcgi_param PHP_ADMIN_VALUE " ...
- SSH免登陆要点
A要登录到B,则A把自己的公钥发送给B. 涉及到RSA加密:非对称算法,即用一把公钥加密,就必须用一把对应的私钥解密:用私钥签名,就必须用公钥解签名. 签名:为了身份的防篡改. 加密:为了数据的安全性 ...
- 关于ComfyUI的一些Tips
关于ComfyUI的一些Tips 前言: 最近发的ComfyUI相关文章节奏不知道会不会很快,在创作的时候没有考虑很多,想着把自己的知识分享出去.后台也看到很多私信,有各种各样的问题,这是我欠缺考虑了 ...
- 薅 AWS 羊毛的船新方式,以 ChatBot 为例
还在担心一年免费服务器到期后该怎么办?(Solo社区 投稿) 网上绝大多数薅 AWS 羊毛的教程都是在教大家如何申请创建一年免费的 VPS,太 OUT 了!就问一个问题,一年到期了那咋办? 其实,除了 ...
- CF301B Yaroslav and Time 题解
CF301B 这不最短路的板子题吗? 思路 用 \(ak\) 代表走到第 \(k\) 点时的可恢复单位时间的值. \(i\) 到 \(j\) 的距离是 \(\left ( \left | xi-xj ...
- Known框架实战演练——进销存业务单据
本文介绍如何实现进销存管理系统的业务单据模块,业务单据模块包括采购进货单.采购退货单.销售出货单.销售退货单4个菜单页面.由于进销单据字段大同小异,因此设计共用一个页面组件类. 项目代码:JxcLit ...