嵌入式微处理器实验指导实验一二三四五.docx

上传人:b****0 文档编号:17239268 上传时间:2023-07-23 格式:DOCX 页数:12 大小:122.70KB
下载 相关 举报
嵌入式微处理器实验指导实验一二三四五.docx_第1页
第1页 / 共12页
嵌入式微处理器实验指导实验一二三四五.docx_第2页
第2页 / 共12页
嵌入式微处理器实验指导实验一二三四五.docx_第3页
第3页 / 共12页
嵌入式微处理器实验指导实验一二三四五.docx_第4页
第4页 / 共12页
嵌入式微处理器实验指导实验一二三四五.docx_第5页
第5页 / 共12页
嵌入式微处理器实验指导实验一二三四五.docx_第6页
第6页 / 共12页
嵌入式微处理器实验指导实验一二三四五.docx_第7页
第7页 / 共12页
嵌入式微处理器实验指导实验一二三四五.docx_第8页
第8页 / 共12页
嵌入式微处理器实验指导实验一二三四五.docx_第9页
第9页 / 共12页
嵌入式微处理器实验指导实验一二三四五.docx_第10页
第10页 / 共12页
嵌入式微处理器实验指导实验一二三四五.docx_第11页
第11页 / 共12页
嵌入式微处理器实验指导实验一二三四五.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

嵌入式微处理器实验指导实验一二三四五.docx

《嵌入式微处理器实验指导实验一二三四五.docx》由会员分享,可在线阅读,更多相关《嵌入式微处理器实验指导实验一二三四五.docx(12页珍藏版)》请在冰点文库上搜索。

嵌入式微处理器实验指导实验一二三四五.docx

嵌入式微处理器实验指导实验一二三四五

实验一、Linux常用命令及工具

【实验目的】

熟悉Linux常用命令及工具的使用,特别是常用命令的关键选项及用法需要熟悉。

【实验内容】

1.在老师讲解下掌握Linux常用命令和工具的用法;

2.打开虚拟机ubuntu的Terminal,进行命令的练习和熟悉;

3.截图保存相关界面;

【实验准备】

1.熟悉Ubuntu虚拟机的安装和使用。

2.熟悉Linux常用命令和工具。

【实验报告要求】

1.分别叙述Linux常用命令、ctags+vim工具的功能和一般用法,包括常用选项。

2.需要有实验记录。

【实验步骤】

一、常用命令用法:

1、对于不熟悉的命令请查看网页:

2、ls的功能及常用选项,当以长格式显示目录下的内容列表时,输出的信息从左到右依次包括文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间、文件名等,对于文件类型和权限模式需要熟悉;

3、cd的功能及常用选项:

-、/、~、.、..各表示什么意思?

4、mkdir、cp、mv、rm、pwd的功能及常用选项;

5、chmod的功能及常用选项;

6、find的功能及常用选项;

7、grep的功能及常用选项;

8、tar的功能及常用选项。

二、常用工具的安装和熟悉

1、下载ctags-5.8.tar.gz和vim-6.4.tar.bz2文件,复制到虚拟机的root目录下,用tar解压缩,然后安装。

安装方法如下:

1)进入源代码根目录执行./configure,

2)然后执行make,

3)编译成功后执行makeinstall。

2、进入/opt/WXL/wxl210/linux2.6.35wxl210exp20131202路径下,运行命令:

ctags–R*

然后运行:

vi–tWXL_hello_init

就能定位到WXL_hello_init函数定义的代码处,熟悉此文档中的代码并理解。

注意Ctrl+]和Ctrl+T的用法。

3、将vimrc文件复制到虚拟机/root目录下,改名为.vimrc。

再次进入/opt/WXL/wxl210/linux2.6.35wxl210exp20131202路径下运行:

vi–tWXL_hello_init

看是不是有什么不一样的地方?

【实验总结】

实验过程中碰到的具体问题,怎么解决的?

学到了什么?

实验二、uboot及uboot命令

【实验目的】

阅读《第六章linux系统组成和构建.ppt》中的bootloader部分,熟悉uboot的配置和编译,掌握uboot中常用命令的用法。

特别是print、setenv、saveenv、bootm、ping及nanderase、nandread、nandwrite、tftp等命令;熟悉vim和ctags的用法。

【实验内容】

1.在老师讲解下掌握uboot的配置和编译方法;

2.将pc机和实验单板连接好,并暂停在uboot状态;

3.用命令查看单板的环境变量,设置好网络相关的数据,pingpc机的ip地址显示alive状态;

4.打开tftp工具找到内核镜像文件并载入,然后在终端输入tftp命令将内核镜像传送到单板的内存;

5.用bootm命令从内存内核镜像起始地址引导内核启动;

6.熟悉nanderase、nandread和nandwrite命令,掌握利用nandwrite命令将tftp传送到单板的镜像写入nandflash中,并引导内核启动。

【实验准备】

1.熟悉uboot常用命令,掌握ubuntu虚拟机的用法;

2.熟悉tftp等工具的使用方法。

【实验报告要求】

1.详细描述在uboot下常用命令的演示及结果。

2.利用tftp工具将内核镜像传送到单板。

3.将单板上内存中的镜像写入nandflash中。

【实验步骤】

1.连接单板,配置好超级终端,将单板上电,在uboot启动后倒数三秒时按任意键,使单板停在uboot状态,在uboot下熟悉常用命令,并配置好单板的网络参数,使单板能正常连网。

2.利用tftp工具将内核镜像传送到单板,并通过bootm命令正常引导内核启动。

3.重启单板,再次用tftp将内核镜像传送至单板,然后利用nanderase和nandwrite命令将单板上内存中的镜像先擦除再写入nandflash中。

4.学习uboot源码的编译方法

【实验总结】

实验过程中碰到的具体问题,怎么解决的?

通过这次实验学到了什么?

实验三、make及makefile

在uboot和linux内核配置、编译中的应用

【实验目的】

熟悉基本的调试方法,然后熟悉make和makefile的知识,自己能编写简单的makefile文件,并读懂一般的makefile文件,通过make命令实现完成程序的编译。

【实验内容】

1.学习makefile语法规则;

2.为.c文件写它相关的makefile文件,并编译运行;

3.进一步掌握makefile中常用变量的用法。

4.掌握uboot和linux内核的配置和编译方法。

【实验准备】

1.熟悉Linux常用命令,掌握ubuntu虚拟机的用法;

2.熟悉GCC、GDB等工具的使用方法。

【实验报告要求】

1.熟悉make工具及用法;

2.从看懂makefile文件开始,掌握简单的makefile写法,能看懂大部分的makefile文件;

3.掌握makefile中常用变量的使用。

4.掌握uboot和linux内核的配置与编译方法。

【实验步骤】

1.分析makefile(example)文件中的含义,完成src中文件的编译,运行可执行文件,思考运行结果。

(所需内容请自行下载使用)

2.回忆上两周课堂内容,完成对uboot和linux内核源码的配置和编译,最后生成uboot.bin和zImage文件。

要求:

修改uboot引导内核前倒数3s的时间;

修改linux内核源码配置中有关ubs驱动部分,使得usb驱动不编译进内核。

3.现有7个文件分别是m.c、m.h、study.c、listen.c、visit.c、play.c、watch.c,将它们放在/home/lab-3/目录下,要求通过makefile的编写实现所有文件的编译,生成一个名为m的可执行程序。

(7个源文件见下面附录)

4.将自己编译出来的uboot.bin和zImage文件烧录进开发板运行。

【实验总结】

实验过程中碰到的具体问题,怎么解决的?

通过这次实验学到了什么?

附录:

实验步骤3所需源代码:

m.c:

#include

main()

{

intI;

printf(“pleaseinputthevalueofIfrom1to5:

\n”);

scanf(“%d”,&i);

if(i==1)

visit();

elseif(i==2)

study();

elseif(i==3)

play();

elseif(i==4)

watch();

elseif(i==5)

listen();

else

printf(“nothingtodo\n”);

printf(“thisisawonderfulday\n”);

}

m.h:

voidvisit();

voidlisten();

voidwatch();

voidstudy();

voidplay();

study.c:

voidstudy()

{

printf(“studyembeddedsystemtoday\n”);

}

listen.c:

voidlisten()

{

printf(“listenEnglishtoday\n”);

}

play.c:

#include

voidtoday()

{

printf(“playfootballtoday\n”);

}

visit.c:

#include

voidvisit()

{

printf(“visitfriendtoday\n”);

}

watch.c:

include

voidwatch()

{

printf(“watchTVtoday\n”);

}

实验四、内核模块.ko的实现

【实验目的】

熟悉vim和ctags的用法;

掌握编译成内核模块的两种方法。

【实验内容】

1.将hello.c文件拷贝到内核源码目录的drivers/char/下面,采用内核编译方式,将hello.c编译成hello.ko;

2.连接好并上电启动开发板,在超级终端下,将两个.ko文件发送到开发板上,用insmod命令进行加载,用lsmod命令查看,用rmmod命令进行卸载;

【实验准备】

1.熟悉vim的用法;

2.熟悉内核模块的生成及加载和卸载等。

【实验报告要求】

1.详细描述将hello.c编译成内核模块的方法。

2.内核模块加载和卸载的过程。

【实验步骤】

1.结合实验三以及理论课堂的讲授,将hello.c编译成hello.ko;

2.连接单板,配置好secureCRT超级终端,将单板上电,然后将hello.ko发送到单板上,进行加载和卸载的实验。

附:

查看已加载的内核模块、内核模块加载、卸载的方法如下:

1)查看已加载的模块

#lsmod

2)加载模块(注意两个加载命令的区别)

#insmod/lib/modules/2.6.**/***.ko

#modprobe***

3)卸载模块

#rmmod***

实验五、字符设备驱动调试

【实验目的】

熟悉vim和ctags的用法;

掌握简单字符设备驱动结构;

掌握在/dev下自动创建设备文件的方法并实现。

【实验内容】

1.在memdev.c中加入你认为重要的相关输出信息,比如查看sizeof(structmem_dev)的大小值,在memdev_init函数中增加相关打印信息,使得程序正常加载后能看到提示信息输出等等;

printk(KERN_INFO"Hello,world!

/n");

system(“ls-al/etc/passwd/etc/shadow”);

2.完成“字符设备驱动实验代码.rar”中设备驱动部分和应用测试部分各自的编译,并发送到开发板上;

3.在开发板上加载设备驱动的.ko文件,注意加载后输出的提示信息,成功加载后再运行应用测试程序的可执行文件,查看输出的提示信息和测试结果;(加载memdev.ko需要注意mknssod命令生成设备文件,需要注意memdev.ko的主设备号是否正常。

4.自学熟悉memdev.c中这行代码:

module_param(mem_major,int,S_IRUGO);

的作用,掌握加载的时候给static变量重新赋值的方法;

Insmodmemdev.komem_major=250

5.在memdev.c中将staticmem_major=MEMDEV_MAJOR;

这行修改成:

staticmem_major=0;后重新编译,加载,然后用cat/proc/devices查看设备名为memdev的字符设备的主设备号是多少;

250

6.在memdev.c中增加自动创建设备文件的相关代码,并编译成.ko文件,发送到开发板并加载,查看是否在/dev目录下有自动创建两个设备文件。

system(“mknod/dev/memdev0c2500”);

system(“mknod/dev/memdev0c2501”);

【实验准备】

1.熟悉vim的用法;

2.熟悉内核模块的生成及加载和卸载等;

3.掌握简单字符设备驱动的结构及主要代码的意义。

【实验报告要求】

1.根据【实验内容】详细描述自己修改代码及操作的过程及相关结果

2.详细描述碰到的问题及解决的方法。

【实验步骤】

下载“字符设备驱动实验代码.rar”,解压缩后拷贝到ubuntu下,分别完成【实验内容】中的1~6项。

1.在memdev.c中加入输出信息,并把生成的memdev.ko传到目标板后,通过超级终端在目标板上加载模块

2.在宿主机上编译测试驱动的文件app-mem.c

3.在目标板创建设备节点(设备文件)后,运行app-mem

4.在安装驱动模块时指定主设备号

5.在memdev.h中将mem_major设为0

 

主设备号被分配为250

 

6.在memdev.c中增加自动创建设备文件的相关代码,并重新编译成memdev.ko文件

卸载原memdev模块,重新安装

查看设备文件是否创建成功

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2