粤嵌开发板电子相册嵌入式课程设计
电子相册系统课程设计
电子相册系统课程设计一、课程目标知识目标:1. 让学生掌握电子相册系统的基本概念,了解其工作原理与构成要素;2. 使学生了解并掌握电子相册系统的设计流程,包括需求分析、功能设计、界面设计等;3. 帮助学生掌握一定的编程知识,如HTML、CSS、JavaScript等,以便实现电子相册的基本功能。
技能目标:1. 培养学生运用所学知识进行电子相册系统设计与开发的能力;2. 培养学生独立分析问题、解决问题的能力,提高创新意识和团队协作能力;3. 培养学生运用现代信息技术手段,进行项目实践的能力。
情感态度价值观目标:1. 培养学生对电子相册系统设计与开发的兴趣,激发学习热情;2. 培养学生严谨、务实的科学态度,注重实践与理论相结合;3. 培养学生关爱他人,学会分享与合作,提高人际沟通能力。
课程性质:本课程为实践性较强的课程,结合理论知识与实践操作,培养学生的动手能力与创新能力。
学生特点:学生具备一定的计算机操作能力,对电子相册系统有一定了解,但编程能力有限。
教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的积极性与主动性,提高学生的实践能力与创新能力。
将课程目标分解为具体的学习成果,以便在教学过程中进行有效评估。
二、教学内容本课程教学内容分为五个部分,确保学生能够系统性地掌握电子相册系统的设计与开发。
第一部分:电子相册系统概述1. 了解电子相册系统的基本概念、发展历程及应用场景;2. 分析电子相册系统的功能特点与优势;3. 探讨电子相册系统的发展趋势。
第二部分:电子相册系统设计原理1. 学习电子相册系统的设计流程与规范;2. 分析电子相册系统的需求,明确设计目标;3. 了解电子相册系统的架构设计与模块划分。
第三部分:编程基础1. 学习HTML、CSS、JavaScript等编程语言的基本语法;2. 掌握DOM操作,实现电子相册的动态效果;3. 了解Photoshop等图像处理软件的基本操作,为电子相册设计提供素材。
粤嵌嵌入式实验室-电子数码相框-u盘自动挂载
粤嵌教育新浪官方微博/gecedu粤嵌教育官方网站 在ARM嵌入式Linux下,要让U盘自动挂载,可以用到mdev方式实现(mdev是busybox中的一个udev管理程序的一个精简版,它可以实现设备节点的自动创建和设备的自动挂载),下面是实现的步骤:1、确认Busybox做的根文件系统如下选项有选中:Linux System Utilities --->[*] mdev[*] Support /etc/mdev.conf[*] Support command execution at device addition/removal2、由于是利用到Linux内核的hotplug功能,要确定CONFIG_HOTPLUG=y。
3、修改根文件系统里面的etc/init.d/rcS文件,添加如下内容:mount -amkdir /dev/ptsmount -t devpts devpts /dev/ptsecho /sbin/mdev > /proc/sys/kernel/hotplugmdev -setc/fatab文件的内容为:proc /proc proc defaults 0 0sysfs /sys sysfs defaults 0 0tmpfs /var tmpfs defaults 0 0tmpfs /tmp tmpfs defaults 0 0tmpfs /dev tmpfs defaults 0 0执行 mdev -s:以 "-s" 为参数调用位于 /sbin 目录下的 mdev(其实mdev是个软链接,其作用是传递参数给 /bin 目录下的 busybox 程序并调用它)。
mdev 扫描 /sys/class 和 /sys/block 目录中所有的类设备目录,如果在类设备目录中含有名为 "dev" 的文件,且文件中包含的是设备号,则 mdev 就利用这些信息为这个设备在 /dev 目录下创建设备节点文件。
粤嵌培训课程大纲
粤嵌培训课程大纲第一部分:嵌入式系统概述1.1 什么是嵌入式系统嵌入式系统是一种特殊的计算机系统,它被设计用于执行特定的任务,并且通常被嵌入到其他设备中,如家电、汽车、医疗设备等。
本节将介绍嵌入式系统的定义、特点以及应用领域。
1.2 嵌入式系统的硬件和软件嵌入式系统由硬件和软件两部分组成。
硬件包括处理器、存储器、输入输出接口等,而软件则包括嵌入式操作系统、驱动程序和应用程序。
本节将介绍嵌入式系统的硬件和软件组成,并讨论它们的特点和作用。
1.3 嵌入式系统的开发流程嵌入式系统的开发过程包括需求分析、系统设计、软硬件开发、系统集成和测试等阶段。
本节将详细介绍嵌入式系统开发的各个阶段,并讨论每个阶段的关键任务和注意事项。
第二部分:嵌入式系统设计与开发2.1 嵌入式系统设计方法嵌入式系统设计是一个复杂的过程,需要考虑多个方面的因素,如功能需求、性能要求、可靠性、安全性等。
本节将介绍常用的嵌入式系统设计方法,如需求驱动设计、面向对象设计等,并讨论它们的优缺点。
2.2 嵌入式软件开发嵌入式软件开发是嵌入式系统开发中的重要组成部分。
本节将介绍常用的嵌入式软件开发方法和工具,如嵌入式C语言编程、汇编语言编程、开发环境搭建等,并讨论它们的适用场景和注意事项。
2.3 嵌入式硬件开发嵌入式硬件开发是嵌入式系统开发中的另一个关键环节。
本节将介绍常用的嵌入式硬件开发方法和工具,如电路设计、原理图绘制、PCB布局等,并讨论它们的原理和实践经验。
第三部分:嵌入式系统应用与案例分析3.1 嵌入式系统在智能家居中的应用智能家居是嵌入式系统的一个重要应用领域。
本节将介绍嵌入式系统在智能家居中的应用场景,如智能家电控制、安全监控系统等,并分析其设计和开发过程。
3.2 嵌入式系统在汽车电子中的应用汽车电子是另一个重要的嵌入式系统应用领域。
本节将介绍嵌入式系统在汽车电子中的应用,如车载导航系统、发动机控制系统等,并讨论其技术原理和发展趋势。
粤嵌科技课程设计
粤嵌科技课程设计一、教学目标本课程旨在通过粤嵌科技的学习,让学生掌握嵌入式系统的基本概念、原理和应用,培养学生的动手实践能力和创新思维。
具体的教学目标如下:知识目标:学生能够理解嵌入式系统的基本原理,掌握C语言编程,了解常见嵌入式处理器和开发平台。
技能目标:学生能够使用粤嵌科技开发板进行程序设计,进行简单的硬件接口编程,实现一些基本的嵌入式系统应用。
情感态度价值观目标:通过课程的学习,学生能够培养对嵌入式技术的兴趣,增强解决实际问题的信心和能力,提高创新意识和团队协作能力。
二、教学内容本课程的教学内容主要包括嵌入式系统的基本概念、C语言编程、嵌入式处理器和开发平台的使用。
具体的教学大纲如下:1.嵌入式系统概述:介绍嵌入式系统的定义、特点和应用领域。
2.C语言编程:学习C语言的基本语法和编程技巧,掌握嵌入式系统编程的基本方法。
3.嵌入式处理器:介绍常见的嵌入式处理器,学习其架构和指令系统。
4.开发平台的使用:学习如何使用粤嵌科技开发板进行嵌入式系统开发。
5.实践项目:进行一些实际的嵌入式系统项目实践,巩固所学知识。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
1.讲授法:通过讲解嵌入式系统的基本概念和原理,让学生掌握相关的理论知识。
2.讨论法:通过分组讨论,让学生深入理解嵌入式系统的应用和实际问题。
3.案例分析法:通过分析一些典型的嵌入式系统案例,让学生了解嵌入式系统的实际应用。
4.实验法:通过实验操作,让学生亲手实践,提高其动手能力和创新能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备以下教学资源:1.教材:选用《嵌入式系统设计与实践》作为主教材,辅助以相关参考书籍。
2.多媒体资料:制作PPT和相关教学视频,以便于讲解和演示。
3.实验设备:准备粤嵌科技开发板和相关实验器材,以便于学生进行实验操作。
五、教学评估为了全面、客观地评估学生的学习成果,我们将采取以下评估方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估其学习态度和理解能力。
嵌入式简单课程设计教案
嵌入式简单课程设计教案一、课程目标知识目标:1. 理解嵌入式系统的基本概念,掌握其组成和功能。
2. 学习嵌入式编程的基本语法和常用指令。
3. 了解嵌入式系统的应用领域和发展趋势。
技能目标:1. 能够使用嵌入式开发环境,进行简单的程序编写和调试。
2. 学会使用嵌入式系统的输入输出接口,实现基本的功能控制。
3. 培养学生动手操作、问题解决和团队协作的能力。
情感态度价值观目标:1. 培养学生对嵌入式系统的兴趣,激发其探索精神和创新意识。
2. 增强学生的责任心和自信心,使其在嵌入式学习过程中保持积极态度。
3. 培养学生遵守实验规程,养成良好的实验习惯,注重团队合作。
课程性质:本课程为实践性较强的学科,结合理论教学和实验操作,培养学生对嵌入式系统的认识和实际操作能力。
学生特点:六年级学生,具备一定的计算机基础,好奇心强,喜欢动手实践,但注意力集中时间较短。
教学要求:注重理论与实践相结合,以学生为主体,引导他们主动探索、实践,提高解决问题的能力。
将课程目标分解为具体的学习成果,以便在教学过程中进行有效评估。
二、教学内容1. 嵌入式系统基本概念:介绍嵌入式系统的定义、组成、特点和应用领域,对应教材第一章内容。
2. 嵌入式编程基础:讲解嵌入式编程的基本语法、数据类型、运算符和常用指令,对应教材第二章内容。
3. 嵌入式系统开发环境:介绍嵌入式开发环境搭建、编译器使用和程序下载,对应教材第三章内容。
4. 嵌入式系统输入输出接口:学习嵌入式系统的GPIO、中断、定时器等接口的使用,对应教材第四章内容。
5. 嵌入式系统应用实例:分析典型的嵌入式系统应用案例,如温度控制、智能家居等,对应教材第五章内容。
教学安排和进度:第一周:嵌入式系统基本概念第二周:嵌入式编程基础第三周:嵌入式系统开发环境第四周:嵌入式系统输入输出接口第五周:嵌入式系统应用实例及实验操作教学内容注重科学性和系统性,结合教材章节安排,确保学生能够逐步掌握嵌入式系统的相关知识。
粤嵌开发板电子相册嵌入式课程设计模板
粤嵌开发板电子相册嵌入式课程设计课程设计说明书题目:电子相册课程名称:嵌入式系统学院:专业:学号:姓名:指导教师:完成日期: 6月10日目录1. 设计的工程背景 .................................................... 错误!未定义书签。
1.1 任务阐述 ...................................................... 错误!未定义书签。
1.2 任务分析 ....................................................... 错误!未定义书签。
1.3 课题项目管理计划进度表 ............................ 错误!未定义书签。
2.工程设计方案......................................................... 错误!未定义书签。
2.1 系统方案设计................................................ 错误!未定义书签。
2.2 硬件电路设计................................................ 错误!未定义书签。
2.3 软件程序设计................................................ 错误!未定义书签。
3. 方案实施................................................................ 错误!未定义书签。
3.1软件程序调试过程........................................ 错误!未定义书签。
4. 结果与结论............................................................ 错误!未定义书签。
基于嵌入式的课程设计
基于嵌入式的课程设计一、课程目标知识目标:1. 学生能理解嵌入式的概念及其在现实生活中的应用。
2. 学生能掌握嵌入式系统的基本组成部分及工作原理。
3. 学生能了解嵌入式编程的基本方法和技巧。
技能目标:1. 学生能运用所学知识,设计简单的嵌入式系统电路。
2. 学生能编写简单的嵌入式程序,实现特定功能。
3. 学生能通过实际操作,培养动手能力和团队协作能力。
情感态度价值观目标:1. 学生对嵌入式技术产生浓厚的兴趣,提高学习的积极性和主动性。
2. 学生在课程学习中,培养良好的学习习惯和探究精神。
3. 学生通过嵌入式课程的学习,认识到科技对社会发展的推动作用,增强社会责任感和创新意识。
课程性质:本课程为实践性较强的学科,旨在让学生在实际操作中掌握嵌入式技术的基本知识和技能。
学生特点:六年级学生具备一定的逻辑思维能力和动手操作能力,对新鲜事物充满好奇心。
教学要求:结合学生特点,采用项目驱动的教学方法,引导学生主动探究,注重培养学生的实践能力和团队协作精神。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 嵌入式系统概述:介绍嵌入式系统的定义、发展历程和应用领域,结合课本第一章内容,让学生对嵌入式系统有一个全面的认识。
2. 嵌入式系统硬件:讲解嵌入式系统的基本硬件组成,如微控制器、传感器、执行器等,结合课本第二章,分析各部分功能及相互关系。
3. 嵌入式系统软件:介绍嵌入式编程的基本知识,如C语言编程、汇编语言编程等,依据课本第三章,让学生掌握嵌入式程序设计的方法。
4. 嵌入式系统设计与实践:结合项目案例,引导学生进行嵌入式系统电路设计、编程和调试,参考课本第四章,培养学生动手能力和实际问题解决能力。
5. 嵌入式系统应用:分析嵌入式系统在实际应用中的案例,如智能家居、物联网等,结合课本第五章,让学生了解嵌入式技术的广泛应用。
教学安排和进度:第一周:嵌入式系统概述第二周:嵌入式系统硬件第三周:嵌入式系统软件第四周:嵌入式系统设计与实践第五周:嵌入式系统应用教学内容与课本紧密关联,确保科学性和系统性。
粤嵌讲师详解嵌入式系统
☆粤嵌讲师详解嵌入式系统嵌入式系统(Embedded system),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电气工程师协会( U.K. Institution of Electrical Engineer)的定义,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。
与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。
由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。
嵌入式系统通常进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。
嵌入式系统是用来控制或者监视机器、装置、工厂等大规模设备的系统。
国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。
事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。
嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者单片机组成。
与通用计算机能够运行用户选择的软件不同,嵌入式系统上的软件通常是暂时不变的;所以经常称为“固件”。
从20世纪七十年代单片机的出现到各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了近30年的发展历史。
嵌入式系统的出现最初是基于单片机的。
70年代单片机的出现,使得汽车、家电、工业机器、通信装置以及成千上万种产品可以通过内嵌电子装置来获得更佳的使用性能:更容易使用、更快、更便宜。
这些装置已经初步具备了嵌入式的应用特点,但是这时的应用只是使用8位的芯片,执行一些单线程的程序,还谈不上“系统”的概念。
最早的单片机是Intel公司的 8048,它出现在1976年。
嵌入式开发程序-电子相册
嵌入式开发程序-电子相册#include#include#include#include#include#include#include#include#include#include "double_list.h"#define WIDTH 800#define HEIGHT 480#define WHITE 0xFFFFFFFF #define BLACK 0#define RED 0xFF0000#define GREEN 0x0000FF00 #define LCD_FILE "/dev/fb0" typedef void (*FUNC)(char *);enum{UP,DOWN,RIGHT,LEFT};enum{AAA,BBB,CCC,DDD,EEE,FFF,GGG,HHH,RRR,PPP};int *plcd = NULL;void lcd_draw_point(int x, int y, int color) {*(plcd + y*WIDTH+x) = color;}void lcd_draw_bmp(char *file,int w, int h, int x0, int y0) { //打开图片int fd;fd = open(file, O_RDWR);if (-1 == fd){perror("open 1.bmp failed\n");return ;}//读取图片文件char buf[w*h*3+54];read(fd, buf, sizeof(buf));//将buf中的像素点显示在lcd上int color;int x, y;int i = 0;for (y = h-1; y >= 0; y--){for (x = 0; x < w; x++){//LCD上一个像素点的组成为ARGB//24位的BMP图片组成为BGR//将BMP一个像素点取出来char b, g, r;b = buf[54+((h-1-y)*w+x)*3];g = buf[55+((h-1-y)*w+x)*3];r = buf[56+((h-1-y)*w+x)*3];//将b g r 组成一个四字节的color(ARGB) color = r<<16 | g<<8 | b;lcd_draw_point(x+x0,y+y0,color);}}close(fd);}void lcd_draw_cmpbmp(char *file,int w, int h, int x0, int y0) { //鎵撳紑鍥剧墖int fd;fd = open(file, O_RDWR);if (-1 == fd){perror("open 1.bmp failed\n");return ;//璇诲彇鍥剧墖鏂囦欢char buf[w*h*3+54];read(fd, buf, sizeof(buf));//灏哹uf涓殑鍍忕礌鐐规樉绀哄湪lcd涓?int color;int x, y;int i = 0;for (y = h-1; y >= 0; y--){for (x = 0; x < w; x++){//LCD涓婁竴涓儚绱犵偣鐨勭粍鎴愪负ARGB //24浣嶇殑BMP鍥剧墖缁勬垚涓?BGR//灏咮MP涓€涓儚绱犵偣鍙栧嚭鏉?char b, g, r;b = buf[54+((h-1-y)*w+x)*3];g = buf[55+((h-1-y)*w+x)*3];r = buf[56+((h-1-y)*w+x)*3];color = r<<16 | g<<8 | b;if(x%4==0&&y%4==0){lcd_draw_point((x/4)+x0,(y/4)+y0,color); }}}close(fd); }int *lcd_init() {int fd;fd = open(LCD_FILE, O_RDWR);if (-1 == fd){perror("open led failed !\n");return 0;}#if 0int color[800*480];int i;for (i = 0; i < 800*480; i++)color[i] = 0xFF0000;write(fd, color, sizeof(color));#endifint *p = NULL;p = mmap(NULL, WIDTH*WIDTH*4, PROT_READ| PROT_WRITE, MAP_SHARED, fd, 0);int x, y;for (x = 0; x < HEIGHT; x++){for (y = 0; y < WIDTH; y++)*(p + x*WIDTH+y) = WHITE;}return p;int get_touch_dir(){int fd;fd = open("/dev/input/event0", O_RDWR);if (-1 == fd){perror("open event0 error!\n");return ;}int x0=-1, y0=-1, x1, y1;while (1){struct input_event ev;read(fd, &ev, sizeof(ev));if ((ev.type == EV_ABS) && (ev.code == ABS_X)){if (-1 == x0)x0 = ev.value;elsex1 = ev.value;}else if ((ev.type == EV_ABS) && (ev.code == ABS_Y)){if (-1 == y0)y0 = ev.value;elsey1 = ev.value;}if (ev.type == EV_KEY && ev.code == BTN_TOUCH && ev.value == 0) break;}int delta_x, delta_y;delta_x = abs(x1-x0);delta_y = abs(y1-y0);if (delta_y > delta_x){if (y1 < y0){printf("up\n");return UP;}else{printf("down\n");return DOWN;}else{if (x1 > x0){printf("right\n");return RIGHT;}else{printf("left\n");return LEFT;}}}int get_touch_event(){int q;int fd;fd = open("/dev/input/event0", O_RDWR);if (-1 == fd){perror("open event0 error!\n");return ;}int x0=700, y0=480, x1=0, y1=0;do{struct input_event ev;read(fd, &ev, sizeof(ev));if ((ev.type == EV_ABS) && (ev.code == ABS_X))if (-1 == x0)x0 = ev.value;elsex1 = ev.value;}else if ((ev.type == EV_ABS) && (ev.code == ABS_Y)) {if (-1 == y0)y0 = ev.value;elsey1 = ev.value;}printf("a\n");q++;}while(q<10);if (y1<200&&x1<200){printf("quit");return 100;}else{printf("not correct area");return 0;}close(fd);}int get_touch_point(int *x, int *y){int fd;fd = open("/dev/input/event0", O_RDWR);if (-1 == fd){perror("open event0 error!\n");return ;}while (1){struct input_event ev;read(fd, &ev, sizeof(ev));if ((ev.type == EV_ABS) && (ev.code == ABS_X)){*x = ev.value;}else if ((ev.type == EV_ABS) && (ev.code == ABS_Y)){*y = ev.value;}if (ev.type == EV_KEY && ev.code == BTN_TOUCH && ev.value == 0) break;}}List *get_pic_name(){List *list;list = (List *)malloc(sizeof(List));list->head = NULL;list->tail = NULL;node_insert(list, "1.bmp");node_insert(list, "2.bmp");node_insert(list, "3.bmp");node_insert(list, "4.bmp");node_insert(list, "5.bmp");node_insert(list, "6.bmp");node_insert(list, "7.bmp");node_insert(list, "8.bmp");return list;}int get_touch_area(void){int fd;fd = open("/dev/input/event0", O_RDWR);if (-1 == fd){perror("open event0 error!\n");return ;}int x0=-1, y0=-1, x1, y1;while (1){struct input_event ev;read(fd, &ev, sizeof(ev));if ((ev.type == EV_ABS) && (ev.code == ABS_X)) {if (-1 == x0)x0 = ev.value;elsex1 = ev.value;}else if ((ev.type == EV_ABS) && (ev.code == ABS_Y)){if (-1 == y0)y0 = ev.value;elsey1 = ev.value;}if (ev.type == EV_KEY && ev.code == BTN_TOUCH && ev.value == 0) break;}if (y0<120){if (x0<200){printf("aaa\n");return AAA;}else if(x0>200&&x0<400){printf("bbb\n");return BBB;}else if(x0>400&&x0<600){printf("ccc\n");return CCC;}else if(x0>600&&x0<800){printf("ddd\n");return DDD;}}else if (y0>120&&y0<240) { if (x0<200){printf("eee\n");}else if(x0>200&&x0<400) {printf("fff\n");return FFF;}else if(x0>400&&x0<600) {printf("ggg\n");return GGG;}else if(x0>600&&x0<800) {printf("hhh\n");return HHH;}}else if (y0>240){if(x0<560){printf("rrr");return RRR;}else if(x0>560){printf("autoplay");}}}void texiao1(char *file){int w=800,h=480;int x0=0,y0=0;int fd;fd = open(file, O_RDWR);if (-1 == fd){perror("open 1.bmp failed\n"); return ;}。
粤嵌开发板电子相册嵌入式课程设计
课程设计说明书题目:电子相册课程名称:嵌入式系统学院:专业:学号:姓名:指导教师:完成日期: 2017年6月10日目录1. 设计的工程背景 (2)1.1 任务阐述 (2)1.2 任务分析 (2)1.3 课题项目管理计划进度表 (3)2.工程设计方案 (3)2.1 系统方案设计 (3)2.2 硬件电路设计 (5)2.3 软件程序设计 (5)3. 方案实施 (6)3.1软件程序调试过程 (6)4. 结果与结论 (12)4.1 设计结果 (12)4.2 结论 (13)5. 收获与致谢 (14)6. 参考文献 (15)7. 附件 (16)附件1 :答辩问题回答记录表 (27)1. 设计的工程背景1.1 任务阐述设计任务:制作一个电子相册,要求每个人一种特效,结果显示在ARM开发板上。
开发平台为LINUX。
电子相册简介:以数字照片的存储和浏览为主要功能,具有内置数据存储器、USB等卡接口、强大的文件管理等特征。
背景:在市场需求上,随着数码相机的普及,作为一种以数字照片的保存、回放和浏览为核心的功能产品迎合了消费者需求,嵌入式linux的电子相册比一般电子相册更具优越性和实用性。
目前市场,目前主流电子相册软件普遍体积庞大、占用内存多、硬件要求高。
所以开发一个运行速度快,占用空间小,对硬件要求较低的功能实用的嵌入式Linux电子相册很有意义。
Linux开发优势:Linux是一种自由和开放源码的类Unix操作系统。
目前存在着许多不同的Linux,但它们都使用了Linux内核。
Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。
Linux 是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。
粤嵌开发板电子相册嵌入式课程设计
课程设计说明书题目:电子相册课程名称:嵌入式系统学院:专业:学号:姓名:指导教师:完成日期:2017年6月10日目录1. 设计的工程背景任务阐述设计任务:制作一个电子相册,要求每个人一种特效,结果显示在ARM开发板上。
开发平台为LINUX。
电子相册简介:以数字照片的存储和浏览为主要功能,具有内置数据存储器、USB等卡接口、强大的文件管理等特征。
背景:在市场需求上,随着数码相机的普及,作为一种以数字照片的保存、回放和浏览为核心的功能产品迎合了消费者需求,嵌入式linux的电子相册比一般电子相册更具优越性和实用性。
目前市场,目前主流电子相册软件普遍体积庞大、占用内存多、硬件要求高。
所以开发一个运行速度快,占用空间小,对硬件要求较低的功能实用的嵌入式Linux电子相册很有意义。
Linux开发优势:Linux是一种自由和开放源码的类Unix操作系统。
目前存在着许多不同的Linux,但它们都使用了Linux内核。
Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。
Linux 是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。
Linux是我国软件的国策,尤其是在IT行业,庞大的使用群体、开放的体系和丰富资源使得Linux将是日后普及和推广的重点。
Linux的优越性日益凸显Linux将是我们学习和工作实用的首选。
目前,很多网络技术、服务器、网络设备都是基于Linux操作系统,并且在不少时尚的手机、PDA、媒体播放器等消费类电子产品中已经广泛使用Linux作为操作系统。
在Linux软件国策的指引下,Linux已经得到很大的普及。
很多学生已经自发地通过书籍、互联网等资源学习Linux。
嵌入式应用实验报告_——电子相册
嵌入式应用实验报告——电子相册目录一.实验目的: (3)二.电子相册功能简介: (3)三.程序流程图: (3)四.中断程序: (4)五.Bmp文件的转换(888-565): (5)六.音乐文件的转换: (7)七.图像缩放: (8)八.图像显示: (8)一.实验目的:1、掌握基本的软件编程能力2、熟悉STM32F103开发板的结构二.电子相册功能简介:由两个按键(User和Wakeup)控制相片的的切换(向前或向后),由temper键控制音乐的播放与暂停。
三.程序流程图:初始化系统时钟I/O端口中断LCD显示欢迎图音频检测temper键是否按下?音乐播放状态修改四.中断程序:9_5中断相片序号变量是否溢出?溢出时序号回到第一幅序号加1按序号显示相片清除中断标志,中断返回User 键下降沿0中断相片序号变量是否溢出?溢出时序号回到第三幅序号减1按序号显示相片清除中断标志,中断返回Wakeup 键下降沿User 键连接的是G 端口的第8位,Wakeup 键连接的是A 端口的第0位,temper 键连接的是C 端口的第13位。
五.Bmp文件的转换(888-565):本实验是将bmp图转换为位图数据写进内部Flash的,采用的LCD型号为ILI9325,显示的彩色图片各通道位数为5/6/5(共两字节),而BMP格式的真彩色图片各通道位数为8/8/8(共三字节);因此为获得转换数据,在VC++6.0里编写了转换程序。
#include "stdio.h"#include "bmp.h"char readPath[]="13.bmp";char datePath[]="3_2date.txt";int bmpWidth;int bmpHeight;unsigned short biBitCount;RGBQUAD *pColorTable;unsigned char *pBmpBuf;void getdate();void changeBmp();void main(){bool bmpread(char *rbmpname);bool bmpwrite(char *wbmpname);int a=bmpread(readPath);if(!a)printf("cann't read the file!");else{changeBmp();getdate();}}void getdate(){FILE *fp=fopen(datePath,"wb");int i,j;unsigned char *p;int count=bmpWidth*bmpHeight*2;p=pBmpBuf;for(i=0;i<count/2;){for(j=0;j<15;j++){fprintf(fp,"0X%x,",pBmpBuf[2*i]|pBmpBuf[2*i+1]<<8);i++;}fprintf(fp,"0X%x,\r\n",pBmpBuf[2*i]|pBmpBuf[2*i+1]<<8);i++;}fclose(fp);printf("i=%d",i);}void changeBmp(){int i,j,k=0;unsigned char a[3];int lineByte=(bmpWidth*biBitCount/8+3)/4*4;for(i=0;i<bmpHeight;i++)for(j=0;j<bmpWidth;j++){a[0]=pBmpBuf[i*lineByte+3*j+2];a[1]=pBmpBuf[i*lineByte+3*j+1];a[2]=pBmpBuf[i*lineByte+3*j+0];a[0]=a[0]>>3;a[1]=a[1]>>2;a[2]=a[2]>>3;pBmpBuf[k]=a[2]|(a[1]<<5);k++;pBmpBuf[k]=(a[0]<<3)|(a[1]>>3);k++;}printf("k=%d",k);}六.音乐文件的转换:本实验是将wave格式音乐转换为音乐数据写进内部Flash的,wave文件采用的是RIFF格式,音频格式为PCM编码,单声道,8000HZ,128kbps;因此为获得转换数据,在VC++6.0里编写了转换程序。
粤嵌开发板电子相册嵌入式课程设计
课程设计说明书题目:电子相册课程名称:嵌入式系统学院:专业:学号:姓名:指导教师:完成日期: 2017年6月10日目录1. 设计的工程背景 (2)1.1 任务阐述 (2)1.2 任务分析 (2)1.3 课题项目管理计划进度表 (3)2.工程设计方案 (3)2.1 系统方案设计 (3)2.2 硬件电路设计 (5)2.3 软件程序设计 (5)3. 方案实施 (6)3.1软件程序调试过程 (6)4. 结果与结论 (12)4.1 设计结果 (12)4.2 结论 (13)5. 收获与致谢 (14)6. 参考文献 (15)7. 附件 (16)附件1 :答辩问题回答记录表 (27)1. 设计的工程背景1.1 任务阐述设计任务:制作一个电子相册,要求每个人一种特效,结果显示在ARM开发板上。
开发平台为LINUX。
电子相册简介:以数字照片的存储和浏览为主要功能,具有内置数据存储器、USB等卡接口、强大的文件管理等特征。
背景:在市场需求上,随着数码相机的普及,作为一种以数字照片的保存、回放和浏览为核心的功能产品迎合了消费者需求,嵌入式linux的电子相册比一般电子相册更具优越性和实用性。
目前市场,目前主流电子相册软件普遍体积庞大、占用内存多、硬件要求高。
所以开发一个运行速度快,占用空间小,对硬件要求较低的功能实用的嵌入式Linux电子相册很有意义。
Linux开发优势:Linux是一种自由和开放源码的类Unix操作系统。
目前存在着许多不同的Linux,但它们都使用了Linux内核。
Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。
Linux 是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。
智能家居课程设计粤嵌
智能家居课程设计粤嵌一、教学目标本课程旨在让学生了解和掌握智能家居的基本概念、原理和应用,培养学生对智能家居技术的兴趣和好奇心,提高学生运用粤嵌平台进行智能家居系统设计和实现的动手能力。
通过本课程的学习,学生将能够:1.描述智能家居的基本概念、分类和应用场景。
2.解释智能家居系统中各个组件的工作原理和功能。
3.运用粤嵌平台进行简单的智能家居系统设计和实现。
4.分析并解决智能家居系统设计和实施过程中遇到的问题。
5.探讨智能家居技术的发展趋势和伦理道德问题。
二、教学内容本课程的教学内容主要包括智能家居的基本概念、原理和应用,以及粤嵌平台的使用。
具体内容包括:1.智能家居的基本概念、分类和应用场景。
2.智能家居系统的主要组件及其工作原理和功能。
3.粤嵌平台的基本操作和功能。
4.智能家居系统的设计原则和实施步骤。
5.智能家居技术的发展趋势和伦理道德问题。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
具体方法如下:1.讲授法:通过讲解智能家居的基本概念、原理和应用,使学生掌握相关知识。
2.讨论法:学生就智能家居技术的发展趋势和伦理道德问题进行讨论,培养学生的思辨能力。
3.案例分析法:分析具体的智能家居系统设计案例,使学生了解实际应用和设计过程。
4.实验法:利用粤嵌平台进行智能家居系统的设计和实现,提高学生的动手能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:选用与智能家居相关的教材,为学生提供系统性的理论知识。
2.参考书:推荐学生阅读与智能家居相关的参考书籍,拓展知识面。
3.多媒体资料:制作和收集与智能家居相关的多媒体资料,如视频、图片等,增强课堂教学的趣味性。
4.实验设备:准备粤嵌平台及相关设备,为学生提供实践操作的机会。
五、教学评估本课程的教学评估将采用多元化的评估方式,包括平时表现、作业、实验和期末考试等,以全面、客观地评估学生的学习成果。
粤嵌实习报告电子相册
实习报告一、实习背景随着科技的不断发展,电子产品在生活中扮演着越来越重要的角色。
嵌入式系统作为电子产品中的核心部分,其应用范围越来越广泛。
为了更好地了解嵌入式系统及其应用,我在广东海洋大学电子与信息工程学院的指导下,参加了粤嵌嵌入式培训实习。
本次实习主要通过理论学习与实践操作,掌握了嵌入式系统的基本知识,以及如何在实际项目中应用这些知识。
二、实习内容1. 理论学习在实习过程中,我们首先学习了嵌入式系统的基本概念、硬件体系结构以及软件编程等方面的知识。
通过学习,我了解到嵌入式系统是将计算机硬件、软件和应用结合起来的一种系统,它具有体积小、功耗低、成本低、性能高等特点。
此外,我们还学习了ARM处理器、Linux操作系统、Zigbee无线通信技术等相关知识。
2. 实践操作在理论学习的基础上,我们进行了丰富的实践操作。
主要包括以下几个方面:(1)无线传感网络的搭建:通过学习Zigbee无线通信技术,我们搭建了一个无线传感网络,实现了传感器数据的采集、传输和处理。
(2)Linux环境下嵌入式编程:掌握了Linux操作系统的基本使用方法,学会了使用GCC编译器进行C语言编程,实现了简单的嵌入式程序。
(3)Linux图形开发技术:学习了Qt图形库,并利用Qt Creator开发了一个简单的图形界面应用程序。
(4)Linux系统文件IO操作:了解了文件IO的基本概念,学会了使用标准I/O 函数进行文件操作。
(5)Linux系统Framebuffer控制开发:通过学习Framebuffer技术,我们实现了一个简单的帧缓冲器应用程序。
(6)智能停车系统开发:以粤嵌实验板为基础,实现了智能停车系统的车辆识别功能、车位管理功能以及联合调试和BUG修复。
三、实习收获通过本次实习,我收获颇丰。
首先,我系统地学习了嵌入式系统的基本知识,对嵌入式系统的硬件和软件有了更深入的了解。
其次,我在实际操作中锻炼了自己的动手能力,学会了如何将理论知识应用到实际项目中。
嵌入式课程设计
嵌入式课程设计一、课程目标知识目标:1. 理解嵌入式系统的基本概念、组成原理及其在各行各业中的应用;2. 掌握嵌入式系统设计的基本流程、开发工具及相关技术;3. 了解我国嵌入式技术的发展现状及未来发展趋势。
技能目标:1. 能够运用所学知识,进行简单的嵌入式系统设计;2. 能够运用相关开发工具,进行嵌入式程序编写、调试及优化;3. 能够对嵌入式系统进行基本的故障排查和维护。
情感态度价值观目标:1. 培养学生对嵌入式技术及其实际应用的兴趣,提高学生的动手实践能力;2. 培养学生的团队协作精神,提高沟通与表达能力;3. 增强学生的创新意识,培养学生的创新能力和工程素养;4. 引导学生关注我国嵌入式技术的发展,激发学生的爱国情怀和责任担当。
课程性质:本课程为实践性较强的学科,结合学生年级特点,注重理论与实践相结合,突出培养学生的动手能力和创新能力。
学生特点:学生具备一定的电子技术、计算机编程基础,对新技术充满好奇,喜欢动手实践,但独立解决问题的能力有待提高。
教学要求:教师需采用启发式、案例式教学,结合实验操作,激发学生的学习兴趣,引导学生主动探究,提高学生的实际操作能力。
同时,注重培养学生的团队协作能力和创新精神,使学生在掌握基本知识技能的基础上,能够独立解决实际问题。
通过本课程的学习,为学生未来从事嵌入式领域相关工作奠定基础。
二、教学内容1. 嵌入式系统概述:介绍嵌入式系统的基本概念、发展历程、分类及其在各领域的应用。
教材章节:第一章 嵌入式系统概述2. 嵌入式系统硬件:讲解嵌入式系统硬件的组成、特点,重点掌握微控制器、存储器、输入输出接口等。
教材章节:第二章 嵌入式系统硬件3. 嵌入式系统软件:学习嵌入式操作系统、编程语言、软件开发环境等,了解嵌入式软件设计方法。
教材章节:第三章 嵌入式系统软件4. 嵌入式系统设计与开发:介绍嵌入式系统的设计流程、开发工具、调试方法等,使学生掌握嵌入式系统项目开发的基本步骤。
粤嵌嵌入式实验室-数码相实验步骤
none->setChecked(TRUE); onSureClick();
musicButton = new QPushButton( this, "pushButton8" ); musicButton->setGeometry( QRect( 200, 116, 80, 40 ) ); musicButton->setPaletteBackgroundColor( QColor( 210, 220, 255 ) );
/* * Destroys the object and frees any allocated resources */
Welcome::~Welcome() {
// no need to delete child widgets, Qt does it all for us }
void Welcome::languageChange() {
playtimer = new QLabel(this, "playtimer"); playtimer->setGeometry(QRect(190, 60, 140, 21)); playtimer->setPaletteBackgroundColor( QColor( 210, 220, 255 ) );
: Window( parent, name, modal, fl ) {
嵌入式系统课程设计
嵌入式系统课程设计一、课程目标知识目标:1. 理解嵌入式系统的基本概念、结构和原理;2. 掌握嵌入式系统设计流程、开发环境和编程语言;3. 学习嵌入式系统硬件、软件及中间件的相关知识;4. 了解嵌入式系统在不同领域的应用及发展趋势。
技能目标:1. 能运用所学知识进行简单的嵌入式系统设计和开发;2. 掌握使用嵌入式开发工具和调试技巧,解决实际开发中遇到的问题;3. 提高团队协作和沟通能力,能够参与嵌入式项目的设计与实施;4. 培养创新意识和实践能力,能够针对实际问题提出有效的嵌入式解决方案。
情感态度价值观目标:1. 培养学生对嵌入式系统学科的热爱和兴趣,激发学习动力;2. 增强学生的责任心和使命感,认识到嵌入式技术在国家经济发展和国防建设中的重要作用;3. 培养学生严谨、务实的科学态度,树立正确的价值观;4. 倡导合作、共享、互助的精神,提高学生的人际交往能力。
本课程针对高年级学生,在已有电子技术、计算机组成原理等基础知识的基础上,深入学习嵌入式系统相关知识。
课程性质为理论与实践相结合,注重培养学生的实际操作能力和创新能力。
教学要求以学生为主体,教师为主导,充分调动学生的积极性、主动性和创造性。
通过本课程的学习,期望学生能够掌握嵌入式系统的基础知识,具备一定的嵌入式系统设计和开发能力,为将来的职业发展和科技创新奠定基础。
二、教学内容1. 嵌入式系统概述- 嵌入式系统的定义、发展历程及分类- 嵌入式系统的特点、应用领域及发展趋势2. 嵌入式系统硬件- 嵌入式处理器、存储器、I/O接口及外围设备- 硬件设计原理及接口技术- 嵌入式硬件平台的搭建与调试3. 嵌入式系统软件- 嵌入式操作系统原理及应用- 嵌入式编程语言(C、C++、汇编)- 嵌入式软件设计方法及编程技巧4. 嵌入式系统中间件- 中间件的作用、分类及选用原则- 常用中间件的原理与应用5. 嵌入式系统设计流程与方法- 需求分析、系统设计、硬件选型、软件开发- 系统调试与测试方法- 项目管理与团队协作6. 嵌入式系统应用案例- 分析典型嵌入式系统应用案例,了解实际应用中的设计方法和技巧- 探讨嵌入式系统在不同领域的创新应用教学内容依据课程目标和学科特点进行编排,涵盖嵌入式系统的基础知识、硬件、软件、中间件及设计流程等方面,旨在帮助学生系统掌握嵌入式系统的相关内容。
嵌入式系统简明教程课程设计 (2)
嵌入式系统简明教程课程设计一、背景介绍嵌入式系统在现代生活中已经无处不在,从智能家居到自动驾驶汽车,从医疗器械到工业控制,嵌入式系统在各个领域中都扮演着关键角色。
因此,学习嵌入式系统的知识对于电子信息类专业的学生非常重要。
本课程设计的目的是为学生提供一些嵌入式系统的基本知识和一些实践经验,在培养学生对嵌入式系统的兴趣的同时,为学生今后从事相关工作提供一定的帮助。
二、课程设计内容本课程设计主要包括以下内容:1. 嵌入式系统基础知识本部分主要介绍嵌入式系统的定义和基础知识,包括嵌入式系统的概念、特点、分类、组成和发展历程等。
帮助学生了解嵌入式系统的基本概念,为后面的实践操作打下基础。
2. 嵌入式系统开发环境搭建本部分主要介绍嵌入式系统开发环境的搭建,包括开发平台的选择、开发工具的安装和配置等。
通过实践操作,让学生了解和掌握嵌入式系统的开发环境。
3. 嵌入式系统编程语言及开发本部分主要介绍嵌入式系统编程语言的选择及相关知识,以及使用常见的编程语言进行嵌入式系统的开发。
通过实践操作,让学生掌握嵌入式系统的编程技能。
4. 嵌入式系统实践项目本部分主要介绍一些嵌入式系统实践项目,让学生通过实践操作,进一步掌握和应用课程中所学的知识和技能。
例如,基于嵌入式系统的智能家居控制系统、基于嵌入式系统的智能车辆控制系统等。
三、课程设计要求1. 学生基本要求学生应具备基本的电子信息类专业知识,并掌握一定的编程能力,具有一定的创新意识和实践能力。
2. 教师指导要求教师应为学生提供相关教学资料、解答学生疑问、指导学生进行实践操作等。
并在课程设计中注重学生的实际操作能力,鼓励学生尝试创新和解决实际问题。
3. 课程设计评估要求课程设计评估应以学生的实际操作能力和创新能力为主要考核指标,包括课程作业、实验报告、调试记录、系统测试等。
四、课程设计难点本课程设计的难点主要在学生的实践操作能力上,特别是在项目开发过程中的实践操作能力。
电子相册课程设计
目录1设计目的 (3)2 设计题目及要求 (3)3设计算法分析 (3)3.1 模块层次图 (3)3.2 核心算法描述 (4)3.3 系统特点 (5)4程序代码 (5)5调试情况 (49)6结论 (49)参考文献 (49)导航提示信息。
②index.asp中用循环结构分别显示所有记录集页码。
以及对多种条件的复杂判断,并根据不同的条件定义不同的记录集查询条件。
3.3 系统特点【1】特点本系统是动态网页系统,不同于CD/VCD等静止图片的应用系统。
利用网页管理图片,是一个多用户环境下的网页图片管理系统。
它可以实现图片上传、网上管理、网上浏览和交流的功能。
【2】分工数据库设计:存储图片信息电子相册浏览与管理:1.注册、登录和用户信息操作2.浏览图片3.图片评论4.删除服务器上的图片文件4.程序代码【1】程序代码①conn.asp —数据库连接文件<!--#include file="Connections/conn.asp"--><%'如果出错,则跳出下一步on error resume next'定义一个数据库连接对象的具体实例set conn=server.createobject("adodb.connection")'打开该数据库连接conn.open MM_conn_STRING%><%'自定义函数Function SetPwd(sPwd)sSql = ""For i = 1 To Len(sPwd)If bType = True ThensSql = sSql & Chr(-Asc(Mid(sPwd, i, 1)) - 10000) ElsesSql = sSql & Chr(-Asc(Mid(sPwd, i, 1)) - 10000) End IfNextSetPwd = sSqlEnd FunctionFunction Xszh(zh)'转换参数中特殊字符if zh<>"" and not isnull(zh) thenzh=replace(zh," "," ")zh=replace(zh,"€","'")zh=replace(zh,chr(13),"<br>")zh=lcase(zh)zh=replace(zh,"<table","<table")zh=replace(zh,"<tr","<tr")zh=replace(zh,"<%","<%")zh=replace(zh,"<script","<script")zh=replace(zh,"<title>","<title>")zh=replace(zh,"</body>","</body>")zh=replace(zh,"<td","<td")zh=replace(zh,"</table>","</table>")zh=replace(zh,"</tr>","</tr>")zh=replace(zh,"<input","<input")zh=replace(zh,"<!doctype","<doctype")zh=replace(zh,"</td>","</td>")zh=replace(zh,"<a ","<a target=_blank")zh=replace(zh,"<input","<input")zh=replace(zh,"<!doctype","<doctype")xszh = zhend ifEnd FunctionFunction Zpxr(zp)'清除字符串中特殊的字符if zp<>"" thenzp=replace(zp,",","")zp=replace(zp,"'","")zp=replace(zp,"/","")zp=replace(zp,"\","")end ifEnd FunctionFunction Xrzh(zh)if zh<>"" thenzh=replace(zh,"'","€")Xrzh = zhend ifEnd FunctionFunction Yzm()CYZM = cstr( Replace(Timer(), ".", "") * Rnd() Mod 10000) for i = 1 to len(cyzm)zyzm = zyzm + mid( cyzm ,len(cyzm) - i + 1 ,1 )nextif len( zyzm ) < 4 then zyzm = "0" + zyzmif len( zyzm ) < 3 then zyzm = "00" + zyzmif len( zyzm ) < 2 then zyzm = "0000" + zyzmYzm = zyzmEnd FunctionFunction BQ()bq = yr_ban+" "+yr_yr+" 2 006©"End FunctionFunction JSZC()jszc="<a href='#' target=_bank> Power By aHo</a>"End functionfunction bb()bb="电子相册"end functionfunction jdsj()jdsj = right(cstr(date()),len(cstr(date()))-2)+" "+left(cstr(time()),instrrev(cstr(time()),":")-1) end function%><base onmouseover="window.status='<%=bb%>';return true">②pic_zc.asp —用户注册页面<!--#include file="conn.asp"--><htm><head><script language='javascript'>function xgjc(mm){if(mm==""){alert('密码不能为空!');document.de.mm.focus();return false;}if(mm.indexOf("'")>=0 ||mm.indexOf("<")>=0 ||mm.indexOf(">")>=0 ||mm.indexOf(".")>=0) {alert('不能有乱码!');document.de.mm.focus();return false;}}function zcjc(yhm,mm){if(yhm==""){alert('用户名不能为空!');document.zc.yhm.focus();return false;}var aa ="";aa = yhm.substring(0,1);if((aa<='z'&&aa>='a')||(aa<='Z'&&aa>='A')){}else{alert('首位不是字母!');document.zc.yhm.focus();return false;}if(yhm.indexOf("'")>=0 ||yhm.indexOf("<")>=0 ||yhm.indexOf(">")>=0 ||yhm.indexOf(".")>=0){alert('用户名不能有乱码!');document.zc.yhm.focus();return false;}if(mm==""){alert('密码不能为空!');document.zc.mm.focus();return false;}if(mm.indexOf("'")>=0 ||mm.indexOf("<")>=0 ||mm.indexOf(">")>=0 ||mm.indexOf(".")>=0) {alert('不能有乱码!');document.zc.mm.focus();return false;}}</script><link rel="stylesheet" href="images/style.css" type="text/css"><title>注册</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body><!--#include file="head.asp"--><%cz=request.querystring("cz")mm=request.form("mm")yhm=request.form("yhm")qx=request.form("qx")xb=request.form("xb")if cz="xgxg" and mm<>"" and yhm<>"" thenexec="update admin set pass='"+setpwd(mm)+"',lx='"+qx+"',xb='"+xb+"' where yhm='"+yhm+"'"conn.execute execconn.closesession("picpass") = mmsession("picqx") = qxsession("picqx")= xb%><script language='javascript'>alert('恭喜,修改成功!');window.location="index.asp";</script><%end ifif cz="zccg" and mm<>"" and yhm<>"" then''判断是否重复set rs=server.createobject("adodb.recordset")exec="select * from admin where yhm='"+yhm+"'"rs.open exec,conn,1,1if rs.eof thenyhm=xrzh(yhm)exec="insert into admin (xb,yhm,pass,jb,rq,lx) values ('"+xb+"','"+yhm+"','"+setpwd(mm)+"','1','"+cstr(date())+"','"+qx+"')"conn.execute execconn.closesession("picyhm") = yhmsession("picxb") = xbsession("picjb") = "1"session("picpass") = mmsession("picqx") = qx%><script language='javascript'>alert('恭喜,申请成功!');window.location="index.asp";</script><%else%><script language='javascript'>alert('抱歉,此用户名已经有人用了,请换名后重新申请!');window.location="pic_zc.asp?cz=zc";</script><%end ifend if%><p> </p><%if cz="" then%><form name="zc" action="pic_zc.asp?cz=zccg" method="post"><table align="center"><tr><td>用户名</td><td><input name="yhm" type="text" size="10" maxlength="10"></td></tr><tr><td>密码</td><td><input name="mm" type="password" size="10" maxlength="10"></td></tr><tr><td headers="25">性别</td><td><input type="radio" value="男" name="xb" checked>男<input type="radio" value="女" name="xb">女</td></tr><tr><td headers="25">浏览范围</td><td><input type="radio" value="0" name="qx">本人<input type="radio" value="1" name="qx" checked>公共</td></tr><tr><td align="center" colspan="2"><input type="submit" name="sdfsd" value="注册" onClick="javascript:return zcjc(yhm.value,mm.value);"> <input type="button" value="返回" onClick="javascript:window.location='index.asp';"></td></tr></table></form><%else%><form name="de" action="pic_zc.asp?cz=xgxg" method="post"><table align="center"><tr><td align="center" >用户名:</td><td><input name="yhm" type="text" size="10" maxlength="10" value="<%=session("picyhm")%>" readonly=""></td></tr><tr><td align="center">新密码:</td><td><input name="mm" type="password" size="10" maxlength="10" value="<%=setpwd(session("picpass"))%>"></td></tr><tr><td headers="25">性别</td><td><input type="radio" value="男" name="xb" <%if session("picxb")="男" then response.write "checked"%>>男<input type="radio" value="女" name="xb" <%if session("picxb")="女" then response.write "checked"%>>女</td></tr><tr><td headers="25">浏览范围</td><td><input type="radio" value="0" name="qx" <%if session("picqx")="0" then response.write "checked"%>>本人<input type="radio" value="1" name="qx" <%if session("picqx")="1" thenresponse.write "checked"%>>公共</td></tr><tr><td align="center" colspan="2"><input type="submit" name="sdfsd" value="修改" onClick="javascript:return xgjc(yhm.value,mm.value);"> <input type="button" value="返回"onClick="javascript:window.location='index.asp';"></td></tr></table></form><%end if%></body></htm>③pic_dl.asp —用户登录页面<!--#include file="conn.asp"--><html><head><link rel="stylesheet" href="images/style.css" type="text/css"><title>用户登录</title></head><% '获取表单信息yhm=request.form("yhm")pass=request.form("pass")dz=request.querystring("dz")pass=setpwd(pass) '用自定义函数加密密码if dz="exit" then'如果用户执行退出功能,则清空session变量session("picyhm")=""session("picpass")=""session("picjb")=""end ifif yhm<>"" and dz="sc" then'判断用户名是否为空,以及是否是注册操作set rs=server.createobject("adodb.recordset")'定义记录集,查询该用户名的记录exec="select * from admin where yhm='"+yhm+"' and jb<>'0'"rs.open exec,conn,1,1if not rs.eof then '如果存在用户名,则保存该用户记录字段信息grmm=rs("pass")xb=rs("xb")rq=rs("rq")jb=rs("jb")if pass<>grmm then response.redirect "pic_dl.asp"'比较输入的密码是否符合,不合法则重新登录else'如果不存在该用户名,则重新登录response.redirect "pic_dl.asp"end if'登陆成功则保存该用户记录信息,并记住该用户的IP地址,最后返回到index.asp session("picyhm")=yhmsession("picpass")=passsession("picjb")=jbsession("picqx")=rs("lx")session("picxb")=rs("xb")session("picip")=request.servervariables("remote_addr")response.redirect "index.asp"end if%><body><!--#include file="head.asp"--><br><center><form name="from" method="post" action="pic_dl.asp?dz=sc"><table align="center"><tr><td>用户名</td><td><input type=text name=yhm size="10"></td></tr><tr><td>密码</td><td><input type="password" name="pass" size="10"></td></tr></table><table cellpadding="4" cellspacing="0" align="center"><tr><td align="center"><input type=submit onClick="javascript:return dl(yhm.value,pass.value);" value="登录" ><input type=button onClick="javascript:window.location='index.asp> <input type=button onClick="javascript:window.location='pic_zc.asp?cz=zc';" value="注册"></td></tr></table></center></form></center></body></htm><script language='javascript'>function dl(yhm,pass){if (yhm==""){alert('输入用户名!');document.from.yhm.focus();return false;}if (pass==""){alert('输入密码!');document.from.pass.focus();return false;}}</script>④head.asp —头部结构页面<style type="text/css">body {font-family:"Arial", "宋体";font:11px verdana;padding:0px 0px 0px 0px;margin:0px 0px 0px 0px;BACKGROUND:url(images/bg.gif);scrollbar-face-color : #D8DBDF;scrollbar-highlight-color : #FFFFFF;scrollbar-shadow-color : #C1C6CC;scrollbar-3dlight-color : #ABB1B3;scrollbar-arrow-color : #7F8996;scrollbar-track-color : #F8FAF9;scrollbar-darkshadow-color : #ABB1B3}.leftbg {background-color: #f5f5f5}.mainbg {background-color: #f7f7f7}.rightbg {background-color: #f5f5f5}.white {color:#ffffff;font-size:12px;}td {font-family: "Verdana", "Arial", "Helvetica", "sans-serif"; font-size: 11px}A {COLOR: #000000;FONT: 11px verdana;TEXT-DECORA TION: none}A:link {COLOR: #000000;FONT: 11px verdana;TEXT-DECORA TION: noneA:visited {COLOR: #000000;FONT: 11px verdana;TEXT-DECORA TION: none}A:active {COLOR: #000000;FONT: 11px verdana;TEXT-DECORA TION: none}A:hover {COLOR: #000000;TEXT-DECORA TION: underline}INPUT.buttonface {font:12px;height:20;BORDER-BOTTOM: #CCCCCC 1px groove; BORDER-RIGHT: #CCCCCC 1px groove; BACKGROUND-COLOR: #F7F7F7;}.all {BORDER-RIGHT: #CCCCCC 1px solid;BORDER-TOP: #CCCCCC 1px solid;BORDER-LEFT: #CCCCCC 1px solid;BORDER-BOTTOM: #CCCCCC 1px solid }.tabletop {background-color: #EEEEEE}.tablefirst {background-color: #F5F5F5}.tablesecond {background-color: #FFFFFF.Standard-Input {BORDER-RIGHT: #2FA70F 1px solid;BORDER-TOP: #2FA70F 1px solid;FONT-SIZE: 9pt;BORDER-LEFT: #2FA70F 1px solid;BORDER-BOTTOM: #2FA70F 1px solid;HEIGHT: 18px;BACKGROUND-COLOR: #ffffff;FONT-FAMIL Y: Verdana, Helvetica, sans-serif; }.Standard-TEXTAREA {BORDER-RIGHT: #2FA70F 1px solid;BORDER-TOP: #2FA70F 1px solid;FONT-SIZE: 9pt;BORDER-LEFT: #2FA70F 1px solid;BORDER-BOTTOM: #2FA70F 1px solid;BACKGROUND-COLOR: #ffffff;FONT-FAMIL Y: Verdana, Helvetica, sans-serif; }#formStyle1 {BORDER-RIGHT: #7f7f7f 1px solid;BORDER-TOP: #7f7f7f 1px solid;FONT: 11px Verdana, Arial, Helvetica, sans-serif; BORDER-LEFT: #7f7f7f 1px solid;WIDTH: 100px;COLOR: #2f3f5f;BORDER-BOTTOM: #7f7f7f 1px solid;BACKGROUND-COLOR: #ffffff}#formStyle2 {BORDER-RIGHT: #7f7f7f 1px solid;BORDER-TOP: #7f7f7f 1px solid;FONT: 11px Verdana, Arial, Helvetica, sans-serif; BORDER-LEFT: #7f7f7f 1px solid;WIDTH: 250px;COLOR: #2f3f5f;BORDER-BOTTOM: #7f7f7f 1px solid;BACKGROUND-COLOR: #ffffff}#formStyle3 {BORDER-RIGHT: #7f7f7f 1px solid;BORDER-TOP: #7f7f7f 1px solid;FONT: 11px Verdana, Arial, Helvetica, sans-serif; BORDER-LEFT: #7f7f7f 1px solid;WIDTH: 350px;COLOR: #2f3f5f;BORDER-BOTTOM: #7f7f7f 1px solid;BACKGROUND-COLOR: #ffffff}#formStyle4 {BORDER-RIGHT: #7f7f7f 1px solid;BORDER-TOP: #7f7f7f 1px solid;FONT: 11px Verdana, Arial, Helvetica, sans-serif; BORDER-LEFT: #7f7f7f 1px solid;WIDTH: 60px;COLOR: #2f3f5f;BORDER-BOTTOM: #7f7f7f 1px solid;BACKGROUND-COLOR: #ffffff}#formStyle5 {BORDER-RIGHT: #7f7f7f 1px solid;BORDER-TOP: #7f7f7f 1px solid;FONT: 11px Verdana, Arial, Helvetica, sans-serif; BORDER-LEFT: #7f7f7f 1px solid;WIDTH: 25px;COLOR: #2f3f5f;BORDER-BOTTOM: #7f7f7f 1px solid;BACKGROUND-COLOR: #ffffff}#formStyle6 {BORDER-RIGHT: #7f7f7f 1px solid;BORDER-TOP: #7f7f7f 1px solid;FONT: 11px Verdana, Arial, Helvetica, sans-serif; BORDER-LEFT: #7f7f7f 1px solid;WIDTH: 130px;COLOR: #2f3f5f;BORDER-BOTTOM: #7f7f7f 1px solid;BACKGROUND-COLOR: #ffffff}#formStyle7 {BORDER-RIGHT: #7f7f7f 1px solid;BORDER-TOP: #7f7f7f 1px solid;FONT: 11px Verdana, Arial, Helvetica, sans-serif; BORDER-LEFT: #7f7f7f 1px solid;WIDTH: 40px;COLOR: #2f3f5f;BORDER-BOTTOM: #7f7f7f 1px solid;BACKGROUND-COLOR: #ffffff}#formStyle8 {BORDER-RIGHT: #7f7f7f 1px solid;BORDER-TOP: #7f7f7f 1px solid;FONT: 11px Verdana, Arial, Helvetica, sans-serif; BORDER-LEFT: #7f7f7f 1px solid;WIDTH: 100px;COLOR: #2f3f5f;BORDER-BOTTOM: #7f7f7f 1px solid;BACKGROUND-COLOR: #ffffff}#formStyle9 {BORDER-RIGHT: #7f7f7f 1px solid;BORDER-TOP: #7f7f7f 1px solid;FONT: 11px Verdana, Arial, Helvetica, sans-serif; BORDER-LEFT: #7f7f7f 1px solid;WIDTH: 48px;COLOR: #2f3f5f;BORDER-BOTTOM: #7f7f7f 1px solid;BACKGROUND-COLOR: #ffffff}#formStyle11 {BORDER-RIGHT: #7f7f7f 1px solid;BORDER-TOP: #7f7f7f 1px solid;FONT: 11px Verdana, Arial, Helvetica, sans-serif; BORDER-LEFT: #7f7f7f 1px solid;WIDTH: 90px;COLOR: #2f3f5f;BORDER-BOTTOM: #7f7f7f 1px solid;BACKGROUND-COLOR: #ffffff}#formStyle12 {BORDER-RIGHT: #7f7f7f 1px solid;BORDER-TOP: #7f7f7f 1px solid;FONT: 11px Verdana, Arial, Helvetica, sans-serif; BORDER-LEFT: #7f7f7f 1px solid;WIDTH: 85px;COLOR: #2f3f5f;BORDER-BOTTOM: #7f7f7f 1px solid;BACKGROUND-COLOR: #ffffff}#formStyleall {BORDER-RIGHT: #7f7f7f 1px solid;BORDER-TOP: #7f7f7f 1px solid;FONT: 11px Verdana, Arial, Helvetica, sans-serif; BORDER-LEFT: #7f7f7f 1px solid;COLOR: #2f3f5f;BORDER-BOTTOM: #7f7f7f 1px solid;BACKGROUND-COLOR: #ffffff}.uptitle {BORDER-RIGHT: #bbbbbb 1px solid;BORDER-TOP: #f7f7f7 1px solid;FONT-SIZE: 12px;BORDER-LEFT: #f7f7f7 1px solid;COLOR: #000000;PADDING-TOP: 2px;BORDER-BOTTOM: #bbbbbb 1px solid;HEIGHT: 22px;BACKGROUND-COLOR: #eeeeee}</style><table width="100%" border="0" cellspacing="0" cellpadding="0" background="images/top-back.gif" align="center"><tr background="images/top-back.gif"><td height="50" align="center" width="190"><h2 style="font-size:32px;color:#ffffff;padding-top:24px;">电子相册</h2></td> <td align="center" height="74"> </td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="0" bgcolor="#7894AF" align="center"><tr bgcolor="#eeeeee" height="20"><td><%if session("picyhm")="" then%><table width="100%"><tr><td width="20%" align="center"><font color="#FF0000">目前您没有登录</font></td><td align="right"><a href="pic_dl.asp">登录</a> <a href="pic_zc.asp">注册</a> </td></tr></table><%else%><table width="100%"><tr><td width="20%" align="center">欢迎<font color="#FF0000"><%=session("picyhm")%></font> 进入</td><td align="right"><a href="pic_zc.asp?cz=xg&jbm=<%=jbm%>">修改信息</a> <a href="index.asp?cz=exit">退出</a> </td> </tr></table><%end if%></td></tr></table>⑤index.asp —图片浏览主页面<!--#include file="conn.asp"--><html><head><title>电子相册</title><link rel="stylesheet" href="images/style.css" type="text/css"><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><%'************************************************************************ *******'删除指定用户信息和评论内容zt=request.querystring("zt")id = request.QueryString("id")if id <> "" thenexec = "delete from admin where yhm = '" + id + "'"conn.execute execexec = "delete from pl where yhm = '" + id + "'"conn.execute execconn.closeresponse.Redirect("index.asp")end if'*************************************************************************** ****%><body><!--#include file="head.asp"--><table border="0" cellpadding="0" cellspacing="0" width="95%" align="center"height="400"><tr><td height="2"></td></tr><tr><td width="20%" valign="top"><table border="0" cellpadding="1" cellspacing="1" width="100%" background="images/bg.gif" align="center"><%'************************************************************************ *******'定义记录集获取注册用户信息set rs=server.createobject("adodb.recordset")exec="select * from admin order by id desc"rs.open exec,conn,1,1'获取传递的参数page1 =int(Request.QueryString("page1"))'指定每页显示的记录数rs.PageSize =8'判断页码变量值超出指定范围的处理If page1 < 1 Then page1 = 1If page1 > rs.PageCount Then page1 = rs.PageCount'指定当前要显示的页数if not rs.eof then rs.AbsolutePage =page1'循环显示注册用户记录for i = 1 To rs.PageSize'判断如果记录集没有则跳出循环If rs.EOF Then Exit For'获取记录集中的用户名yhm = rs("yhm")if rs.eof then exit for'新定义一个记录集,查询符合该用户名的上传图片信息set rs1=server.createobject("adodb.recordset")exec="select * from zp where yhm='" + yhm + "'"rs1.open exec,conn,1,1'获取记录数gs = rs1.recordcount'获取用户权限qx=session("picqx")%><tr bgcolor="#E3E9F1" height="25"><td align="center" valign="top"><a href=<%'判断,如果是公开、管理员或者自己登录,则可以显示该用户名的所有图片if rs("lx")="1" or session("picjb")="admin" or session("picyhm")=rs("yhm") then response.write "index.asp?zt="+rs("yhm")else'否则,将显示空链接response.write "#"end if %>> <%=rs("yhm")%></a></td><td align="center"><%=rs("xb")%></td><td align="center"><font color="#FF0000"><%=gs%></font>张照片<%'判断,如果不是admin管理员,同时没有上传图片,而且所操作的记录不是admin,则显示删除链接if session("picjb")="admin" and gs = 0 and rs("jb")<>"admin" then%><a href="index.asp?id=<%=yhm%>" onClick="javascript:confirm('是否删除!')">删除</a><%end if%></td></tr><%rs.movenextnext'************************************************************************** *****%><tr><td colspan="3" align="center"><a href="index.asp?zt=qb" class="white">查看全部照片</a></td></tr></table><br><center>第<%'************************************************************************ *******'循环显示页数链接,如果是当前页则不显示中括号标记for j=1 to rs.PageCount%><a href="index.asp?page1=<%=j%>"><%if j=page1 thenresponse.write jelseresponse.write "["+cstr(j)+"]"end if%></a><%nextif rs.recordcount=0 then response.Write("0")'*************************************************************************** ****%>页</center></td><td valign="top"><br><%'************************************************************************ *************'定义记录集,获取上传图片信息set rs=server.createobject("adodb.recordset")'如果退出,则清空登录用户变量cz=request.querystring("cz")if cz="exit" thensession("picyhm")=""session("picjb")=""session("picpass")=""response.redirect "index.asp"end if'判断主题是否为空,为空则显示所有图片if zt="" then zt="qb"'判断是否显示全部图片if zt="qb" then'判断如果是管理员,则显示所有图片if session("picjb")="admin" thenexec="select * from zp order by id desc"'否则只显示被公开浏览的图片或者登录用户自己上传图片elseexec="select * from zp where lx='1' or yhm='"+session("picyhm")+"' order by id desc"end if'当主题不为空时elseif zt<>"" then'判断如果是管理员或者登录用户,则查询该主题下的所有图片if session("picjb")="admin" or session("picyhm")=zt thenexec="select * from zp where yhm='"+zt+"' order by id desc"'否则,就只能显示主题下的所有公开图片elseexec="select * from zp where yhm='"+zt+"' and lx='1' order by id desc"end ifelse'如果主题为空,则按登录用户信息查询exec="select * from zp where yhm='"+session("picyhm")+"' order by id desc"end ifend if'*************************************************************************** ****%><%'*************************************************************************** ****rs.open exec,conn,1,1'获取页码数page =int(Request.QueryString("page"))'指定每页显示页数rs.PageSize =16'判断,并处理特殊页码If page < 1 Then page = 1If page > rs.PageCount Then page = rs.PageCountif not rs.eof then rs.AbsolutePage =pageh=1'循环显示图片for i = 1 To rs.PageSizeIf rs.EOF Then Exit For%><table border="0" cellpadding="0" cellspacing="0" width="100%">。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计说明书题目:电子相册课程名称:嵌入式系统学院:专业:学号:姓名:指导教师:完成日期: 2017年6月10日目录1. 设计的工程背景任务阐述设计任务:制作一个电子相册,要求每个人一种特效,结果显示在ARM开发板上。
开发平台为LINUX。
电子相册简介:以数字照片的存储和浏览为主要功能,具有内置数据存储器、USB等卡接口、强大的文件管理等特征。
背景:在市场需求上,随着数码相机的普及,作为一种以数字照片的保存、回放和浏览为核心的功能产品迎合了消费者需求,嵌入式linux的电子相册比一般电子相册更具优越性和实用性。
目前市场,目前主流电子相册软件普遍体积庞大、占用内存多、硬件要求高。
所以开发一个运行速度快,占用空间小,对硬件要求较低的功能实用的嵌入式Linux电子相册很有意义。
Linux开发优势:Linux是一种自由和开放源码的类Unix操作系统。
目前存在着许多不同的Linux,但它们都使用了Linux内核。
Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。
Linux 是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。
Linux是我国软件的国策,尤其是在IT行业,庞大的使用群体、开放的体系和丰富资源使得Linux将是日后普及和推广的重点。
Linux的优越性日益凸显Linux将是我们学习和工作实用的首选。
目前,很多网络技术、服务器、网络设备都是基于Linux操作系统,并且在不少时尚的手机、PDA、媒体播放器等消费类电子产品中已经广泛使用Linux作为操作系统。
在Linux软件国策的指引下,Linux已经得到很大的普及。
很多学生已经自发地通过书籍、互联网等资源学习Linux。
综上所述,提高技术水平就是以市场流行需求为导向进行研发,特别是像嵌入式种工程类的技术。
在条件允许的情况下,我们甚至应该时刻与国际接轨,掌握当前最领先的技术。
任务分析设计的目标是制作5种电子相册特效,每个人负责制作一种。
在制作前期,首先要查阅资料,了解电子相册的背景和制作原理,对其形成大致的设计方案。
然后,根据资料安装linux和虚拟机软件,搭建开发环境,安装交叉编译。
最后,根据自己设计的方案进行尝试,不断修改错误,直到达到目标。
课题项目管理计划进度表工程设计方案系统方案设计目前市场上的主要设计方案:①单芯片解决方案以单芯片的解决方案,以ESS/AMLOGIC/MPX等芯片设计为代表,PHILIP/Sony 等品牌厂商也以该方式为主。
该方案的优点:(1)结构简单,成本低,芯片功能强大;(2)多媒体的编解码速度快。
该方案的缺点:(1)可扩展的余地不足;(2)对读卡部分,某些方案使用硬件实现,不能支持新类型的卡;(3)应客户要求的二次开发比较不方便。
②以DSP+FPGA等硬件为基础,用软件算法实现功能这种方案,是以DSP来实现多媒体部分的编解码算法,再由FPGA实现显示输出格式的算法转化;读卡部分,文件系统部分由DSP软件处理,外围设备大的驱动由DSP的软件算法实现。
这种方案的优点:功能扩展升级性强,软件实现读卡部分,新的类型卡,外围设备可以通过升级方式实现。
这种方案的缺点:(1)整体成本比较大;(2)客户二次开发难度大。
DSP和FPGA的算法实现需要专业人员;(3)显示输出由FPGA实现,该类输出大部分是数字的输出,模拟输出支持比较弱。
③ARM核心方案以ARM等强大的CPU为核心,以WINCE、LINUX等操作系统为软件核心架构系统。
此方案以ARM如S3C2410、Intel xscale等强大的嵌入式CPU为架构,速度在200M-300MHZ。
嵌入WINCE、LINUX等操作系统,实现多媒体的编解码。
该方案的优点:(1)系统芯片功能强大,实现的功能多,对于新的多媒体格式支持好,只需要安装更新的软件;(2)硬件电路简单;(3)二次开发容易实现。
该方案的缺点:(1)成本较大,该类强大的CPU一般使用在PDA等嵌入式领域;(2)比较耗电,使用软件解码功耗与频率相关性很大。
本设计选用的是第三种方案:以Cortex A8为核心,以Linux操作系统为软件核心架构。
基于Cortex A8的微处理器具有低功耗、低成本、高性能等特点。
GEC210开发板简介:GEC210是一款高性能的Cortex A8核心板,它由广州粤嵌股份设计、生产和发行销售。
它采用三星S5PV210作为主处理器,运行主频可高1GHz。
S5PV210内部集成了PowerVR SGX540高性能图形引擎,支持3D图形流畅运行,并可流畅播放1080P 大尺寸视频。
GEC210主要采用了间距的双排针,引出CPU大部分常用功能引脚,,另外还根据S5PV210芯片的特性,分别引出了标准的miniHDMI接口,如图所示。
GEC210板载512M DDR2内存,可流畅运行Android, Linux和WinCE6等高级操作系统。
它非常适合开发高端物联网终端,广告多媒体终端,智能家居,高端监控系统,游戏机控制板等设备。
图2-1 GEC210开发板(a) 图2-2 GEC210开发板(b)硬件电路设计粤嵌GEC210开发板为硬件平台,Ubuntu为开发环境,通过串口进行文件的传输,在工程师给定的项目基础函数上,通过修改和运用“void lcd_draw_bmp(char *name, int x0, int y0, int w, int h)”函数实现图片位置,大小的改变,再加上延时函数的运用,实现五种图片特效。
软件程序设计总设计方案:3. 方案实施软件程序调试过程①安装虚拟机和linux软件。
②搭建环境和安装交叉编译。
1)找到ubuntu系统工作目录图3-12)在windos系统下图3-23)启用共享文件夹图3-34)主机路径为windos图3-4图3-5大层叠(图形浮现大小及位置)小反转(反转函数)大5)可以在文件系统中/mnt/hgfs/share目录下看到这些。
图3-6图3-77)将文件复制到/opt 目录下。
图3-88)执行如下解压命令。
②聚焦逐现特效部分调试原本打算做图片翻转的特效,在网上查到图片翻转特效的算法并经过修改如下:结果与结论设计结果设计结果实现了以下4点:1)在LCD上显示图片,文字;2)关于GEC210芯片的使用,Ubuntu环境下的操作;3)可随时更换图片,具有串行通信功能;4)聚焦逐现图片特效。
效果分布展示如下:图4-1 开始界面图4-2 逐步缩小界面图4-3 放大反转界面结论设计优缺点:1)实现了多种不同的图片播放特效。
2)二次开发容易实现。
3)图片的自动播放。
4)未实现手动播放和音乐功能。
设计的核心及工程实用价值:随着数码相机的大量普及和人们对多媒体播放的需求,不同用户的计算机中存满各种照片,连桌上相框中照片的更换频率也提高了。
对数码相片进行便捷的显示、分享、编辑、删除、打印等操作逐渐成为市场的需求。
电子相框,数码伴侣等概念型产品逐渐出现在数码市场,电子相册也由概念型产品进入市场已有六、七年。
目前,电子相册产品主要应用于礼品市场,其真正的目标用户却是非常广的,并且它的最终消费人群应该是以家庭为主的普通消费者,其应用的领域将更广阔。
改进意见:1)实现通过触屏实现图片特效间的切换。
2)音乐播放功能的增加。
3)多张图片合成一张图片播放功能的实现。
展望:电子相框结合液晶显示技术、电视技术、数字存储技术,日益成为面向时尚个性的数码相机、数码摄像的最佳伴侣。
随着核心器件NandFlash和LCD屏的降价,必将进一步刺激电子相框的市场需求。
多功能电子相册方便携带、重量轻、样式丰富,在今后必定有更大发展空间。
5. 收获与致谢在本次设计开始前,我们最先开始的是查资料,通过查找资料了解图片显示和各种特效的实现原理,然后再自己尝试设计特效,一开始我们想的特效都很复杂,想要一步实现,尝试了很多方法,都没能成功。
最后,我们改变了思路,用图片逐层显示来实现动态过程,这个特效虽然简单,但它是复杂特效的一个基础,让我明白了复杂的设计要从简单开始,不能想着一口吃个大胖子。
到答辩前一天我们各自设计的特效才有了一点自己想要的效果,当时还很想实现触屏和音乐播放功能,但前期尝试时一直调试不成功所以就没有来得及实现,这是本次设计中的一个遗憾。
通过本次设计也更加熟悉了linux的操作流程,熟悉了做实验中的搭建环境和交叉编译,开始时很多步骤都记不太清楚了,所以又复习了一遍以前的实验。
在这里我体会到了平时的学习都是为了以后的复杂工程做铺垫,让我们能更好的解决一些设计工程,理论是基础,只有基础打好了,上层建筑才会更加稳和顺利。
同时完成了图片在LED屏上的显示和聚焦逐现特效。
在显示图片的操作上,开始屏幕总是会花,显示的图片不理想,后来仔细看了工程师给的显示图片代码和清屏代码,通过和同学商量最终完成了图片的显示。
在特效的实现过程中,一开始很想做一个立体的炫酷的特效,也通过查找资料理解了其原理和算法实现流程,但在调试时总是不成功,在这里用了很长时间。
最后,改变了设计思路,觉得应该从简单的开始做,再一步步增加功能,通过和同学的商量与摸索,终于实现了简单的特效。
虽然从设计到实现的过程有很多困难,但是体会到了和同学一起完成同一个任务的快了,也收获了很多课本上没有的知识,体会到了实践的乐趣。
在此,感谢我的队友给予的帮助,老师和粤嵌工程师给的平台和机会,尤其是粤嵌工程师给我的学习指导。
6. 参考文献[1] 童凯. 基于Linux以及Qt的网络电子相框设计与实现[D]. 电子科技大学, 2014.[2] 林锋. 基于ARM7TDMI芯片的嵌入式LINUX交叉调试器的设计和实现[D]. 四川大学, 2002.[3] 王浩, 陈邦琼. 嵌入式Qt开发项目教程[M]. 中国水利水电出版社, 2014.[4] 梁融凌, 余昌嵩. 基于嵌入式 Linux 电子书的设计与实现[J]. 牡丹江师范学院学报(自然科学版), 2014(4):12-14.[5] Yan H, Liu L, Xue T. SPLIT-SCREEN PROCESSING METHOD AND DEVICE, AND COMPUTER STORAGE MEDIUM:, WO/2015/123937[P]. 2015.[6] 燕丽红, 林志雄, 杨星. 基于Windows 7操作系统和Qt技术的电子相册设计Design of electronic photo album based on Windows 7 operating system and QT[J]. 现代电子技术, 2013.[7] 范定焓. 基于ARM9平台的便携式媒体播放器的设计与开发[D]. 复旦大学, 2009.[8][9] 范定焓. 基于ARM9平台的便携式媒体播放器的设计与开发[D]. 复旦大学, 2009.[10][11] 杨燕, 陈祝. 一种基于Cortex内核的家用电子相册设计[C]2014.7. 附件1)答辩问题回答记录(必需)问:有没有实现手动播放功能答:没有,目前我们完成的只有自动播放和图片替换功能。