Chinaunix首页 | 论坛 | 博客
  • 博客访问: 196783
  • 博文数量: 71
  • 博客积分: 3135
  • 博客等级: 中校
  • 技术积分: 740
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-23 13:29
文章分类

全部博文(71)

文章存档

2012年(3)

2011年(1)

2010年(7)

2009年(3)

2008年(15)

2007年(24)

2006年(18)

我的朋友

分类: LINUX

2007-11-16 14:22:17

一。平台环境:

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
阅读(910) | 评论(0) | 转发(0) |
0

上一篇:latex编译

下一篇:vim---linux下的开发工具

给主人留下些什么吧!~~