裸机开发环境及linux操作系统下开发环境搭建 及Linux常用命令及vi, gdb的使用 实验目的: (1)掌握嵌入式开发环境搭建的基本流程 (2)掌握linux系统安装过程,熟悉基本的Linux指令操作 (3)理解交叉编译的意义 实验原理: 嵌入式软件开发不同于PC机的软件开发,由于不同硬件平台的指令系统不同,要想在个人计算机上编写嵌入式软件和程序就需要使用对应的嵌入式平台的开发环境,比如大家学过的51单片机,用的KEIL(keil-C51)软件就是针对51内核平台下的集成开发环境,keil-C51软件中集成了代码编写、交叉编译、链接、程序烧写、仿真等最主要功能,从而使51单片机软件开发者在一个软件中实现了整个的程序开发流程,方便快捷。 同理,ARM内核平台也有其相应的开发平台,包括IAR,KEIL FOR ARM这两个著名软件,这两个软件在开发不带操作系统以及带有小型嵌入式操作系统(如u\Cos,RT-thread,Vx-works等)的产品时非常方便,但在开发如linux、安卓系统的产品时力不能及。因此需要用到更通用些的开发环境,如eclipse、PC-linux系统。 Eclipse是一个开源的软件工程文件管理界面,当它的底层安装了不同的编译、仿真等工具后,就可以用来开发不同平台的软件,如安卓APP,FPGA软核代码,当然也包括ARM软件。 当需要开发带有linux内核的大型嵌入式系统时,通常要在linux操作系统下进行,因此安装linux操作系统是开发嵌入式高端产品的必由之路,linux的使用流程能够帮助你更好理解嵌入式开发的每个环节。 实验仪器及资料: 1个人电脑(建议安装winXP或win7-32b,更高版本系统可能导致驱动安装失败) 2 FS210试验箱 3 FS210试验箱配套资料(12G) 实验内容及步骤: 一、裸机开发环境搭建(这一大步骤需要在实验课上完成,第二步可以回去自己做) 下面为win7-32b系统下软件安装流程,以后的实验都使用win7-32位系统进行,使用其他系统的同学请参照实验箱配套书籍进行操作。此实验手册不做介绍。 把下载的实验箱资料解压(假设解压在桌面上)后: (1)安装GCC编译器和Yagarto工具包(圈住的两个都装,安装位置随意):(已经安装) file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif (2)安装FS-JTAG调试软件(安装位置随意):(已经安装) file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image004.gif (3)安装FS-JTAG驱动: 如图所示用USB线连接JTAG仿真器和电脑 file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg <我的电脑>--右键--管理--设备管理器,如图 会出现两个带黄色叹号的设备(下图中的两个未知设备不必管它,只关心那两个“USB<=>JTAG&RS232”即可) file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg 鼠标放在“USB<=>JTAG&RS232”上--右键--更新驱动程序软件,如图 选择第二项: file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image010.gif ④浏览选择驱动位置并点击下一步,安装完成 file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image012.gif 注意:在win764位以及更高版本系统中会出现提示“驱动数字签名不可用”或者“哈希值不可用“的问题,而且有的电脑可以解决,有的不能解决,同学们自行百度。 ⑤重复第三步和第四步,直到使设备管理器里面没有带叹号的设备(一共三次) (4)安装JRE file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image014.gif (5)安装串口线驱动 ①如图所示链接串口线 file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image016.jpg ②打开设备管理器按照“(3)安装JTAG驱动”方法安装串口驱动 file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image018.gif (6)解压Eclipse,并打开 ① file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image020.gif ②自行在D盘新建一个Eclipse文件夹,并把上图压缩包解压至Eclipse文件夹中 ③下图是D盘下解压的eclipse,将其发送到桌面,留待以后使用 file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image022.gif ④双击打开eclipse,设定工作路径(即以后你用eclipse新建的软件工程的默认保存位置),点击Workbench。如下图: file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image024.gif 至此,可用于开发ARM裸机程序的开发环境搭建完成。 二、操作系统开发环境搭建(这一步可以回宿舍自己做,实验室电脑已经安装好,只需要在做第四个实验之前完成这一步骤就可以了,建议做完第二个实验之后做这一步) (1)环境搭建前的准备 ①检查主机配置 file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image026.gif ②检查自己的电脑是否支持虚拟化技术(只有支持虚拟化技术的CPU才能运行虚拟机软件) 如果显示有下图红圈中的VT-x,则表示支持虚拟化技术 file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image028.gif file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image030.gif 如果支持就继续实验,不支持的话,实验一下面的步骤和实验四没法做 ③继续,打开计算机的虚拟化功能:关机重启计算机,重启时按下F2按键进入下图状态,按照下图操作 file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image032.gif 准备工作完成,下面进入环境搭建流程 (2)环境搭建与初级设置 ①安装VMware Player,双击下图程序安装 file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image034.gif ②解压Ubuntu系统镜像到D盘新建文件夹中(其他磁盘也可以) file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image036.gif 解压后在D盘中: file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image038.gif ③打开虚拟机,进行初级配置 file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image040.gif file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image042.gif ④编辑虚拟机设置 file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image044.gif ⑤分别修改各项配置参数1、内存。2、处理器。3、网络适配器。4、共享目录 虚拟机内存分配大小根据自己的电脑配置修改,如果是2G内存,则分配约1G即可,如果大于等于4G内存,则分配大于1G即可。本机内存4G,如下图分配1.5G给虚拟机。 file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image046.gif 查看处理器的配置:计算机--右键--属性 可以看到,我的计算机为双核四线程(看不懂的可以用鲁大师查看) 我的计算机为双核,每个核心为双线程。 file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image048.jpg 因此设置如下(下图中所谓核心数量=内核数x每个内核的线程数) file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image050.gif 网络适配器为桥接模式: file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image052.jpg file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image054.gif file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image056.gif 上图桥接到了有线网卡上,因为我们后面要用有线网卡往开发板烧写程序 至于无线网卡,需要取消掉对它的桥接 共享目录添加:添加--下一步--浏览--下一步--完成 file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image058.jpg file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image060.gif file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image062.gif 初级配置完成 ⑥打开虚拟机 file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image064.gif ⑦ file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image066.gif 密码为1,回车 file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image068.gif 打开了!!! file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image070.gif 如何关闭!!! file:///C:/Users/钟港/AppData/Local/Temp/msohtmlclip1/01/clip_image072.gif 到现在为止,linux开发环境的配置还没有结束,但是第二个和第三个实验的开发环境早已经可以使用了。 至于linux下的开发环境搭建还差一点点,留在第四个实验时接着介绍! (三)Linux常用命令及vi, gdb的使用 一、常用命令使用介绍 1.ls 命令 ---------------------------------------------------------------------- ls 以默认方式显示当前目录文件列表 ls –a 显示所有文件包括隐藏文件 ls –l 显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行 ---------------------------------------------------------------------- 2.cd 命令 cd dir 切换到当前目录下的 dir 目录 cd .. 切换到到上一级目录 cd ~ 切换到用户目录,比如是 root 用户,则切换到/root 下 ---------------------------------------------------------------------- 3.rm 命令 rm file 删除某一个文件 rm -rf dir 删除当前目录下叫 dir 的整个目录 ---------------------------------------------------------------------- 4.cp 命令 cp source target 将文件 source 复制为 target cp –av soure_dir target_dir 将整个目录复制,两目录完全一样 cp –fr source_dir target_dir 将整个目录复制,并且是以非链接方式复制,当 source 目录带有符号链接时,两个目录不相同 ---------------------------------------------------------------------- 5.mv 命令 mv source target 将文件或者目录 source 更名为 target ---------------------------------------------------------------------- 6.diff 命令 diff -ruN dir1 dir2 > <patch_file> 比较目录 1 与目录 2 中的文件 ---------------------------------------------------------------------- 7.echo 命令 echo message 显示一串字符 ---------------------------------------------------------------------- 8.cat 命令 cat file 显示文件的内容,和 DOS 的 type 相同 cat file| more 显示文件的内容并传输到 more 程序实现分页显示,使用命令 less file可实现相同的功能more 分页命令,一般通过管道将内容传给它,如 ls | more ---------------------------------------------------------------------- 9.du 命令 du 计算当前目录的容量 du -sm /root 计算/root 目录的容量并以 M 为单位 ---------------------------------------------------------------------- 10.find 命令 find -name <path> file 在/path 目录下查找看是否有文件 file ---------------------------------------------------------------------- 11.grep 命令 grep -r “chars” ./ 在当前目录的所有文件查找字串 chars -r 表示递归查找子目录 ---------------------------------------------------------------------- 12.vi 的使用 vi file 编辑文件 file vi 原基本使用及命令: vi 分为编辑状态和命令状态。输入命令要先按 ESC,退出编辑状态,然后输入命令。 常用命令有: :x(退出) :x!(退出不保存) :w(保存文件) :w!(不询问方式写入文件) :r file(读文件 file) :%s/oldchars/newchars/g(将所有字串 oldchars 换成 newchars) i 进入编辑插入状态 ESC 退出编辑状态 ---------------------------------------------------------------------- 13.man 命令 man ls 读取关于 ls 命令的帮助 ---------------------------------------------------------------------- 14.启动关闭计算机命令 reboot 重新启动计算机 halt 关闭计算机 init 0 关闭所有应用程序和服务,进入纯净的操作环境 init 1 重新启动应用及服务 init 6 重新启动计算机 ---------------------------------------------------------------------- 15.tar 命令 tar -xfzv file.tgz 将文件 file.tgz 解压 tar -zcvf file.tgz <source> 将文件或目录<source>压缩为 file.tgz gzip directory.tar 将覆盖原文件生成压缩的 directory.tar.gz gunzip directory.tar.gz 覆盖原文件解压生成不压缩的 directory.tar。 ---------------------------------------------------------------------- 16.dmesg,uname 命令 dmesg 显示 kernle 启动及驱动装载信息 uname -a 显示操作系统的类型 ---------------------------------------------------------------------- 17.string 命令 string file 显示 file 文件中的 ASCII 字符内容 --------------------------------------------------------------------- 18.rpm 命令 rpm -ihv program.rpm 安装程序 program 并显示安装进程 ---------------------------------------------------------------------- 19.文件目录管理命令 su root 切换到超级用户 chmod a+x file 将 file 文件设置为可执行,脚本类文件一定要这样设置一个,否则得用 bash file才能执行 chmod 666 file 将文件 file 设置为可读写 chown user /dir 将/dir 目录设置为 user 所有 ---------------------------------------------------------------------- 20.mknod 命令 mknod /dev/hda1 b 3 1 创建块设备 hda1,主设备号为 3,从设备号为 1,即 master 硬盘的第一个分区 Mknod /dev/tty1 c 4 1 创建字符设备 tty1,主设备号为 4,众设备号为 1,即第一个 tty 终端 ---------------------------------------------------------------------- Touch /tmp/running在/tmp 下创建一个临时文件 running,重新启动后消失 ---------------------------------------------------------------------- 21.磁盘管理的命令 fdisk /dev/hda 就像执行了 dos 的 fdisk 一样 mount -t ext2 /dev/hda1 /mnt 把/dev/hda1 装载到 /mnt 目录 df 显示文件系统装载的相关信息 mount -t nfs 192.168.1.1:/sharedir/mnt 将 nfs 服务的共享目录 sharedir 加载到/mnt/nfs 目录 umount /mnt 将/mnt 目录卸载,/mnt 目录必须处于空闲状态 sync 刷新缓冲区,使内容与磁盘同步, mkfs.ext2 /dev/hda1 格式化/dev/hda1 为 ext2 格式 dd if=/dev/zero of=root.ram bs=1024,count=1024 生成一个大小为 1M 的块设备,可以把它当作硬盘的一个分区来用 22.程序开发有关命令 gcc hello.c-o hello 将 hello.c 编译成名为 hello 的二进制执行文件 ldd program 显示程序所使用了哪些库 23.系统有关命令 ps 显示当前系统进程信息 ps –ef 显示系统所有进程信息 kill -9 500 将进程编号为 500 的程序杀死 top 显示系统进程的活动情况,按占 CPU 资源百分比来分 free 显示系统内存及 swap 使用情况 time program 在 program 程序结束后,将计算出 program 运行所使用的时间 网络命令 ifconfig eth0 192.168.1.2 捆绑网卡 1 的 IP 地址为 192.168.1.2 ---------------------------------------------------------------------- 24、登录网络服务器 telnet 192.168.1.1 登陆 IP 为 192.168.1.1 的 telnet 服务器 ftp 192.168.1.1 登陆到 ftp 服务器 实验思考 Linux 下命令有哪几种可使用的通配符?分别代表什么含义?
|