嵌入式实训(改)ppt课件.pptx

上传人:小飞机 文档编号:1686142 上传时间:2022-12-14 格式:PPTX 页数:21 大小:4.49MB
返回 下载 相关 举报
嵌入式实训(改)ppt课件.pptx_第1页
第1页 / 共21页
嵌入式实训(改)ppt课件.pptx_第2页
第2页 / 共21页
嵌入式实训(改)ppt课件.pptx_第3页
第3页 / 共21页
嵌入式实训(改)ppt课件.pptx_第4页
第4页 / 共21页
嵌入式实训(改)ppt课件.pptx_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《嵌入式实训(改)ppt课件.pptx》由会员分享,可在线阅读,更多相关《嵌入式实训(改)ppt课件.pptx(21页珍藏版)》请在三一办公上搜索。

1、基于嵌入式Linux智能色盲检测系统的报告书,电气工程1401小组成员:谢 富 (负责程序编写及调试)彭思源(负责PPT的制作)2017.12.25-12.29,制作项目技术背景,嵌入式系统:是一种专用的计算机系统,作为装置或设备的一部分,从应用对象上定义就是软件硬件的综合体。以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积等严格要求的专用计算机系统。是企业电子产品生产的重要组成。,Linux:Linux操作系统是自由软件和开放源代码发展中最著名的例子。Linux 作为较早的源代码开放操作系统,将引领未来软件发展的方向。Linux的基本思想有两点:第一、一切都是文件;第

2、二、每个软件都有确定的用途,同时它们都尽可能被编写得更好。由于Linux 开放源码的特性,越来越多大中型企业及政府投入更多的资源来开发Linux。现今世界上,很多国家逐渐的把政府机构内部门的电脑转移到Linux上,这个情况还会一直持续。Linux 的广泛使用为政府机构节省了不少经费,也降低了对封闭源码软件潜在的安全性的忧虑。,开发平台,硬件开发平台:arm开发板(gec210)PC机 软件开发平台:代码编辑器(Source Insight)代码编译器(gcc)Linux操作系统(ubuntu(标准教学系统)-自带gcc编译器、开源的)虚拟机(VMware-workstation-full-10

3、.0.3- 用来运行Linux操作系统),查看,查看,查看,查看,查看,制作项目的过程,项目基本开发流程,第一天:,一、了解嵌入式实训的软硬件开发平台以及组成部分。二、用VMWARE启动Linux操作系统;熟悉Linux操作系统 - LINUX命令,编译检查判断是否是质数,素数的程序 。,第二天:,一、编写打印HELLO WORLD C语言 程序二、了解嵌入式ARM开发板(gec210)三、嵌入式LIXNU开发中的开发板(gec210)使用,四、在Linux下,用C语言进行文件操作,在开发版中绘制一个圆形图片。,第三天:,一、基于第二天绘制圆形图片的基础上,使开发板在LCD上每间隔3秒钟,分别

4、点亮红、绿、蓝三种基色。,第四天:,一、新建一个.c文件,运用内存映射的原理,将自己绘制或者下载一个宽800,高480一个图片,在LCD上显示,第五天:,一、基于在LCD显示静态图的基础上,编程实现多张图片随机显示功能!,项目,色盲检测系统项目要求:搜索目录下所有的图片名 保存到数组中,每过3秒,随机显示下一张图片。,项目实现流程,开 机,在PC上编辑程序,下载程序、图片到开发板,程序运行,关 机,头文件,项目代码分析,#include#include #include #include #include #include ,源程序,int lcd_fd;int * lcd_memary;/1

5、、打开lcd(包括打开lcd、映射)void open_lcd()/打开lcd显示屏lcd_fd = open(/dev/fb0, O_RDWR);/映射-开辟一个通道lcd_memary = (int *)mmap(NULL, /要映射的空间的首地址800*480*4, /要申请多大的空间PROT_READ|PROT_WRITE, /内容可以被读取和写入 MAP_SHARED,/共享内存lcd_fd, /要映射的文件描述符-0);,/打开bmp图片,写到lcd中-把显示图片的嗲吗封装称为一个函数-以后要画图就调用这个函数int draw_bmp(char *pathname) /pathna

6、me 要显示的图片的名int i, j; /用来做for循环的 变量 i jint color;/存储颜色的变量char blue, green, red;/暂时存储单个颜色的变量char bmp_data800*480*4 = 0;/用来存储从图片读取到的颜色数据的数组char bmp_info54 = 0;/用来存储从图片读取到信息的数组/打开图片int bmp_fd = open(pathname, O_RDWR);if(bmp_fd 0) /图片打开失败 perror(open bmp error);return -1; ,/读取54 字节的头信息 read(bmp_fd, bmp_i

7、nfo, 54);/获取图片宽度int bmp_width = bmp_info18; bmp_width |= bmp_info19 8;printf(bmp_width = %dn, bmp_width);/获取图片高度int bmp_height = bmp_info22; bmp_height |= bmp_info23 8;printf(bmp_height = %dn, bmp_height);/类型获取图片类型int bmp_type = bmp_info28; bmp_type |= bmp_info29 8;printf(bmp_type = %dn, bmp_type);/

8、读取颜色数据read(bmp_fd, bmp_data, 800*480*4);char *p = bmp_data; /用一个指针来指向存储了图片颜色数据的数组首地址-接下从这里一个字节一个字节的读取颜色数据 整合到 color中 然后写到lcd中,/3、把图片颜色数据写到lcd中for(i = 479; i =0; i-)/一共有480 行 每循环一次 就写完一行数据 for(j = 0; j 800; j+) /每一行中有800个像素点 每循环一次就写完800个 像素点 blue = *p+;/把蓝色数据暂时存储到blue变量中 green = *p+;/把绿色数据暂时存储到green变

9、量中 red = *p+;/把蓝红色数据暂时存储到red变量中/判断bmp图片是24位的还是32位的,如果是32位的就跳过透明明度 A if(bmp_type = 32)p+;/把三种颜色组合到一起color = blue | green8 | red16;/然后写到lcd中*(lcd_memary + i* 800 + j) = color;/4、关闭lcdvoid lcd_close(void)/* 取消内存映射 */munmap(lcd_memary, 800*480*4);/* 关闭LCD设备 */close(lcd_fd);,int pic_count=0;/保存所有图片的张数cha

10、r pic_name100256;/图片的名字 picname0:第0张图片的名字 int main()/打开lcdopen_lcd();DIR * d=opendir(/);if(d=NULL) perror(opendir fail);return -1;while(1) struct dirent *p=readdir(d);/*一次只能读一个目录项*/if(p=NULL) break;int len=strlen(p-d_name);/p-d_name 当前读到的目录项的文件名/p-d_name =bmp error!/*输出所有以.bmp结尾的文件名*/if(len4 ,srand(

11、time(NULL);/设置随机数的种子值while(1)draw_bmp(pic_namerand()%pic_count);/随机打开图片sleep(3);/关闭lcdlcd_close();return 0;,制作项目的过程(截图),总结,感谢学校和粤嵌公司给我们提供宝贵的嵌入式系统培训的机会。本次实习是我们第一次接触嵌入式,通过本次实习,我们学习和了解到了嵌入式在生活中的重要作用和发展过程,由于时间原因,我们学到的知识只是嵌入式学习的冰山一角,但它为我们打开了一扇通向新知识领域的窗户,提高了我们认知一个新事物的能力,熟悉Linux系统下的嵌入式编程,也积累了自己的软件编写经验。在设计的过程中,通过老师的讲解和组员的不断摸索,在提高自己动手能力的同时也培养了我们的思维能力,相信这在我们以后的学习和工作中都起着非常重要的的作用。,END,THANK YOUFOR WATCHING,ARM开发板,返回,代码编辑器,返回,代码编译器界面,返回,Linux操作系统界面,返回,虚拟机,返回,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号