嵌入式Linux开发资源大全

2019-07-13 01:58发布

1.Linux资源
Linux以其开源、免费的特点而成为嵌入式系统的优选操作系统,然而它还有一个巨大的优势就是其浩瀚无限的资源!即无数各 {MOD}的maillist,下面给出各个嵌入式Linux的站点资源:

(1)uClinux:所有NOMMU的处理器都跑uClinux
uClinux发行包下载点:
http://www.uclinux.org/
MAILLIST搜索引擎:
http://mailman.uclinux.org/htdig/
一个搞uClinux的开发人员都应该关注的地方:
http://www.ucdot.org/

(2)ppclinux:PowerPC系列处理器平台都跑ppclinux
ppclinux发行包下载点:
http://penguinppc.org/dev/kernel.shtml
http://www.denx.de/
MAILLIST搜索引擎:
http://lists.linuxppc.org/ 选择linuxppc-embedded
软件下载点:
ftp://ftp.denx.de/pub/LinuxPPC/usr/src/

(3)armlinux:除ARM7 NOMMU的处理器外,其它的ARM9/XSCALE等ARM系列处理器都跑armlinux
armlinux发行包下载:
通用的下载方式
ftp://ftp.uk.kernel.org/pub/linux/kernel/v2.4/
还有可以是CVS的方式:一般的都在sourceforge.net
http://sourceforge.net/cvs/?group_id=33360
CVS命令如下: (这是你的Redhat Linux PC必须能够接通Internet)
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/armlinux login
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/armlinux co linux-2.4
ARM开发大全:http://www.arm.linux.org.uk/developer/
ARM内核移植编译的文章: http://www.arm.linux.org.uk/docs/kerncomp.shtml
MAILLIST搜索引擎:
http://www.arm.linux.org.uk/armlinux/mailinglists.php

(4)bootloader的资源
u-boot:http://www.denx.de/

其它常用东东:
microwin开发maillist
http://www.linuxhacker.org/cgi-bin/search.cgi
minigui开发
http://www.minigui.org/cgi-bin/lb5000/leoboard.cgi
rtai实时性补丁
http://www.aero.polimi.it/~rtai/
http://www.denx.de/
GNU CC(gcc)英文资源(文档,非常好)
http://gcc.gnu.org/onlinedocs/gcc/
http://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html#Option%20Summary

2. 处理器PDF手册下载(请右键点击,选择“目标另存为(A)”)
MCF5249处理器手册
MCF5272处理器手册
MPC852T处理器手册:它是MPC866的"ethernet only version",所以就是MPC866的手册
MPC7410处理器手册
MPC7457处理器手册
MPC8540处理器手册
MPC8245/8241处理器手册
MPC860处理器手册
MPC823E处理器手册
MPC8260处理器手册
WINBOND W90N740处理器手册
S3C2410处理器手册
S3C2440处理器手册
S3C4510处理器手册
S3C44B0处理器手册
AT9140800处理器手册
AT91RM9200处理器手册
HMS30C7202处理器手册
Xscale IXP425处理器手册

3. 其它资源
华恒冷火HHCF系列嵌入式Linux开发平台常见问题解答
华恒PowerPC系列产品常见问题解答
华恒ARM系列产品常见问题解答

4.Redhat Linux 光盘映像下载点
http://www.linuxiso.org/

5.常用资源
串口通信:
http://www-900.ibm.com/developerWorks/cn/linux/l-serials/index.shtml#1
AT&T嵌入式汇编
http://www.32mcu.com/linux1.htm
BDM+GDB调试
http://www.ucdot.org/article.pl?sid=03/01/30/0548223

6.宿主机Linux安装注意事项及NFS的配置
建议都采用RedHat系列
目前华恒所有产品的宿主机平台以RedHat9.0为标准平台。
有些手册上所建议的RedHat7.2,现在都建议采用RedHat9.0,当然RedHat7.2/7.3的系统也都是可以用的,但鉴于市面上目前能买到的都是RedHat9.0,所以建议采用RedHat9.0
宿主机配置中一个常见的问题就是NFS的配置,这里介绍一种较为直接简单的方法:
首先在RedHat Linux PC机上执行setup,弹出菜单界面后,选中: System services,回车进入系统服务选项菜单,在其中选中 [*]nfs ,
然后退出setup界面返回到命令提示符下。
vim /etc/exports
将这个默认的空文件修改为只有如下一行内容:(注意中间有空格)
/ ???(rw)
然后保存退出(:wq),然后执行如下命令:
/etc/rc.d/init.d/nfs restart
Shutting down NFS mountd: [ OK ]
Shutting down NFS daemon: [ OK ]
Shutting down NFS quotas: [ OK ]
Shutting down NFS services: [ OK ]
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS daemon: [ OK ]
Starting NFS mountd: [ OK ]
这样就一切OK了!
【注意】
因NFS不会每次自动启动,即无法像linuxconf命令那样设置成Automatic启动方式,执行如下命令重启NFS服务:
/etc/rc.d/init.d/nfs restart
(最好把上面一句写入/etc/rc.local文件中,这样每次计算机重新启动就省去每次都要执行上面的命令来启动NFS服务)
配置完成后,可用如下办法简单测试一下NFS是否配置好了:
在宿主机上自己mount自己,看是否成功就可以判断NFS是否配好了。例如在宿主机/目录下执行:
mount -o nolock 192.168.2.32:/???/mnt(有时若根目录不让读写,执行chmod 777 / 试试)
然后到/mnt/目录下看是否可以列出/目录下的所有文件和目录,可以则说明mount成功,NFS配置成功。
但实际上,RedHat Linux PC自己mount自己成功也不能完全说明NFS就可以工作了,因为还有一个防火墙的问题,一般的我们建议客户在安装RedHat Linux时就默认选择No Firewall,但若客户没有这样选择的话,RedHat 启动时会加载防火墙规则,这样你自己能 mount 自己,但其它PC和板子也无法mount这台PC。所以这时要运行setup关闭防火墙。注意!setup里面的防火墙显示永远都是High,这个是RedHat一直的一个小BUG,即使你安装时默认选择了NO FIREWALL,setup里面也照样会显示防火墙设置是HIGH的,这个可以不必理会。只要你选择了一次NO Firewall 就可以了。关于防火墙等问题,请参见您的光盘里面的PDF手册。另外,建议对LINUX操作不是非常熟悉的客户,务必请阅读我们手册附录的“Linux常用命令”。

还有,就是RedHat还有这样一个问题,就是加入网关设置后,网络建立TCP链接非常慢,例如FTP/TELNET/NFS等都是,建立链接后,以太网通信还是很快的。若您安装网络时加入了网关,就会出现你在板子NFS mount REDHAT PC时,敲入mount -o nolock pcip:/ /mnt后非常长的时间不返回SHELL提示符,就一直停在那里,这就是建立连接的时间非常的长。一般的,遇到这种情况,建议在RedHat Linux PC上执行
route del default
即去掉网关,然后再进行NFS mount等操作就会非常快了。
再有,若您用的不是华恒的开发板,那么可能您的busybox可能没有加入NFS mount的支持,这样您就需要重新编译busybox,加入NFS mount支持,然后更新ramdisk,重新烧写即可。

当然了,测试NFS你必须用以太网将板子和REDHAT LINUX PC连接起来才行,连接的方式有两种:一是板子和PC都用普通的网线接到HUB或者交换机上;二是用交叉网线将板子和PC直连起来,注意!这种网线是特制的,内部收发交换的!

测试板子和PC网络是否连通的方式是:板子正常启动LINUX后,在minicom里面ping PC看是否能通即可,当然了,用PC来ping板子看是否通也是可以的。 注意:板子必须启动到LINUX后才能ping通,板子处在bootloader阶段一般是无法ping通的,即使这时板子的bootloader初始化了以太网也不行。

若板子跟PC的网络不通,mount报错信息为:
# mount -o nolock 192.168.2.211:/ /mnt
mount: RPC: Unable to receive; eNrno = No route Fo host
mount: Sfsmount failed::Bad file descriptor
mount program didn't pass remote address!
mount: Mounting 192.168.2.211:/ on /mnt failed: Invalid argument

关于tftp服务安装的问题
有些客户在安装RedHat Linux时,有时没有选Custom-->Packages里面选择everything,导致没有安装tftp服务(典型的就是安装完成后没有/tftpboot目录,setup-->system services里面也没有tftp选项 ),这时若要重新完全安装就太麻烦了,可如下单独安装改服务:
<感谢深圳客户廖代国先生和瘦网虫提供资讯>

安装tftp 的方法:
rpm -ivh tftp-server-0.32-4.i386.rpm.
其中tftp-server-0.32-4.i386.rpm在Redhat9的第3张光盘里面。

7.WEB SERVER boa的使用及配置
(1)、对于uClinux-dist而言,就是make menuconfig在应用程序选单中,在network application下面选择boa,然后到uClinux-dist目录下执行make编译即可。
对于有MMU的平台,如armlinux和ppclinux,都是到网上下载一个boa的tar包,随便找个主流的可用的版本即可,不要最新的也不要最旧的。下载到REDHAT宿主机上后,解压到任意目录,然后修改boa/src/Makefile里面的编译器,就只要加入两三行即可,例如:
CC = /LinuxPPC/CDK/bin/powerpc-linux-gcc -DHHTECH_PPC
CPP = /LinuxPPC/CDK/bin/powerpc-linux-g++
然后直接在boa/src目录下执行make即可生成boa可执行文件,将其复制到ramdisk加载mount的目录的bin里面,然后等一同加入后面的配置文件和HTML/CGI文件后,重做ramdisk即可。

(2)、编制配置文件boa.conf
Linux下的应用程序的配置都是以配置文件的形式提供的,一般的都是放在目标板/etc/目录下或者/etc/config目录下,但boa的配置文件boa.conf一般都放置在目标板/home/httpd/目录下。
例如一个典型的boa.conf文件格式如下:
ServerName HHCF5272-R1
DocumentRoot /home/httpd/html
ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/
ScriptAlias /index.html /home/httpd/html/index.html

它指定了HTML页面(例如index.html必须放到/home/httpd/html目录下,cgi可执行文件必须放到/home/httpd/cgi-bin目录下)

(3)、编译uClinux-dist后或者重做ramdisk后,烧写后在一台WINDOWS的PC机上就可以用IE访问板子上的webserver,例如输入板子IP地址http://192.168.2.111,即可看到你用dreamweaver做的网页index.html了。但这里只能做到对静态页面的支持,若要支持FORM表单处理和动态页面,就必须用C代码编制CGI代码,uClinux-dist/user/cgi-generic目录下提供了样板代码,或者可以从华恒公司购买。注意:这个CGI的可执行文件必须放置到板子的/home/httpd/cgi-bin目录下。

建议阅读文章:
http://www.51eda.com/Article/embed_system/rtos/200405/806.html
关于auth选项

8.关于PPP拨号
(1)、首先是根据板子的串口2的信号定义制作串口线接MODEM,例如HHCF5249/5272系列平台就要将接MODEM的串口线2、3交换,7、8交换。做好线之后,可用tip软件进行与MODEM通信的测试:
tip -l /dev/ttyS1 -s 19200
显示connected后,用户就可以输入AT命令直接与MODEM对话了,这样做的目的是测试串口线。

(2)、配置内核支持PPP,并编译拨号用相关应用程序:pppd/chat。关于内核支持,就是make menuconfig在内核配置的Network device support ---> 中选择PPP/SLIP/CSLIP等,具体细节选项可任选,其实全部选中就可以了。关于应用程序的做法,和上面boa的做法完全类似。

(3)、编译拨号脚本和相关配置文件。做拨号必须先在RedHat上手工拨号成功(不要用图像界面),然后才能到板子上做测试。而且,这只是第一步,简单的拨号上去并没有任何意思,因为产品过程中,还要涉及许多的应用细节,例如断线重拨检测,开机自动拨号,无流量自动断开,有流量自动拨号等,都是非常麻烦的细节,需要做长时间大量的稳定性可靠性测试。华恒提供经过全球各大城市测试稳定应用的拨号软件(GPRS/ADSL),可大大节省用户产品的上市时间。