北邮嵌入式系统实验报告.docx





《北邮嵌入式系统实验报告.docx》由会员分享,可在线阅读,更多相关《北邮嵌入式系统实验报告.docx(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、北京邮电大学嵌入式系统试验试验报告学院:电子工程学院专业:电子信息科学与技术班级:2023211203 班学号: 姓名:2023 年 11 月 13 日.一、试验目的1. 根本试验搭建 PXA270 嵌入式 LINUX 开发软硬件环境;安装 LINUX 操作系统;安装与配置建立宿主机端穿插编译调试开发环境;配置宿主机 PC 机端的 minicom或超级终端、TFTP 效劳、NFS 效劳,使宿主 PC 机与 PXA270 开发板可以通过串口通讯,并开通 TFTP 和 NFS 效劳。2. 人机接口键盘驱动;LCD 掌握;触摸屏数据采集与掌握试验;3. 应用试验完成 VGA 显示;Web 效劳器试验
2、;网络文件传输试验;多线程应用试验。4. 扩展应用试验完成 USB 摄像头驱动与视频采集;GPS 试验;GSM/GPRS 通讯;视频播放移植;USB 蓝牙设备无线通讯;NFS 文件效劳器;蓝牙视频文件效劳器。5. QT 试验完成根本嵌入式图形开发环境搭建;“Hello world!”QT 初探;创立一个窗口并添加按钮;对象通信:Signal 和 Slot;菜单和快捷键;工具条和状态栏;鼠标和键盘大事; 对话框;QT 的绘图;俄罗斯方块;基于 QT 的 GSM 手机在嵌入式 LINUX 下的设计与实现。二、试验内容1. 人机接口试验试验十九 键盘驱动试验 试验目的:矩阵键盘驱动的编写 试验内容:
3、矩阵键盘驱动的编写 作业要求:完成键盘加减乘除运算 试验作业源码及注释:#INCLUDE #INCLUDE #INCLUDE #INCLUDE #INCLUDE #INCLUDE#DEFINE DEVICE_NAME “/DEV/KEYBOARD ”Word 资料INT MAIN(VOID) INT FD;INT RET;UNSIGNED CHAR BUF1; INT I,F,J;DOUBLE X;INT A2=0;CHAR PRE_SCANCODE=0XFF; FD=OPEN(DEVICE_NAME,O_RDWR);IF(FD=-1)PRINTF( “OPEN DEVICE %S ERROR
4、N ”,DEVICE_NAME); ELSEBUF0=0XFF;I=0;F=0;WHILE(1)READ(FD,BUF,1);IF(BUF0!=PRE_SCANCODE)/推断是否放开按键IF(BUF0!=0XFF)/推断是否键入PRE_SCANCODE=BUF0; USLEEP(50000); SWITCH(BUF0)CASE 0X12:/按下 ENTERSWITCH(F)/推断运算符CASE1:J=I;I=(I+1)%2;X=AI+AJ;PRINTF( “%D+%D=%D ”,AI,AJ,X);BREAK;/加法CASE 2:J=I;I=(I+1)%2;X=AI-AJ;PRINTF( “%
5、D-%D=%D”,AI,AJ,X);BREAK;/ 减法CASE3:J=I;I=(I+1)%2;X=AI*AJ;PRINTF( “%D*%D=%D ”,AI,AJ,X);BREAK;/乘法CASE4:J=I;I=(I+1)%2;X=AI/AJ;PRINTF( “%D/%D=%D ”,AI,AJ,X);BREAK;/除法DEFAUIT: F=0;BREAK;CASE 0X13:F=1;I=(I+1)%2;BREAK;/键入运算符CASE 0X14:F=2;I=(I+1)%2;BREAK;CASE 0X15:F=3;I=(I+1)%2;BREAK; CASE 0X16:F=4;I=(I+1)%2;
6、BREAK;DEFAULT:AI=BUF0;/存入数据. RET=CLOSE(FD);RETURN 0; 试验结果:试验效果图试验二十 LCD 掌握试验 试验目的:了解 LCD 的根本原理 试验内容:使用总线方式驱动 LCD 模块,体会与 QT 下 LCD 显示的差异 作业要求:在目标板的 LCD 上显示彩色竖条纹或彩色圆环。 试验作业源码及注释:#include #include #include #include / open close #include / read write#define DEVICE_NAME “/dev/fb“#define VERSION“PXA2700EP-
7、LCD-V1.00-060530“void showversion(void)Word 资料printf(“*n“); printf(“t %s tn“, VERSION); printf(“*nn“);int main(void)int fd; int ret;int i,j,r,R;unsigned short buf640*480; showversion;printf(“nstart test_lcd testnn“); fd = open(DEVICE_NAME, O_RDWR);printf(“fd = %dn“,fd); if (fd = -1)elseprintf(“open
8、device %s errorn“,DEVICE_NAME);for(i=0;i640*480;i+)bufi=0x0001;ret=write(fd,buf,sizeof(buf); usleep(500000);close(fd);fd = open(DEVICE_NAME, O_RDWR);/竖条纹算法:通过横坐标分布进展填色for(r=0;r=0&i=60&i=120&i=180&i=240&i=300&i=360&i=420&i=480)bufr=0xffff;/*/圆环算法:通过离圆心半径分布进展填色for(r=0;r=0&R=2500&R=10000&R=22500&R=4000
9、0&R=62500&R=90000&R=122500&R=160000)bufr=0xffff;ret=write(fd,buf,sizeof(buf); getchar; 试验结果:试验效果图试验二十一触摸屏数据采集与掌握 试验目的:通过试验把握触摸屏的设计与掌握方法 试验内容:编程实现触摸屏到 LCD 坐标的校准以及坐标采集和计算随着使用电脑作为信息来源的与日俱增,触摸屏以其易于使用、结实耐用、反响速度 快、节约空间等优点,使得系统设计师们越来越多的感到使用触摸屏确实具有相当大的优越性。通过此试验,我们学习了触摸屏原理,并通过编写测试程序验证了触摸屏的工作过程。学习它,把握它是格外必要的。
10、2. 应用程序试验试验二十二VGA 显示试验 试验目的:了解 VGA 接口的标准和特点 试验内容:编程实现图像通过 VGA 接口在显示器上输出Word 资料通过本试验的操作,VGA 设备成功启动,在液晶屏和显示器上可以看到完全同步的画面。由于两者格式和刷频率的差异,试验中做了折中处理,可能显示效果没有到达最优。试验二十三Web 效劳器试验 试验目的:学习在 PXA270 开发板上的 SOCKET 网络编程 试验内容:SOCKET 进展通讯编程学习使用 socket 进展通讯编程的过程,了解一个实际的网络通讯应用程序整体设计, 阅读 协议的相关内容,学习几个重要的网络函数的使用方法。读懂 D.C
11、 源代码。在此根底上增加一些其他功能。在宿主PC 机上使用扫瞄器测试嵌入式WEB 效劳器的功能。通过此试验,我们实现了嵌入式Web 效劳器的根本功能。试验二十五多线程应用试验 试验目的:学习 PTHREAD 库函数的使用 试验内容:生疏 PTREAD 库函数的使用,把握共享锁和信号量的使用方法。 作业要求:利用多线程技术实现键盘掌握在 LCD 液晶屏上显示的可移动的图形。 试验作业源码及注释:#include #include #include #include “pthread.h“#include / open close #include / read write #include #d
12、efine DEVICE_NAME “/dev/fb“ #define BUFFER_SIZE 16struct prodcons int bufferBUFFER_SIZE;/*the actual data */pthread_mutex_t lock;buffer */*mutex ensuring exclusive access toint readpos, writepos;/*positions forreading and writing */pthread_cond_t notempty;/*signaled whenbuffer is not empty */pthread
13、_cond_t notfull;/*signaled whenbuffer is not full */;void init(struct prodcons * b)pthread_mutex_init(&b-lock, NULL); pthread_cond_init(&b-notempty, NULL); pthread_cond_init(&b-notfull, NULL); b-readpos = 0;b-writepos = 0;.void put(struct prodcons * b, int data)pthread_mutex_lock(&b-lock);while (b-w
14、ritepos + 1) % BUFFER_SIZE = b-readpos) printf(“wait for not fulln“);pthread_cond_wait(&b-notfull, &b-lock);b-bufferb-writepos = data; b-writepos+;if (b-writepos = BUFFER_SIZE) b-writepos = 0; pthread_cond_signal(&b-notempty); pthread_mutex_unlock(&b-lock);int get(struct prodcons * b)int data; pthre
15、ad_mutex_lock(&b-lock);while (b-writepos = b-readpos) printf(“wait for not emptyn“);pthread_cond_wait(&b-notempty, &b-lock);data = b-bufferb-readpos; b-readpos+;if (b-readpos = BUFFER_SIZE) b-readpos = 0; pthread_cond_signal(&b-notfull); pthread_mutex_unlock(&b-lock);return data;struct prodcons buff
16、er;/键盘输入线程void * producer(void * data)Word 资料int fd; int ret;unsigned char buf2 ;/int i;/double x;char pre_scancode = 0x44;fd = open(“/dev/keypad“, O_RDWR);/printf(“fd = %dn“,fd); if (fd = -1) printf(“open device %s errorn“,DEVICE_NAME);else buf0=0x22; while (1) read (fd,buf,1); if(buf0!= pre_scanco
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 实验 报告

限制150内