Chinaunix首页 | 论坛 | 博客
  • 博客访问: 119322
  • 博文数量: 29
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 242
  • 用 户 组: 普通用户
  • 注册时间: 2014-07-17 13:36
文章分类

全部博文(29)

文章存档

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,通过JTAGJLINK烧录到单板中,但是,JTAG的烧写效率非常低,它适合烧写空白单板。为了方便,通常选用具有串口传输、网络传输、烧写flash功能的bootloader,它可以快速从主机获得可执行代码,然后烧写入单板或直接运行。

JTAGJLINK的关系。调试ARM要遵循ARM的调试接口协议,其中,JTAG就是其中一种协议,这是硬件提供的接口,而像IARKEILADS这些烧写仿真软件来说,它们也有一个公共的调试接口,其中RDI就是其中一种(RDI接口是ARM公司提出的调试接口标准,主要用于ARM芯片的JTAG仿真),那么,实现IDE(集成开发环境)RDI接口与ARM调试协议(JTAG)的转换就能实现硬件与软件的互联,如何转换呢?两种做法:

1)  在电脑上写一个服务程序,将IARKEILADS中的RDI命令解析成相关的JTAG协议,然后经过一个物理转换接口(仅仅是物理上的转换,不涉及内容)发送给目标板。H-JTAG就是这样做的,H-JTAG的硬件仅仅是一个物理电平的转换接口,所以H-JTAG设计比较简单,而PC中安装的h-JTAG软件,负责从RDIJTAG的协议转换。

2)  设计一个硬件板,用此板直接接收来自IARKEILADS等软件的调试命令,由此板提供RDI->JTAG的协议转换服务。然后,与目标板通信,这就算JLINK的工作原理。

由此看出,H-JTAGPC机上的软件进行协议解析,所以硬件简单,但是速度较慢,而第二种方法,JLINK一般带一个强劲的CPU,作硬件协议转换,硬件复杂,但是速度快。

JTAG的功能有两大类:首先,它可以用于测试芯片的电气特性,用于检测芯片是否存在问题;另外,可以用于Debug,对各类芯片以及其外围设备进行调试,一个含有JTAG Debug接口模块的CPU,主要时钟正常,就可以通过JTAG接口访问CPU内部寄存器,以及挂在CPU总线上的设备以及内置模块的寄存器。

B、 在通过JTAGbootloader烧录到目标机后,后续的烧写操作可以通过bootloader的帮助进行了。在主机上编译嵌入式linux内核,通过bootloader烧录目标机中或可以直接加载到RAM中进行运行。一个可在目标机上运行的Linux内核是进行后续开发的基础。为了调试方便,内核应该支持网络文件系统(NFS),即主机编译好程序后,在单板启动后,单板可以通过NFS获取程序,然后运行。

C、 在主机编译各类的应用程序,目标机启动内核后,通过NFS运行这些应用,通过验证的应用,就可以烧写到目标板中了。

如下图,为主机与目标机间的通讯关系图:

 

2、  linux的网络文件系统构建nfsnfs相当于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 nfs192.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

 

5tar命令

命令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

 

6zip命令用于建立zip格式的压缩文件

用法:zip [-r]  file.zip file …

参数:

-r表示递归压缩,如果有-r,而file中,存在文件夹,那么对这个文件目录树进行压缩,否则,只压缩一个空文件夹到file.zip中。

file.zip:产生的zip文件名。

file …:表示待压缩的文件列表,可用*、?匹配符表示,可以为多个文件、文件夹。

 

解压缩的方法:unzip file.zip

 

7linux中的ftp

Linux下有好多的ftp服务器,比如VSFTPVS的意思是“Very Secure”,说明该软件的ftp传输的安全性。除了安全外,VSFTP还具有高速、稳定的特性。VSFTP可以在单机上支持4000以上的并发用户同时连接,据说,vsftp最多可同时支持15000个并发用户。

Ubuntuvsftp服务器的安装与使用:

第一步:

安装

全新安装:apt-get install vsftpd

重新安装:apt-get –reinstall install vsftpd

卸载:apt-get remove vsftpd

第二步:

启动vsftpdsudo 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站点

 

8ssh服务安装

SSH服务用于支持加密方式的远程登录,并支持通过sftp传输文件,以及使用scp命令在不同主机间复制文件。说白了,ssh就是提供远程登录服务,实现多用户操作。

 

安装ssh服务器:sudo apt-get install openssh-server

连接:在windows下可以使用putty工具;在安卓手机上可以使用connectbot连接;在ubuntu下可以使用ssh客户端连接,连接命令为:ssh

之后会提示输入密码,连接成功后就能进入服务器的sheel中。

阅读(1243) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~