一。平台环境:
1.宿主机(debian)。
2.交叉编译环境(arm-linux-gcc)。
3.嵌入式系统的选择。uclinux或者自己裁剪内核。
4.用skyeye仿真运行嵌入式系统。
1.Debian是Linux发行版当中最自由的一种。由位于世界各地上千名的自愿者不断开发和维护。它不属于任何的商业公司,完全由开源社区所有。debian系统有完善的包管理机制,且其定制性强,想装什么装什么。能自动解决包依赖关系(当然也可以下载源码包自己编译)。详细情况请访问:
稳定性强,有开源机构严格测试并发布版本。安装方法以后完善。
2.开发基于arm芯片的linux程序,不能直接用gcc,应该用gcc专门为arm开发的版本。已经有别人打好包的开发工具了。下载下载地址:
arm-linux-gcc和arm-elf-gcc的区别:
如果用一句话讲清楚arm-linux-gcc和arm-elf-gcc的区别的话,如何来说呢?arm-linux-gcc是针对arm +linux的开发环境的,kernel使用的是linux,不是uclinux,arm是有硬件MMU的。而arm-elf-gcc是针对noMMU arm+uclinux的开发环境,kernel使用的是uclinux,硬件是廉价的无MMU的arm芯片。
3.已下载源码,编译后可以在skyeye下仿真运行。
4.skyeye是在操作系统上模拟开发板指令的仿真软件。可以在软件环境下测试程序。
debian系统下安装:
shell> aptitude install skyeye
|
二。建立交叉编译环境:
其实这步非常简单,因为我们有了开发工具包。我们只要解压上面下载的代码包到指定的目录,然后设置环境变量就行了。
解压开发包:
shell> tar jxvf cross-3.2.tar.bz2
|
解压后的文件在/usr/local/arm下。
设置环境变量:
shell> vim /etc/profile 把最后的内容更改为: armlinux="/usr/local/arm/bin" PATH="$PATH:$armlinux:." export PATH
|
这样做的目的是把arm-linux-gcc添加到编译环境中。我们的linux上有gcc。编译基于arm芯片的程序时不能用gcc命令。
三。从windows登录到linux server:
1,ssh登录:
ssh是加密方式登录,基于命令行。登录工具选putty。如图:
以后你就可以用它进行控制linux和编译程序了。
2.图形方式使用:
linux server上安装了vnc4server服务端,可以从windows上用vncview连接。当你用putty登录后启动服务端:
shuangquan@debian:~$ vnc4server
New 'debian:1 (shuangquan)' desktop is debian:1
Starting applications specified in /home/shuangquan/.vnc/xstartup Log file is /home/shuangquan/.vnc/debian:1.log
|
在windows下用vncviewer连接:
后面那个1要根据你启动vnc4server的显示信息填写。如上面的
debian:1。你也可以直接用debian:1。
输入密码即可显示。
四。文件传输:
1.ftp客户端:psftp。
ftp命令:
get把linux server上的文件下载到windows。put反之。
2.基于samba的访问。直接像访问其他windows机器一样\\debian或者\\192.168.0.249,可以进入自己的目录,有读写权限,像windows一样拖拉就行。
配置samba,建立共享目录:
在#======================= Share Definitions =======================段
省事的方法,修改[homes]段的几个内容,如:
browseable = no
writeable = yes
这样修改后用samba帐户登录时会自动显示登录用户的文件夹,对应家目录。
如果要自己开共享文件夹,那么就自己按照如下方法设置:
[sharename]
comment = description
path = /home/%U
writeable = yes
browseable = yes
建立访问samba的用户帐户,一般建成和linux帐户一样,不建立访问不了共享目录
smbpasswd -a jsli
New SMB password:
Retype new SMB password:
用这个帐户访问即可。
服务器的启动与停止/etc/init.d/samba start|restart|stop
五。编译程序:
不能用gcc命令。gcc编译的是基于i386的。编译基于arm芯片的程序:
shuangquan@debian:~$ arm-linux-gcc -o test test.c shuangquan@debian:~$ ls cross-3.2.tar.bz2 Desktop NVIDIA-Linux-x86-1.0-9746-pkg1.run test test.c
|
生成的test就是能在arm上运行的程序。
编写makefile文件,上面的程序可以写一个简单的makefile文件:
test: test.c
arm-linux-gcc -o test test.c
make后就能进行编译了。
六。实战。
上面我们所完成的是基本的一些配置和操作。现在进入开发:
背景:
如果我们买的开发板是arm9系列的,那么我们用的是带mmu的linux原版内核,下载地址:
ftp://ftp.uk.kernel.org/pub/linux/kernel/v2.4/
源码和补丁一起下载。如果买的是arm7 即nommu的芯片,那么我们的内核须用uclinux。现在的任务是把linux内核编译进开发板,并构建应用程序。(参见已经下载的入门资料)
2.裁剪和编译内核:
基本思想:买了具备arm9系列的开发板后,下一步要做的就是把linux内核编译进开发板,写出应用程序烧写进去。开发板一般具备很多输出口,比如串口,usb接口,显示屏接口等等,关于这写接口的驱动linux内核自带有一些,没有的可以到开源社区下载类似的驱动更改即可。
这个过程需要板子一起来操作。方法跟跟使用linux差不多。
七。搭建tftp服务器(烧写内核的时候要用来传送文件):
安装tftp server:apt-get install tftpd
配置vim /etc/inetd.conf 更改默认文件传输目录 把/srv/tftp 设置成你想用做的目录
重启tftp服务/etc/init.d/openbsd-inetd reload
阅读(934) | 评论(0) | 转发(0) |