嵌入式实验指导书(4)

2019-02-26 10:53

七、将应用程序加入文件系统

编译成功后,把可执行文件led,放到存放home/nfs1目录下.之后,执行可执行程序。

在代码中,实现了8个led灯闪烁的时间间隔的设定,同时也实现了闪烁方向的设定。通过给数据缓存寄存器写入的值的不同来控制闪烁方向,通过给数据缓存器写入值的时间间隔来控制闪烁的时间间隔。以此达到控制8个LED灯的目的。

八、实验步骤

1.本实验使用实验教学系统,在进行本实验时,LCD电源开关应处在关闭状态。 2. 在PC串口和实验箱的CPU之间,连接串口直连电缆,在PC网口和实验箱的CPU网 口之间,连接网口交叉电缆。

3. 搭建Linux开发环境 4. 拷贝跑马灯程序

将E:\\软件\\基本实验\\linux3530\%user_led目录拷贝到nfs1。 [root@localhost ~]# cd /home/nfs1 [root@localhost nfs1]# cd user_led [root@localhost user_led]# cd app [root@localhost app]# ls –l

-rwxr-xr-x 1 root root 6325 04-23 10:48 led -rw-rw-rw- 1 root root 1379 2010-05-26 led.c -rw-rw-rw- 1 root root 117 2010-05-26 Makefile

5. 用chmod命令改变应用程序led权限 [root@localhost app]# chmod 777 led [root@localhost app]# ls –l

-rwxr-xr-x 1 root root 6325 04-23 10:48 led -rw-rw-rw- 1 root root 1379 2010-05-26 led.c -rw-rw-rw- 1 root root 117 2010-05-26 Makefile

看到可执行文件led变成绿色,将其拷贝,也就是将/home/nfs1/user_led/ app /led 拷贝到/home/nfs1 里

6. 加载驱动模块

把/home/nfs1 /user_led/driver/leddriver.ko文件拷贝到/home/nfs1文件夹里 root@Techv_OMAP35xx:~# cd /tmp

root@Techv_OMAP35xx:/var/volatile/tmp# ls

leddriver.ko user_led 加载驱动:

root@Techv_OMAP35xx:/var/volatile/tmp# insmod leddriver.ko 7. 加载驱动成功后,执行led

root@Techv_OMAP35xx:/var/volatile/tmp# ./led

在终端中首先输出LED round show in the EL_ARM860,Please enter the number 1 or 2 or 3 or 4 and L or R then Enter !以及Such as 1L or 2L or 3L or 4L or 1R or 2R or 3R or 4R,then Enter !等输出。其中1,2,3,4,是选择led闪烁的时间间隔,数值越小,闪烁间隔越短。L(l)和R(r)则选择led闪烁的方向。L(l)则确定闪烁方向为向左,R(r)则确定闪烁方向向右。闪烁总是一次闪烁8下,即从一头到另一头,回车键敲一次,则闪烁8下。和时,如选择“1” 敲回车,输入选择时间间隔,之后,选择“L”,敲回车,输入选择方向等等。当需要改变方向和时间间隔时,需要先输入字符“q”,之后连续敲回车键两次次,则可以重新选择参数。当需要退出应用程序时,输入q,回车,再输入q,再回车,则退出应用程序。 8. 卸载驱动

root@Techv_OMAP35xx:/var/volatile/tmp# rmmod leddriver.ko

实验十 基于linux的基本绘图应用程序的编写

四、实验原理

硬件接线原理见硬件实验介绍,而在linux操作系统下引入帧缓冲(framebuffer)概念。Framebuffer是linux系统为显示设备提供的一个接口,它将显示缓冲区抽象,屏蔽图像硬件的底层差异,允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。用户不必关心物理显示缓冲区的具体位置及存放方式,这些都由帧缓冲设备驱动程序本身来完成。对于帧缓冲设备而言,只要在显示缓冲区中与显示点对应的区域写入颜色值,对应的颜色会自动在屏幕上显示。帧缓冲设备驱动特有的文件操作函数接口:fb_ops结构体,它定

义了我们编写framebuffer设备驱动需要编写的函数。

五、实验步骤

struct fb_ops { struct module *owner; int (*fb_open)(struct fb_info *info, int user); int (*fb_release)(struct fb_info *info, int user); ssize_t (*fb_read)(struct file *file, char __user *buf, size_t count, loff_t *ppos); ssize_t (*fb_write)(struct file *file, const char __user *buf, size_t count, loff_t *ppos); int (*fb_ioctl)(struct fb_info *info, unsigned int cmd, unsigned long arg); int (*fb_compat_ioctl)(struct fb_info *info, unsigned cmd, unsigned long arg); int (*fb_mmap)(struct fb_info *info, struct vm_area_struct *vma); }; 驱动程序编写

具体驱动程序见/linux/driver/vedio文件夹,其中s3c2410fb.c我们需要去细看!

应用程序

本实验主要在LCD设备驱动运行后,怎样对液晶进行操作,编写我们需要的图形界面等,具体见lcddriver文件夹。

本次实验完成上述两项任务,实验步骤如下:

1.本实验使用实验教学系统的CPU板,LCD屏,在进行本实验时,打开LCD电源开关。 2.在PC串口和实验箱的CPU之间,连接串口直连电缆,在PC网口和实验箱的CPU网口之间,连接网口交叉电缆。

3.搭建linux环境。

4.打开LCD屏的电源开关。挂载成功后,在主机下E:\\软件\\基本实验\\linux3530\\ lcddriver里把app_lcd.c编译成执行文件app_lcd,之后,把app_lcd拷贝到/home/nfs共享文件夹里。

5.添加驱动把/home/nfs1 /user_led/driver/leddriver.ko文件拷贝到/home/nfs1文件夹里,并在目标板的终端加载驱动。

6.在终端下,进入/home/nfs文件夹,键入执行命令./app_lcd,则在液晶上显示各种颜色条纹。

7.输入”1”,”2”,”3”,”4”,”5”,”6”,”7”,来选择要进行绘画的颜色,1对应着红,2对应着绿,3对应着蓝,4对应着黄,5对应着白,6对应着黑,7对应着浅蓝。输入”a”,”b”,”c”,”d”,”e”,”f”,”g”,则显示要画的实体。a对应着画水平

线,ba对应着画竖直线,c对应着画圆,d对应着填充全屏,e对应着填充圆,f对应着清屏,g对应着填充矩形。“q”则退出应用程序。

8.程序启动后应先选择颜色,即先输入1,2,3,4,5,6,7,中的一个,然后回车。之后,再输入画实体的字符,回车,观察实验效果,然后输入改变颜色的字符,回车,再输入相同的画实体字符,观察颜色是否改变。输入字符“q”,则退出应用程序。

附录

1.启动虚拟机

双击Windows桌面WMware Workstation图标; 2.用交叉网线把主机和实验系统连接:

选择Resume this virtual machine,进入Linux界面。在虚拟机中打开一个Linux终端,需要点击:红帽子->终端, 打开一个Linux终端。

⒈) minicom仿真终端设置

在终端下输入minicom –s,选择serial port setup,回车。

按下A键,将对应参数设置为/dev/ttyS0并回车;按下E键,按下I键,将对应参数设置为115200 8N1,回车;按下F键,将对应参数设置为No;然后回车保存参数,选择save setup as df1。最后选择exit。 2.)添加串口设备

如果正在运行虚拟机、Linux,这时要添加串口设备,则必须先用power off方式退出虚拟机,然后再次启动虚拟机,点击“VM”,选择“settings” ,点击Add按钮选择“Serial Port”点击“Next”按钮,然后在出现的各个对话框中,依次点击“Next”、“Finish”,则在虚拟机中添加了串行端口

选择power on this virtual machine,进入Linux界面。用户名“root”,口令“123456”。在终端窗口[root@localhost~]#输入minicom并打开实验箱之后回车,则minicom仿真终端程序会将目标板输出到终端的信息,显示出来。

在该界面上会出现“Techv_omap35xx login:”输入“root”,点击回车,此窗口会出现“root@Techv_omap35xx:~#”表示目标板终端。 3.安装交叉编译器:

a)将交叉编译器拷贝到/usr/local子目录

打开“我的电脑”,找到E:/软件/ arm-2007q3-51-arm-none-linux-gnueabi-i686.tar.bz 将其进行复制,粘贴到主文件夹下的/usr/local下 b) 建文件“arm”并查看 [root@localhost~]# cd /usr/local [root@localhost local]# mkdir arm [root@localhost local]# ls –l

在此窗口中会显示/usr/local中的信息。会看到arm和拷贝的文件。 c) 解压

[root@localhost local]#tar xvjf arm-2007q3-51-arm-none-linux-gnueabi-i686. tar.bz空格-C/usr/local/arm(回车) d) 添加环境变量

[root@localhost local]# echo $PATH 添加环境变量方法:

[root@localhost local]#kwrite /root/.bashrc(回车),

在fi下一行添加“export PATH=/usr/local/arm/arm-2007q3/bin:$PATH”,点击保存、退出,回到终端窗口“[root@localhost local]#”。关掉终端窗口“[root@localhost local]#”.重启终端窗口: 点击红帽子->终端, 打开一个Linux终端:[root@localhost local]# echo $PATH(回车),看到改后的路径。

4.主机Linux环境和目标板IP地址设置 主机终端修改IP地址

[root@localhost local]#ifconfig eth0 192.168.1.5(回车) 查看

[root@localhost local]# ifconfig(回车) 实验箱终端修改IP地址

root@Techv_omap35xx:~#ifconfig eth0 192.168.1.9(回车) 查看

root@Techv_omap35xx:~#ifconfig(回车) 5网络防火墙的设置 主机linux终端窗口

[root@localhost local]#setup(回车),光标移动找到“防火墙设置”,点击回车,用光标移动键选择“禁用”防火墙,用“TAB”选择“确定”后回车,退出设置.


嵌入式实验指导书(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:金蝶K3RISE专业版V12.2升级指南

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: