12(3)班专业见习报告_第1页
12(3)班专业见习报告_第2页
12(3)班专业见习报告_第3页
12(3)班专业见习报告_第4页
12(3)班专业见习报告_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、注南师范曇院针溥机鸟信息工程系实习(实训)材料实习项目专业见习实习时间 2014.7.52014.7.18专 业计算机科学与技术学号班 级12级班姓名实习单位实习具体时间南京华清远见科技有限公司2014. 7. 52014. 7. 18实习内容7月5日7月6 h动员准备。7月7日7月16日 项目实训。以”游船租用管理系统”项目为实例,对嵌 入式linux和arm平台上的开发进行介绍和实训7月17日7月18日实习小结。实习要求1、态度端正,目的明确,虚心听取校内外指导教师的指导和意见,按照实习计 划完成实习任务。2、遵守学校和实习单位的各项规章制度,服从指导教师的安排。3、认真填写相关实习材料和

2、总结指导教师评语及实习成绩成绩 评定指导教师签字:年 月日系主任签字(盖章):年 月日公园ic卡划艇收费系统报告一、实习目的通过实训,可以让学生对嵌入式项目有一定认识,了解整个嵌入式项目的过 程,便于以后在企业屮参与项口吋有一定经验。通过实训学生可以把以前学过的 基础知识,如c语言,linux操作系统,arm等,进行融会贯通,让学生了解到 他们以前所学的知识在嵌入式开发方而是冇用的,也让学生对自己离一个真正的 欧入式工程师还有多少弟距有一个深刻的认识。通过这次实训,学生还可以掌握 相关的嵌入式开发技巧,对嵌入式ijnux和arm平台上的开发积累一定经验,为 以后企业项口打下一个比较好的基础。二

3、、实习过程及内容(包括实习过程、主要收获、存在问题、解决 措施不少于2000字)(-)实习内容1、嵌入式系统和linux的基本操作linux操作系统卜,任何东西都被归结为一个文件,分为:(1) 普通文件(2) 二进制文件。(3) 数据格式文件(data)文件操作命令:(1) cd经常使用的“cd”命令代表了改变目录。它在终端中改变工作目录來执行, 复制,移动,读,写等等操作cd /home 进入/ home' 目录cd . 返回上一级目录cd .返回上两级目录cd进入个人的主目录cd "userl进入个人的主口录cd - 返冋上次所在的目录注:cd会改变工作目录为用户的家目录

4、,而且当用户发现自己在终端中 迷失了路径时,“cd从当前工作目录切换到(当前工作目录的)父目录。(2) mkdir(make directory)命令在命名路径下创建新的目录。然而如果目录己经 存在了,那么它就会返回一个错误信息不能创建文件夹,文件夹已经存在了 (z,carrnot create folder, folder already exists")。如想可以在没右上级子目录的情况下完成,既创立一个目录树需在mkdir 后使用参数:-p例如:$mkdir dayl day2 day3 一p(3) rmdir删除了目录命令rm -rf删除文件,不做任何提示,直接删除(4) 移动

5、文件格式: mv -option <source> destination path filename功能:将指定文件进行移动说明:-option-f 强制覆盖-i 覆盖前询问-b覆盖前备份仮9: rootlocalhost root # mv -i myfile.c /progl/(5) sudo password 修改密码su变更用户身份。语法:su -fimp -help -version - c指令>-s <shell>用户 帐号补充说明:su可让用户暂时变更登入的身份。变更时须输入所要变更的用户 帐号与密码。(6) 复制命令格式: cp -option

6、<source> destination path filename功能:将指定源文件复制到目标文件中说明:-option-a保留链接、文件属性(7)halt关机命令reboot重启命令sudo shutdown-h now立即关机sudo shutdown-h+45 "that is all,game over ,886!”sudo reboot now 立即重启sudo shutdown - r nowsudo shutdown - r +60六十分钟后重启2、gcc (gnu comp订er collection, gnu编译器集合),是一套由gnu开发的 编程语言

7、编译器。(1)预处理gcc - e gcctest. c -o gcctest. i(2)编译/生成汇编代码,检查语法规范性gcc -s gcctest i 一0 gcctest s(3)汇编/生成机器代码gcc gcctest. o -o gcctest.(4)运行gcc gcctest c -lm./gcctest编辑完成后按esc键,再按shift +分号进行保存3、变量变量能由字母、下划线、数字且只能以字母或下划线开头,变量不能是特殊 字符。在程序运行时,变量占据一定大小的存储空间。(1)c的四种存储类型auto:用auto存储类型说明的变量都是局部与某个程序范围内的(可以省 略aut

8、o关键字)。register:称为寄存器型,作用:将变量放入cpu的寄存器存储空间屮,加快程序的运彳亍速度。例如:register int countextern:外部参照引用型,作用:引用在其他文件中函数体外部说明的变量。 一般用在函数间的传递。static:静态存储类型,可在函数体内,也可在函数体外说明,与auto的 不同:static存储类型的变量在内存中是以固定地址存放的,不是以堆栈方式 存放的。(2) 关系运算符运算符: ><二二二二!二(3) 逻辑运算符!逻辑非 ! (x=0)&逻辑与 x>0&&x<0| 逻辑或 y10|x10(4)

9、 位运算符位逻辑反&位逻辑与i位逻辑或八位逻辑异或»右位移 左位移4、指针(1) 在计算机内部存储器(简称内存)中,每一个字节单元,都有一个编号, 称为地址。(2) 在c语言中,内存单元的地址称为指针,专门用来存放地址的变量,称为 指针变量(pointer variable) o(3) 指针与指针变量指针:一个变量的地址指针变量:专门存放变量地址的变量叫指针变量。(4) &与*运算符&含义:取变量的地址;*含义:取指针所指向变量的内容。(5) 指针变量指针变量与其所指向的变量之间的关系。指针变量的定义:一般形式:存储类型数据类型 *指针名;注:空指针并不是指针

10、存储器为空或没有的概念,而是指针存放着特定的 值一零值。指针在说明的同时,也可以被赋予初值,称为指针的初始化。一般形式是:存储类型数据类型*指针变量名二地址量;注:指针说明吋指定的数据类型不是指针变量木身的数据类型,而是指针 目标的数据类型。简称为指针的数据类型。(6) 指针关系运算两指针z间的关系运算表示它们指向的地址位置z间的关系。指向地址大的 指针大于指向地址小的指针。5、const型指针和void型指针(1) const 型const类型修饰符可以将指针变量常量化。一般形式:const数据类型*指针变量名称二指针运算表达式; 常量化指针口标是限制通过指针改变其口标的数值。(2) voi

11、d 型void型的指针变量是一种不确定数据类型的指针变量,它可以通过强制类 型转换让该变量指向任何数据类型的变量或数组。一般形式为:void *指针变量名称;6、指针关系运算两指针z间的关系运算表示它们指向的地址位置z间的关系。指向地址大的 指针大于指向地址小的指针。(二)数据库1、sqlite 基础(1)退出 sqlitc3sqlite>. quit(2)显示当前打开的数据库文件sqlite>. database(3)显示数据库屮所冇表名sqlitc>. tables(4)查看表的结构sqlite>. schema <table_name> 尖角号不需要输

12、入(5)安装命令sudo apt-getupdate 更新源代码sudo apt-getinstallsqlitcsudo apt-getinstal1vim(三)nfs1、nfs安装$ sudo apt-getinstallnfs-kernel-server nfs-common portmap2、nfs配置配置/etc/exports文件$ sudo vim /etc/exports 在文件最后加入如下内容:/rootnfs *(rw, sync, no_root_squash)/home/xiaoming/nfsboot *(注:nfs允许挂载的口录及权限在文件/etc/exports屮

13、进行了定义。 /rootnfs是要共享的目录。3、重启服务$ sudo /etc/init. d/portmap restartsudo /etc/init. d/nfskernel-server stop$ sudo /etc/init.d/nfs-kernel-server restart 4、测试(1) 显示出共享出來的目录$ showmount e(2) 将nfs的rootnfs 口录挂载到木地磁盘上。$ sudo mount -t nfs localhost:/rootnfs /mnt(3) 查看挂载情况$ df(4) 卸载挂载$ sudo umount /mnt(5) 测试服务器查

14、看服务目录和权限:sshowmount -e我得到的结果是:export list for myzonc:/nfsboot (everyone)5、卸载nfs文件系统#sudo umount 218.192.*.*:/nfsboot /mnt(四) make1、make会在当前目录下找名字叫“makefile"或“makef订e”的文件。2、如果找到,它会找文件中的第一个廿标文件(target),在上面的例子中,他 会找到“edit”这个文件,并把这个文件作为最终的口标文件。3、如果edit文件不存在,或是edit所依赖的后面的.0文件的文件修改时间 要比edit这个文件新,那么,他

15、就会执行后而所定义的命令来生成edit这个文 件。4、如果edit所依赖的.o文件也不存在,那么make会在当前文件中找目标为.o 文件的依赖性,如果找到则再根据那一个规则生成o文件。(这有点像一个堆栈 的过程)5、如果c文件和h文件是存在,于是make会生成.o文件,然后再用.o也就 是执行文件edit注:口j以使用别的文件名來书写makefile,如果要指定特定的makefile,可以使用 make 的"-f”,如:make -f make. linux(五) nfs服务配置第一步先配置/ctc/cxports文件路径sudo vim /etc/exports/共享的目录读写权限

16、第二步重启服务sudo /etc/init. d/portmap restartsudo /etc/initd/nfs-kernel-server stopsudo /etc/init.d/nfs-kcrncl-server restart sudo service nfs-目标 ip 网址 restart 第三步.测试1、显示出共享出来的目录showmount -e2将nfs的rootnfs目录挂载到本地磁盘上。sudo mount -t nfs 1ocalhost:/rootnfs /mnt3、查看挂载情况:df4、卸载挂载:sudo umount /mnt测试客户端:先在/nfsboot

17、里新建文件,主要是作测使用touch /nfsboot/testfi 1 esudo mount 口标 ip 地址:/nfsboot /mnt再查看一下:is /mnttestfile卸载nfs文件系统:sudo umount 目标 ip 地址/nfsboot /mnt(六)解压文件步骤:1、将文件移动到自己的show中2、将文件解压tar xvf arm-none-!inux-gnueabi. tar. bz23、将解压后的文件移动到toolchain文件夹中mv arm-2010.09 toolchain4、sudo vi/etc/bash.bashbashrc5、进入vi编辑器添加环境变

18、量export path=$path:/home/linux/toolchain/bin6、重启配置文件source /etc/bash bashrc7、测试arm-none-1i nux-gnueabi-gcc - v(七) 、烧写1、在 putty 上设置: 将 bootcmd 和 bootargs 改为 setenv bootcmd nand read 200080000 1000000 3000000; go 200008000sctcnv bootargs root 二/dev/mtdblock3 rootffstype=jffs2 rw init-/ inuxrc console=

19、tty saco,115200saveenv-文件系统加载成功后制定的第一个启动程序是、1 inuxrc烧写内核:tftp将 linux-2. 6. 35. tar. bz2 拷贝到/home/linux 卜'并解压$ tar xvf 1 inux-2. 6. 35. tar. bz2$ cd linux2. 6. 35修改内核顶层目录下的makefile$ vim makefile修改:arch ?二 $ (subarch)cross_compile ?二cross_compile ?= $ (config_cross_compile:"%'=%)为:arch ?=

20、 armcross_comptle ?二 arm-none-1inux-gnueabi-o 0 xiaomingubuntu: /mnt/hgfs/share/linux-2.6.35文件(f)编辑(e)查看(v)终端(t)帮助(h)178179180181182183184185186187188189190191192193194195196197198199i the default arch is the host where make is executed.i cross.compile specify the prefix used for all executables use

21、d i during compilation. only gcc and related bin-utils executables f are prefixed with $(cross.compile).f cross.compile can be set on thei make cross_compile=ia64-linux-i alternatively cross.compile cani a third alternative is to storei *make" in the configured kernel t default value for cross.

22、compile i note: some architectures assigncommand linebe set in the environment.a setting in .config so that plain build directory always uses that, is not to prefix executables cross compile in their arch/*/makefileexport kbuild.buildhost := $(subarch) arch?= armcross compile ?=onelinuxanueabi* arch

23、itecture as present in compile.h uts.machine := $(arch)srcarch := $(arch)i additional arch settings for x86 ifeq ($(arch),i386)kefile *192,41-43f"插入"" 0 xiaomingubuntu:- 它xiaomingubuntu: /m2、拷贝标准板配置文件$ cp arch/arm/confi gs/s5pc100_defconfig.config 3、配置内核$ make menuconfig该命令执行时会弹出一个菜单,

24、我们可以对内核进行详细的配置。这里我们先查 看一下,内核都提供了那些功能!4、编译内核$ make zimage通过上述操作我们能够在arch/arm/boot目录下生成一个zimage文件,这就是 经过压缩的内核镜像。(八)音乐播放器制作过程linux环境下1、将文件拷贝到mnt/hgfs/share中 2、进入mnt/hgfs/share 中:cd mnt/hgfs/share3、见文件复制到home下:cp rootfs.jffs2 zimage / -r4、cp rootfs. jffs2 zimage ./iftpboot5、将文件挂载到nfs上(1) sudo service nf

25、s-kernel-server restar(2) showmount -e(四个ok)(3) sudo service tftpd-hpei stop(4) sudo service tftpd-hpa startputty环境下烧写:在putty上设置:将bootcmd和bootargs改为:1、sctcnv ipaddr 192. 168.3.892、setenv serverip 192.16& 2.893、saveenv4、ping 192. 168. 2. 895、sctc nv boot args root 二 /dcv/m tdblock3 rootfsty pe=jf

26、fs2 rw init=/linuxrcconsolc=ttysaco, 1152006、saveenv7、tftp 20008000 zimage (回车)8 nand erase 100000 3000009、nand write 20008000 100000 30000010、tftp 20008000 zimage (回车)11、nand erase 100000 30000012、nand write 20008000 100000 30000013、重新启动板了注:1文件系统加载成功后指定的第一个启动程序是/linuxrc在ubentu上启动tftp服务,并使开发板ping通ub

27、entu在putty上:2. 首先确保在tftpboot里冇zimage和rootfs. jffs23. 烧写文件系统,文件系统类型是jffs2,文件名为rootfs. jffs2再次启动开发板:./madplay xxx. mp3(九) 将u盘插入板子并播放u盘中的歌曲1、操作(1) putty 打开/ is/输入fdisk -1/dev/sda(2) cd mnt/disk(3) mount - t vfat/dev/sda /mnt/disk(4) cd mnt/disk(5) ./maidplay/mnt/disk/xxxx2、查看u盘fdisk - 1 /dev/sdamount -

28、 t vfat /dev/sdbl /mnt/disk3、关于文件的读写问题:r或r+文件只读,前提是文件必须存在r+或r+b文件可读写,前提是文件存在w或wb打开文件,只可读写文件,若文件存在,则长度为0 ,所以冇删除文档的口j能,若文件不存在,则创建文件(十)挂载文件1、将 rowboot 中 bin 卜的 rowboat 复制到 nfsboot 中挂载:在putty上设置:将bootcmd和bootargs改为:setenv bootcmd tftp 20008000 zimage ; go 20008000sctcnv bootargsroot=nfs nfsroot二192. 168

29、. x. x:/home/xi aomi ng/nfsboot/rootfs ip二192. 168. y. y init=/linuxrc console=ttysac0, 115200sctcnv ipaddr 192. 16& y. y (你的开发板ip)setenv serverip 192. 168 x. x (虚拟机ip)savccnv在ubunto上设置:检查ip: ifeonfig修改ip: sudo ifeonfig ctho 192. 168.0.1启动tftp月艮务:sudo /etc/ini t. d/tftpd-hpa restart 或 sudo servi

30、ce tftpd-hpa restart(定要先设置ip,否则tftp无法启动)启动nfs月艮务:sudo /etc/init. d/nfskernel-server restart 确保在你的tftpboot 口录里有zlmage,在nfsboot 口录里有rootfs 口录 ping通后,p输入 tftp 20008000 zlmage (回车)go 20008000 (回车)>»»» 8 <«««««««輪書员录:2 .uihikt o irxinusve r:i root*f

31、ar/ii /rowboatpl«a«« pixtr arxivate tm>irooclraraignt /l “3切 9«c mc 1moos/1 mr- ncosed root (bf* “etes) on «cvik osxxi iblt aaaotyi m运行结果:53003 5 11.-o o o oi-.75! he emcomi puttv4o d"akio 4«vie«*o device<0 “"kfoxforfordaxdmdai3mxbs10 rinum2mm89&quo

32、t;mn«»o adc/wkc primryksoc! xc7 h>?1 <-> 33e-«c5? natcina eteklta devle«101 soktcf eubie k«i0t«r*4net: rcaiftcrea protocol faaxxy xv3r93c4xx-rxe! bexory»?d4tc/timu*b 1-1: new full >vrd 033 device ta3e4)0obe and addres 9hub 1-1:10* 088 hub poundhub l-lil

33、0 4 post* detci<du0: xak sp iqqkbp full-duplex oxgdclxr-conna: ygo d«um>icxp confiat cearletc:deee-ethow hoeclw、g8",reaomin«(r»o<ie)tboo0eswc»2».25>.25s.2$>t xoo1msvys«1h.14b.j.i*. koo(p«u>-3acg port ot rfc 10003/j oa x>2loounq up porx or

34、rfc 100005/1 co in.im.2.99vff! koontwd (nt* cilevyttw oa device olli.mra:)fx«««« kates to actives* uu« eomole. (<« “ /j9 1aximit# tree (rocc|f«r、c /|t /revtoatrrrrwi uxm'tt押色人"人 a300mmo10000-»»»»»»» go ««

35、1;<««««tfttmf.1.«««!». 2 «o (十一)存在问题与解决措施遇到的问题:1、在当前目录下不能创建文件和文件夹问题分析:对linux系统的廿录结构不够了解,不能在非主廿录下使用普通用 户权限去完成指令。解决办法:用su命令切换到root权限,然后完成操作,完成后记得输入su xiaoming切换会普通用户xiaoming的权限。2、vi编辑器使用时,不能退出的问题,提示未保存分析:编写的代码或文本未保存在确定的文件中,就会提示文件未保存。解决办法:可在底行模式下输入w命令保存,或

36、输入q!强制退出vim,但编写 内容将不会保存。具休操作在vi编辑器插入状态下(可按i键由可视状态进人 状态)按esc键光标跳到页尾,再按shift+;,再输入wq或q退出vi编辑器界 面。3、gee交叉编译器安装完成后,linux基础指令不能使用分析:修改配置文件吋,环境变量修改出错,shell找不到对应的变量不能正确 解析。解决办法:切换到root用户,直接找到vi的可执行文件运行后打开改错的配 置文件,保存后重启系统后会口动将口动加载止确的变量。4、三角形程序使用gcc编译提示没有sqrt ,但已经包含了 math, h头文件; 分析:math, h头文件并不在标准库屮,gec默认的在标

37、准库屮寻找sqrto所以编译时应指明链接math, h头文件解决方案: gcc fi1 ename, c - o outname -im代码如下:include <stdio.h> include <math. h>int m3in(void) float a, b, c, s, area;scanf (f, %f, %f,&a, &b, &c);s=l. 0/2*(a+b+c);area=sqrt(s*(sa)* (sb)* (sc);printf(z,a=%7. 2f, b =%7. 2f, c=%7. 2f, s=%7. 2fn,a, b, c, s);printf (,area=%7. 2fn,area) ; return 0;i5、sqlite

温馨提示

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

评论

0/150

提交评论