嵌入式实训改

上传人:迷**** 文档编号:143498721 上传时间:2020-08-31 格式:PPTX 页数:20 大小:4.53MB
返回 下载 相关 举报
嵌入式实训改_第1页
第1页 / 共20页
嵌入式实训改_第2页
第2页 / 共20页
嵌入式实训改_第3页
第3页 / 共20页
嵌入式实训改_第4页
第4页 / 共20页
嵌入式实训改_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《嵌入式实训改》由会员分享,可在线阅读,更多相关《嵌入式实训改(20页珍藏版)》请在金锄头文库上搜索。

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-worksta

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

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

5、int * lcd_memary; /1、打开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 dra

6、w_bmp(char *pathname) /pathname 要显示的图片的名 int i, j; /用来做for循环的 变量 i j int 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); retur

7、n -1; ,/读取54 字节的头信息 read(bmp_fd, bmp_info, 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 |= b

8、mp_info29 8; printf(bmp_type = %dn, bmp_type); /读取颜色数据 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 = *

9、p+;/把蓝色数据暂时存储到blue变量中 green = *p+;/把绿色数据暂时存储到green变量中 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、关闭lcd void lcd_close(void) /* 取消内存映射 */ munmap(lcd_memary, 800*480

10、*4); /* 关闭LCD设备 */ close(lcd_fd);,int pic_count=0;/保存所有图片的张数 char pic_name100256;/图片的名字 picname0:第0张图片的名字 int main() /打开lcd open_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_

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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 幼儿教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号