找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1832|回复: 1
收起左侧

裸机开发环境及linux操作系统下开发环境搭建 及Linux常用命令及vi, gdb的使用

[复制链接]
ID:358217 发表于 2018-6-25 09:51 | 显示全部楼层 |阅读模式
裸机开发环境及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)
   (资料下载地址:http://pan.baidu.com/s/1gewoJAz
实验内容及步骤:
一、裸机开发环境搭建(这一大步骤需要在实验课上完成,第二步可以回去自己做)
下面为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的使用
一、常用命令使用介绍
1ls 命令                       
----------------------------------------------------------------------  
ls               以默认方式显示当前目录文件列表   
ls      a  显示所有文件包括隐藏文件        
ls      l   显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行
----------------------------------------------------------------------  
2.cd 命令                        
cd     dir    切换到当前目录下的 dir 目录   
cd     ..      切换到到上一级目录            
cd     ~       切换到用户目录,比如是 root 用户,则切换到/root
----------------------------------------------------------------------  
3rm 命令                     
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
----------------------------------------------------------------------
16dmesg,uname 命令               
dmesg                       显示 kernle 启动及驱动装载信息
uname     -a                       显示操作系统的类型
----------------------------------------------------------------------
17.string 命令                                          
string        file    显示 file 文件中的 ASCII 字符内容
---------------------------------------------------------------------
18rpm 命令                                          
rpm  -ihv  program.rpm   安装程序 program 并显示安装进程
----------------------------------------------------------------------
19.文件目录管理命令                    
su     root                                    切换到超级用户
chmod     a+x  file                      file 文件设置为可执行,脚本类文件一定要这样设置一个,否则得用 bash
                                                             file才能执行
chmod     666  file                     将文件 file 设置为可读写
chown      user /dir                    /dir 目录设置为 user 所有
----------------------------------------------------------------------
20mknod     命令                                   
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 下命令有哪几种可使用的通配符?分别代表什么含义?


回复

使用道具 举报

ID:245437 发表于 2019-6-5 14:59 | 显示全部楼层
钟港你好厉害呀,是东莞理工的吗,嘻嘻,好巧哦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表