嵌入式微处理器实验指导

上传人:s****a 文档编号:121978237 上传时间:2022-07-19 格式:DOCX 页数:12 大小:29.40KB
收藏 版权申诉 举报 下载
嵌入式微处理器实验指导_第1页
第1页 / 共12页
嵌入式微处理器实验指导_第2页
第2页 / 共12页
嵌入式微处理器实验指导_第3页
第3页 / 共12页
资源描述:

《嵌入式微处理器实验指导》由会员分享,可在线阅读,更多相关《嵌入式微处理器实验指导(12页珍藏版)》请在装配图网上搜索。

1、实验一、Linux常用命令及工具【实验目的】熟悉Linux常用命令及工具的使用,特别是常用命令的关键选项及用法需 要熟悉。【实验内容】1. 在老师讲解下掌握Linux常用命令和工具的用法;2.打开虚拟机ubuntu的Terminal,进行命令的练习和熟悉;3.截图保存相关界面;【实验准备】1. 熟悉Ubuntu虚拟机的安装和使用。2. 熟悉Linux常用命令和工具。【实验报告要求】1. 分别叙述Linux常用命令、ctags+vim工具的功能和一般用法,包括常用 选项。2. 需要有实验记录。【实验步骤】一、常用命令用法:1、对于不熟悉的命令请查看网页:2、ls的功能及常用选项,当以长格式显示目

2、录下的内容列表时,输出的信息从 左到右依次包括文件类型、权限模式、硬连接数、所有者、组、文件大小和 文件的最后修改时间、文件名等,对于文件类型和权限模式需要熟悉;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 )进入源代码根目录执行./c

3、onfigure,2)然后执行make,3)编译成功后执行make installo2、进入/opt/WXL/wxl210/linux2.6.35wxl210exp20131202 路径下,运行命令:ctags - R *然后运行:vi - t WXL_hello_init就能定位到WXL_hello_init函数定义的代码处,熟悉此文档中的代码并理 解。注意Ctrl + 和Ctrl + T的用法。3、将vimrc文件复制到虚拟机/root目录下,改名为.vimrc。再次进入 /opt/WXL/wxl210/linux2.6.35wxl210exp20131202 路径下运行:vi - t W

4、XL_hello_init看是不是有什么不一样的地方?【实验总结】实验过程中碰到的具体问题,怎么解决的?学到了什么?实验二、uboot及uboot命令【实验目的】阅读第六章linux系统组成和构建.ppt中的bootloader部分,熟悉uboot 的配置和编译,掌握uboot中常用命令的用法。特别是print、setenv、saveenv、 bootm、ping 及 nand erase、nand read、nand write、tftp 等命令;熟悉 vim 和 ctags 的用法。【实验内容】1. 在老师讲解下掌握uboot的配置和编译方法;2. 将pc机和实验单板连接好,并暂停在ubo

5、ot状态;3二用命令查看单板的环境变量,设置好网络相关的数据,ping pc机的ip地 址显示alive状态;4. 打开tftp工具找到内核镜像文件并载入,然后在终端输入tftp命令将内核 镜像传送到单板的内存;5. 用bootm命令从内存内核镜像起始地址引导内核启动;6. 熟悉 nand erase、nand read 和 nand write 命令,掌握利用 nand write 命令 将tftp传送到单板的镜像写入nandflash中,并引导内核启动。【实验准备】1. 熟悉uboot常用命令,掌握ubuntu虚拟机的用法;2. 熟悉tftp等工具的使用方法。【实验报告要求】1. 详细描述

6、在uboot下常用命令的演示及结果。2. 利用tftp工具将内核镜像传送到单板。3. 将单板上内存中的镜像写入nandflash中。【实验步骤】1. 连接单板,配置好超级终端,将单板上电,在uboot启动后倒数三秒时按 任意键,使单板停在uboot状态,在uboot下熟悉常用命令,并配置好单板的网 络参数,使单板能正常连网。2. 利用tftp工具将内核镜像传送到单板,并通过bootm命令正常引导内核 启动。3. 重启单板,再次用tftp将内核镜像传送至单板,然后利用nand erase和 nand write命令将单板上内存中的镜像先擦除再写入nandflash中。4. 学习uboot源码的编

7、译方法【实验总结】实验过程中碰到的具体问题,怎么解决的?通过这次实验学到了什么?实验三、make 及 makefile在uboot和linux内核配置、编译中的应用【实验目的】熟悉基本的调试方法,然后熟悉make和makefile的知识,自己能编写简单 的makefile文件,并读懂一般的makefile文件,通过make命令实现完成程序的 编译。【实验内容】1. 学习makefile语法规则;2. 为.c文件写它相关的makefile文件,并编译运行;3. 进一步掌握makefile中常用变量的用法。4. 掌握uboot和linux内核的配置和编译方法。【实验准备】1. 熟悉Linux常用命

8、令,掌握ubuntu虚拟机的用法;2. 熟悉GCC、GDB等工具的使用方法。【实验报告要求】1. 熟悉make工具及用法;2. 从看懂makefile文件开始,掌握简单的makefile写法,能看懂大部分的 makefile 文件;3. 掌握makefile中常用变量的使用。4. 掌握uboot和linux内核的配置与编译方法。【实验步骤】1. 分析makefile(example)文件中的含义,完成src中文件的编译,运行可执 行文件,思考运行结果。(所需内容请自行下载使用)2. 回忆上两周课堂内容,完成对uboot和linux内核源码的配置和编译,最后生 成 uboot.bin 和 zIm

9、age 文件。要求:修改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

10、:#in cludevsdio.h main ()int I;pr in tf(“please in put the value of I from 1 to 5:n”); sca nf(“d”, & i);if(i=1)visit();else if(i=2)study();else if(i=3)play();else if(i=4) watch();else if(i=5)liste n();elsepri ntf( “nothing to don”);pr in tf(this is a won derful dayn”);mh:void visit();void liste n();

11、void watch();void study();void play();study.c:void study()pri ntf(“study embedded system todayn”);listen c:void liste n()printf(“listen English todayn”);play.c:#in cludevstdio.cvoid today()pri ntf (“play football todayn ”);visitc:#in cludevoid visit()pri ntf( “visit frie nd todayn”);watch .c:in clud

12、evoid watch()printf(“watch TV todayn”);实验四、内核模块ko的实现【实验目的】熟悉vim和ctags的用法; 掌握编译成内核模块的两种方法。【实验内容】1. 将hello.c文件拷贝到内核源码目录的drivers/char/下面,采用内核编译方 式,将 hello.c 编译成 hello.ko;2. 连接好并上电启动开发板,在超级终端下,将两个.ko文件发送到开发板 上,用insmod命令进行加载,用lsmod命令查看,用rmmod命令进行卸载;【实验准备】1. 熟悉vim的用法;2. 熟悉内核模块的生成及加载和卸载等。【实验报告要求】1. 详细描述将he

13、llo.c编译成内核模块的方法。2. 内核模块加载和卸载的过程。【实验步骤】1. 结合实验三以及理论课堂的讲授,将hello.c编译成hello.ko;2. 连接单板,配置好secureCRT超级终端,将单板上电,然后将hello.ko发 送到单板上,进行加载和卸载的实验。附:查看已加载的内核模块、内核模块加载、卸载的方法如下:1)查看已加载的模块#lsmod2)加载模块(注意两个加载命令的区别)#insmod /lib/modules/2.6.*/*.ko#modprobe *3)卸载模块#rmmod *实验五、字符设备驱动调试【实验目的】熟悉vim和ctags的用法;掌握简单字符设备驱动结

14、构;掌握在/dev下自动创建设备文件的方法并实现。【实验内容】1. 在memdev.c中加入你认为重要的相关输出信息,比如查看sizeof(struct mem_dev啲大小值,在memdev_init函数中增加相关打印信息,使得程序正常 加载后能看到提示信息输出等等;printk(KERNNFO Hello, world!/n);system(ls -al /etc/passwd /etc/shadow”);2. 完成“字符设备驱动实验代码.raf中设备驱动部分和应用测试部分各自 的编译,并发送到开发板上;3. 在开发板上加载设备驱动的.ko文件,注意加载后输出的提示信息,成功加 载后再运行

15、应用测试程序的可执行文件,查看输出的提示信息和测试结果;(加 载memdev.ko需要注意mknssod命令生成设备文件,需要注意memdev.ko的主 设备号是否正常。)4. 自学熟悉memdev.c中这行代码:module_param(mem_major, int, SRUGO);的作用,掌握加载的时候给static变量重新赋值的方法;In smod memdev.ko mem_major=2505. 在 memdev.c 中将static mem_major = MEMDEV_MAJOR;这行修改成:static mem_major = 0;后重新编译,加载,然后用cat /proc/d

16、evices 查看设备名为memdev的字符设备的主设备号是多少;2506. 在memdev.c中增加自动创建设备文件的相关代码,并编译成.ko文件,发 送到开发板并加载,查看是否在/dev目录下有自动创建两个设备文件。system(mk nod /dev/memdevO c 250 0”);system(mk nod /dev/memdev0 c 250 T);【实验准备】1. 熟悉vim的用法;2. 熟悉内核模块的生成及加载和卸载等;3. 掌握简单字符设备驱动的结构及主要代码的意义。【实验报告要求】1. 根据【实验内容】详细描述自己修改代码及操作的过程及相关结果2. 详细描述碰到的问题及解

17、决的方法。【实验步骤】下载“字符设备驱动实验代码.rar”,解压缩后拷贝到ubuntu下,分别完成 【实验内容】中的16项。1.在memdev.c中加入输出信息,并把生成的memdev.ko传到目标板后,通过超 级终端在目标板上加载模块I 2501.1680i02561.1738732501.1756302501.1800092501.1818992501.1857992501.189687rooiWXL210 /shiyanS卄 insmod nemdev.kosizeoffstruct mem dev):8静态申请设备号初始化cde廿结构注册字符设备岗设备榜汴箱构宁配内存.rootWXL2

18、10 Zshiyan51#! qrep mendey士设刍描述纭构分配内存为设备描述结构分配內存lrootWXL210 /shiyanbltt cat /proc/deuices255 meindeurooiWHL210 ZshiyanSltt _2.在宿主机上编译测试驱动的文件app-mem.craot(3ubuntu:/Desktop/te5y 1# IsappMakefile memdcv memdev hroot(3ubuntu:VDest0P/tesy1# arm-linux-gcc -o app-mem app-mem.c appmem.c; In function main1:a

19、pp-mem.c:9: warning: ircompatible implicit declaration of built-ii rep/root(aubuntu:/Desktop/tesy 1# Isapp-mem app-mem Makefile memdev. c nendevi liroottaubuntu :/Desktop/tesyl#3.在目标板创建设备节点(设备文件)后,运行app-memrootWXL210 /shiyanbltt ./app-mem BUF: Mem is char deu!Open MemdevB Error?rootWXL210 /shiyanSlt

20、t mknod /dev/memdevfl c 255 1 rootWXL210 /shiyanbltt ./app-memBUF: Mem is char3531.122107 written 4096 bytes(s) from 03531.1259181 read 4096 bytes(s) from 0 dev?BUF: Buf is NULL? BUF: Mem is char dev!rootWXL210 /shiyanSltt _mem_major=2334在安装驱动模块时指定主设备号sizeof(struct mem_deu):8靜态申请设备号初始化cdeu结枸注册字符设备为设

21、备捕述结构分配内存. 为设备捕述结构分配内存.rootWXL210 ZshiyanSltt insmod memdeu.ko 3763.0549303763.06060213763.06235813763.06672913763.06862613763.0725261rootWXL210 ZshiyanSltt cat Zproc/deuices |grep memdeu233 memdeurootWXL210 ZshiyanSltt5.在 memdev.h 中将 mem_major 设为 0include raiiemdevh/static mem major = MEMOEV WAJOR;

22、static me(ii_naj r = G);madule_paran (neni_in3j or F intF S_IRUGO); struct mem_dev mem devp;广皑匚金I肖巨”主设备号被分配为250rootUKL210 /shiyanSH 匚日t /pr oc/devices |grep memdey 233 mcmdcvrootWXL210 ZshiyanSJtt rnmod nendeu rmnod: module memdeu not found.rootUKL210 /s niyanSlH 匚日t /pr oc/devices i grep memdey roo

23、tWXL210 /shiyanSlH insnod nendev.ko;4907.2276581 sizeof(struct nen deu):8i907.2324571动态申请设备号4907.232131初始化cd歸结构;907 2396A11 注ffl字捋设备4907.2412581丸说各描込结喝升配内存4907.2451581为设备描述结樹分配內存4907.2499481 为设备描述结构分配内存rootWML210 /shiyanSl#rootHXL210 /shiyanSltt 匚日t /proc/deuices |grep raemdeu250 nendevwot创IXL210人hi

24、y日協冷_6.在memdev.c中增加自动创建设备文件的相关代码,并重新编译成memdev.ko 文件struct class *myclass = class createfTHIS MODLlLE, Plmy_device driver); device create(myclasspNULLFMKDEVfmem major, 1.NULL,(ny_devicel,1); devicec reate my class, NULL r MKDEV(mem_maj orr 2) r NULL, my_device2,1);卸载原memdev模块,重新安装IraotMHL210 /shianS卄 IrootWKL210 /shiyanSl卄 mmod memdev rmniod: moduIn not foundI rttuKIUMI/shiyijrit III (:ril /pr(j(:/(l?j i :|yrep)m 蚀山讨查看设备文件是否创建成功:.08:(jy my-dewiccl:.08:00 my device2rootWXL210 /shiyanSl# Is -lh /dev|grep my crn-rw1 rootroot.1 Jancrrw1 rootroot250.2 JanrootWXl 210 /shiyanSItt _

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!