2015年(29)
分类: 嵌入式
2015-04-17 13:42:30
Ubuntu下软件安装(在terminal终端中):
全新安装:sudo apt-get install 工具名
重新安装:sudo apt-get –-reinstall install 工具名 注意:reinstall前两个横杆
卸载工具:sudo apt-get remove 工具名
卸载工具及配置:sudo apt-get –-purge remove 工具名 注意:purge前两个横杆
更新工具源:
1、 修改/etc/apt/sources.list中的内容,该文件中的内容为源列表,网上输入“Ubuntu更新源”即可找到。
2、 使源生效:sudo apt-get update
因为安装都需要root权限,所以使用sudo
1、 如何将PC上交叉编译完成的嵌入式程序烧写入处理器中?
对于S32440,、S3C2410,烧写可以通过以下3种方式:
A、 在主机上交叉编译bootloader,通过JTAG或JLINK烧录到单板中,但是,JTAG的烧写效率非常低,它适合烧写空白单板。为了方便,通常选用具有串口传输、网络传输、烧写flash功能的bootloader,它可以快速从主机获得可执行代码,然后烧写入单板或直接运行。
JTAG和JLINK的关系。调试ARM要遵循ARM的调试接口协议,其中,JTAG就是其中一种协议,这是硬件提供的接口,而像IAR、KEIL、ADS这些烧写仿真软件来说,它们也有一个公共的调试接口,其中RDI就是其中一种(RDI接口是ARM公司提出的调试接口标准,主要用于ARM芯片的JTAG仿真),那么,实现IDE(集成开发环境)RDI接口与ARM调试协议(JTAG)的转换就能实现硬件与软件的互联,如何转换呢?两种做法:
1) 在电脑上写一个服务程序,将IAR、KEIL和ADS中的RDI命令解析成相关的JTAG协议,然后经过一个物理转换接口(仅仅是物理上的转换,不涉及内容)发送给目标板。H-JTAG就是这样做的,H-JTAG的硬件仅仅是一个物理电平的转换接口,所以H-JTAG设计比较简单,而PC中安装的h-JTAG软件,负责从RDI到JTAG的协议转换。
2) 设计一个硬件板,用此板直接接收来自IAR、KEIL和ADS等软件的调试命令,由此板提供RDI->JTAG的协议转换服务。然后,与目标板通信,这就算JLINK的工作原理。
由此看出,H-JTAG由PC机上的软件进行协议解析,所以硬件简单,但是速度较慢,而第二种方法,JLINK一般带一个强劲的CPU,作硬件协议转换,硬件复杂,但是速度快。
JTAG的功能有两大类:首先,它可以用于测试芯片的电气特性,用于检测芯片是否存在问题;另外,可以用于Debug,对各类芯片以及其外围设备进行调试,一个含有JTAG Debug接口模块的CPU,主要时钟正常,就可以通过JTAG接口访问CPU内部寄存器,以及挂在CPU总线上的设备以及内置模块的寄存器。
B、 在通过JTAG将bootloader烧录到目标机后,后续的烧写操作可以通过bootloader的帮助进行了。在主机上编译嵌入式linux内核,通过bootloader烧录目标机中或可以直接加载到RAM中进行运行。一个可在目标机上运行的Linux内核是进行后续开发的基础。为了调试方便,内核应该支持网络文件系统(NFS),即主机编译好程序后,在单板启动后,单板可以通过NFS获取程序,然后运行。
C、 在主机编译各类的应用程序,目标机启动内核后,通过NFS运行这些应用,通过验证的应用,就可以烧写到目标板中了。
如下图,为主机与目标机间的通讯关系图:
2、 linux的网络文件系统构建nfs,nfs相当于windows下的共享文件夹机制。
安装vsftpd服务器软件:sudo apt-get install nft-kernel-server
配置nfs:通过修改/etc/exports文件,可以实现对服务器的配置。在/etc/exports后添加下面一行:/usr/local/armdir *(rw,sync,no_root_squash,no_subtree_check)
将/usr/local/armdir作为共享目录。
使配置生效:sudo exportfs –arv
测试是否生效:sudo mount –t nfs localhost:/usr/local/armdir /usr/local/testdir
看看testdir中的内容是否变为和armdir的内容一致,一致的话,说明nfs服务器开启成功,否则会提示出错误。如果您要解除挂载,使用umount即可。
将PC即的目录挂载到目标机上:sudo mount.nfs 192.168.1.10:/usr/local/armdir /mnt
其中,mount.nfs等价于mount –t nfs,192.168.1.10为开启nfs服务的主机IP地址,IP地址冒号后,跟主机已经共享了的文件夹,如果文件夹不存在或指定文件夹未共享,都会提示出错,最后的/mnt可以使目标机的一个普通文件夹路径。
之后,主机编译出的文件放在/usr/local/armdir下,目标机可以从/mnt中获得了。
3、 mount挂载命令
在使用nfs服务时,我们是通过mount实现的,mount类似于nfs-kernel-server服务器所对应的客户端。
mount:将一个文件挂载到指定的目录上。
用法:mount [-t vfstype] [-v] dev dir
解释:
-t vfstype :指定文件系统的类型是vfstype,省略则自动选择,比如想挂载nfs格式的硬盘,可以写-t nfs,想挂载fat32格式的,可以写-t vfat,还有挂载Linux文件网络共享,可以写-t nfs。
-v:用于输出说明文字
dev:块设备的设备号
dir:指明您希望挂载到本地目录的哪个文件下。
挂载通常需要使用root权限,挂载成功后,就可以通过dir目录进行设备操作了。
要卸载已经挂载的设备,可以使用umount命令。
用法:umount dir/dev
参数:dir表示当前挂载在哪个目录下,dev表示当前挂载的设备号,选其一就能实现设备卸载。Dir目录中的内容在卸载后恢复为原来内容。
4、 fdisk的一个使用
为什么说是fdisk的一个使用呢?因为fdisk的功能太强大了,如果您真的想将fdisk,可以去查专门的资料。不过,我认为,知识、技能够用就行,根据二八法则,我们80%的时间使用的是20%的命令,而80%的时间使用的是一个命令20%的参数,所以,我是不太推荐把命令的所有参数搞的滚瓜烂熟,因为没必要,知识是个好东西,但是好东西吃多了也会消化不良,学知识得病,就是痴,而且,不用的知识背在身上就是累赘,所以,用到什么学什么是比较好的学习方式,当然,您说我能力强,好吧,我甘拜下风。
fdisk -l命令用于显示设备的详细信息,我们通过fdisk就能看到什么设备连接到PC机上。
如果您在打入fdisk –l后,发现没有任何输出,那通过root权限执行:“sudo fdisk -l”;就应该能有设备信息了。
比如现在插入U盘,我们通过fdisk –l得到U盘设备号为sdb1,那么可以这样挂载U盘:
mount /dev/sdb1 ~/usb
5、tar命令
命令tar可以将多个文件归档成一个文件,也可以从归档文件中提取原文件,归档文件中记录了原文件的路径,可以保证提取出的文件相对位置不变。
用法:tar [-C path] –c|-x|-t [-z|-j] [-v] –f target [file…]
参数说明:
-C path:将从归档文件提取出的文件放到path目录下,默认放在当前目录,只用于解包。
-c:建立新的归档文件
-x:从归档文件中提取原文件
-t:模拟提取文件操作,不是真正将文件解压出来,而是显示归档文件中的文件列表
-z:调用gzip压缩或解压缩
-j:调用bzip2压缩或解压缩文件
-v:输出说明文字
-f target:指定归档文件的路径
file:在生成归档文件时使用,指明要将那些文件归档
例:
tar –czvf foo.tar.gz foo
tar –tzvf foo.tar.gz
tar –xzvf foo.tar.gz
tar –C / -xjvf foo.tar.bz2
6、zip命令用于建立zip格式的压缩文件
用法:zip [-r] file.zip file …
参数:
-r表示递归压缩,如果有-r,而file中,存在文件夹,那么对这个文件目录树进行压缩,否则,只压缩一个空文件夹到file.zip中。
file.zip:产生的zip文件名。
file …:表示待压缩的文件列表,可用*、?匹配符表示,可以为多个文件、文件夹。
解压缩的方法:unzip file.zip
7、linux中的ftp
Linux下有好多的ftp服务器,比如VSFTP。VS的意思是“Very Secure”,说明该软件的ftp传输的安全性。除了安全外,VSFTP还具有高速、稳定的特性。VSFTP可以在单机上支持4000以上的并发用户同时连接,据说,vsftp最多可同时支持15000个并发用户。
在Ubuntu下vsftp服务器的安装与使用:
第一步:
安装
全新安装:apt-get install vsftpd
重新安装:apt-get –reinstall install vsftpd
卸载:apt-get remove vsftpd
第二步:
启动vsftpd:sudo service vsftpd start,其实安装完后,自动回启动。
Vsftpd被在系统启动后就会开启服务。
在其他电脑上,通过一个ftp客户端,输入用户名、密码就可以连接到ubuntu机子上了。你也可以继续深入研究匿名处理问题、上传下载权限问题、账户登录处理问题、安全问题、限速问题等,这些可以通过修改/etc/vsftpd.conf来实现,但本着实用主义的原则,进入能进行文件传输了,功能实现,就不去深入了。
Linux下有ftp客户端,命令名就是ftp。
使用方法:ftp IP地址/计算机名
之后会要求在命令行输入用户名,密码,输入后,就可以使用了。
可使用的命令:
ls 列出远程机的当前目录
cd 在远程机上改变工作目录
lcd 在本地机上改变工作目录
ascii 设置文件传输方式为ASCII模式
binary
设置文件传输方式为二进制模式
close 终止当前的ftp会话
hash 每次传输完数据缓冲区中的数据后就显示一个#号
get(mget) 从远程机传送指定文件到本地机
put(mput) 从本地机传送指定文件到远程机
open 连接远程ftp站点
8、ssh服务安装
SSH服务用于支持加密方式的远程登录,并支持通过sftp传输文件,以及使用scp命令在不同主机间复制文件。说白了,ssh就是提供远程登录服务,实现多用户操作。
安装ssh服务器:sudo apt-get install openssh-server
连接:在windows下可以使用putty工具;在安卓手机上可以使用connectbot连接;在ubuntu下可以使用ssh客户端连接,连接命令为:ssh
之后会提示输入密码,连接成功后就能进入服务器的sheel中。