已移植到uCLinux(ADI公司Blackfin系列DSP版)下的用户自定义应用程序

来源:百度文库 编辑:神马文学网 时间:2024/04/26 18:57:10

从uCLinux官方网站http://www.uclinux.org和ADI Blackfin网站http://blackfin.uclinux.org上下载下来的uCLinux的内容差异说明(因本人还处在熟悉阶段,会随着项目的接触深入时常更新它们的差异点,市面上主要是ARM处理器,而DSP处理器因为已出现多种新款系列而逐渐成为新宠,这里以ADI(AnalogDevices.Inc)公司的Blackfin系列DSP为例):
在ADI Blackfin版的uCLinux中最新版即2007版开始,只附带linux 2.6.x的内核。
在uClinux配置窗口中的Vendor(厂商)增加AnalogDevices,在Product中增加AnalogDevices Products,包括BF533-STAMP、BF533-EZKIT、BF537-STAMP、BF561-EZKIT
如果Vendor/Product Selection选择的是上述选项,并勾选自定义内核选项和自定义应用程序选项,那么在Linux Kernel Configuration配置选中增加相应的Blackfin的支持选项,如Blackfin Processor Options。在这个选项下提供了大量针对Blackfin系列DSP处理器的支持项,在Application Configuration Main Menu配置项中增加相应的Blackfin的支持选项,如Blackfin build Options、Blackfin app programs、Blackfin test programs和Blackfin canned demos,应用程序上提供了大量由ADI公司移植好的应用程序,这样方便了使用Blackfin系列DSP处理器的用户,而这点是ARM处理器所没有的。如果选用ARM处理器,在使用uCLinux官方提供的已移植应用程序的基础上还想再应用其他应用程序,如sqlite(一种嵌入式数据库,应用广泛),mplayer(一种全功能的媒体播放器),就需要应用者自己手工移植,鉴于ARM应用者众多,资源也多,学习者也多,所以手工移植也可以学到不少知识的。如果从商业应用角度,当然是选择开发商自己推出的移植版本,因为稳定性要好些。这里以uClinux-dist-2007R1.1-RC3.tar为例

解压后,在uClinux-dist目录下
增加了目录:bfin_patch、testsuites
删除了目录:include

在bfin_patch目录下分别有这几个目录:adeos_patch、darwin_build_patch、dpm_patch、kgdb_patch、konqueror3_embedded_patch、libssl_patch、ltp_path、msh_patch、qt_embedded_patch

在testsuites目录下分别有这几个目录:ad7171、ad9960、adi_ice_helpers、audio、bluetooth、bluetoothcf、canbus、cfcard、coreb、dll、dpm、dpmc、ethernet、gpio、i2ctwi、ide、irda、jffs2、joystick、jvm、kgdb、l1_app、l1_memory、linphone、ltp、microwin、mmap、module、msh、netaudio、nfs、oprofile、pbx、performance、pfbutton、pflag、pnormtd、policy、pound、ppifcd、pthread、qt、ramfs、rtc、serial、sigqueue、snormtd、spiadc、spimmc、sport、sqlite、strace、stress、test_scipts、tftlcd、timer、usbhost、usbnet、watchdog、webserver、wireless、xip、yaffs

以下是用户usr目录下(这个目录下增加了blkfin-apps和blkfin-test目录)的应用程序:
a60        Algol 60 interpreter NASE A60      http://www.bertnase.de/a60/  
aesperf
agetty       another getty program for Linux
appWeb       AppWeb HTTP Server
arj        ARJ archiver    Linux下常用压缩格式的压缩与解压
asterisk PBX     Open Source telephony switching and private branch exchange (PBX) daemon.
at        This is version of 3.1.x of the at/atrun pair for running commands at a specified time.
bash       This is GNU Bash, version 2.05.
bind       BIND是一款由ISC维护的Internet域名名字系统实现.
blkfin-apps
            alsa-utils     alsa-utils是ALSA不可或缺的一部分,它集成了一些非常有用的应用程序,包括ALSA启动脚本。ALSA,高级Linux声音构架, 是一个致力于开发高质量Linux声音子系统的软件项目。在2.6系列内核中,它已经替换OSS(Open Sound System,开放声音系统)作为默认的声音子系统。
            asterisk     电话应用程序。Asterisk是一种功能非常齐全的应用程序,提供了许多电信功能。也许它最著名的应用是当作一台交换机(PBX),因为Asterisk能够把你的x86机器变成你自己的交换机。
            bluez-utils     蓝牙适配器支持工具包
            corebld      用于将elf格式的文件作为一个普通文件读出来,提取出相应的可执行代码,再调用/dev/coreb提供的功能将这些可执行代码写入到B核的L1 Instruction Memory或者SDRAM中,最后再调用驱动程序的功能开始执行这些代码。它的实现在user\blkfin-apps\corebld\corebld.c中。目前corebld只能分析elf格式的文件,但是经过适当的修改,它应该也可以分析在vdsp下生成的可执行代码。
            devfbapp
            devvoutapp
            inetutils     Internet支持工具包
            irattach     IrDA 提供红外线设备(笔记本,PDA''s,手机,计算器等等)间的通讯支持。
            jpegview     JPEG图片浏览
            jpegview_dma_blit
            linphone     网络电话
            lmbench3     基准测试软件
            mplayer      Linux系统下的首选全功能音视频播放器,已移植到多种平台中,如手机,MP3、MP4、数码相框等多种娱乐平台。
            oprofile     Oprofile是一种细粒度的工具,可以为指令集或者为函数、系统调用或中断处理例程收集采样。
            picocom      类似minicom的超级终端程序
            pngview      PNG图片浏览
            pound
            ppifcd-cgi
            sdl-touchscreen
            sqlite-3.2.6    一个嵌入数据库,功能强大,应用广泛,支持多平台多语言接口
            strace      系统跟踪程序,使用strace来调试系统错误
            usbutils     USB支持工具包
            watchdogd     冗余WATCHDOGD守护进程
            yaffs-utils     yaffs文件系统工具包,YAFFS:Linux使用的一种文件系统。可支持读写。
            zaptel      声卡驱动程序
blkfin-test
            ad5304_test
            ad9960_test
            audio_test
            crash_test
            cycles_test
            dcplb-test
            dpmc-test
            event_test
            file_operation-test
            iperf-bfin
            iperf-x86
            latency-test
            netperf-bfin
            netperf-x86
            pfbuttons-test
            pflags-test
            ppi-test
            ppifcd-test
            pthread_tes
            rdsd
            rtc-test
            rtscts_test
            spi-test
            sport_test
            sqlite_test
            sysv_ipc_test
            timer_test
            twi_keypad-test
            twi_lcd-test
            twi_test
            video_test
boa(boa uses SSL、emergency syslog、enable log files) 适合于嵌入式应用的WebServer
boottools      包括:consume.c md5.c printbenv.c reset.c setbenv.c xloader.c    xloader为:A replacement for ramloader and flashloader, since the loading mechanism is identical and the difference is just in which call to make to the uCbootloader
bpalogin      This is a client to connect to Australia's Big Pond Advance powered by Cable.
br2684ctl
brcfg       This is a bridge configuration tool for Linux Kernels 2.1.X
bridge-utils     new-and-improved linux ethernet bridging code
busybox       BusyBox combines tiny versions of many common UNIX utilities into a single small executable.适合于嵌入式应用的工具软件集
cal
camserv
can4linux
cbi_client
cgi_generic
cgihtml       cgihtml是一套解析WWW通用网关接口输入和以超文本标记语言输出的系
cksum
clamav
clamsmtp
clock
conntrack-tools
cpu
cramfs       cramfs是一个压缩式的文件系统
cron
crypto-tools
ctorrent      CTorrent 是用C++写的一个BT客户端
cxxtest       CxxTest是一个全功能的C++单元测试框架
ddns3-client
de2ts-cal
demo
dhcpcd、dhcpcd-new、dhcpd、dhcp-isc   dhcp协议客户端和服务器端守护进程
dhrystone
diald       电话拨号守护程序
discard
dnsmasq
dnsmasq2
dosfstools
dropbear
e2fsprogs
elvis-tiny
ethattach      网卡添加和管理工具软件
etherwake
ethtool
expat-examples
expect       Expect被设计成专门针和交互式程序的交互
ez-ipupdate      用ez-ipupdate更新动态域名
fakeidentd
fconfig
fdisk       格式化程序
ferret
fileutils      适合于嵌入式应用的文件管理工具软件
flashw       Flash写入程序
flatfsd       flat文件系统守护程序
flthdr
fnord web server
freeradius
freeswan      IPSEC(Internet安全协议)的Linux实现,用于VPN和Internet上的安全通信,适合VPN、网络安全产品方面的应用
frob-led
frox
fswcert
ftp        ftp(文件传输协议)客户端程序
ftpd
games       提供几个小游戏程序
gdb
gdbserver      目标系统端远程调试程序,与主机上运行的GDB软件配合完成对目标系统上运行的程序进行远程调试的功能。
gettyd
gnugk
grep       查找字符程序
hserl
hd
horch
hostap
hping       hping是一个基于命令行的TCP/IP工具,它在UNIX上得到很好的应用,不过它并非仅仅一个ICMP请求/响应工具
httpd       另一个适合于嵌入式应用的WebServer,比boa更简单占用内存更少。
httptunnel
hwclock       hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟
ifattach
inetd       网络服务进程
init       初始化程序
ipchains、ipfwadm、ipportfw、ipredir   Linux下的防火墙软件。
iperf
ipmasqadm
iproute2
ip-sentinel
ipset
iptables
iputils
iso_client
jffs-tools      jffs文件系统(适合Flash存储器的)工具软件。
jpegview      JPEG图片查看程序
kendin-config
klaxon
l2tpd
l7-protocols
lcd        用于测试lcddma 设备驱动程序的软件。
ledcon
levee       一个面向屏幕的编辑器即VI。
lha
lilo
linux-igd
lirc       Linux 红外遥控软件包,支持串口、并口及一些商品化的红外接收器和发射器。
lissa
lm_sensors
loattach
login       一个简单的login程序
lpr
lrpstat
lrzsz
lsof
lua        Lua脚本解释器
mail       电子邮件收发软件
mathtest
mawk
mbus       I2C总线设备驱动程序的测试程序
mgetty
microwin
mii-tool-fec
mini_httpd
mount
mp3play       uCLinux下的mp3播放程序
msh
msntp
mtd-utils
musicbox
mysql       精简型MySQL数据库
nbench
nessus
netcat
netflash      通过以太网写入Flash的程序
netperf
netpipe
net-snmp
netstat-nat
net-tools      一个强大的网络工具集
nmap
nooom
ntp
ntpclient      NTP客户端
null
nwsh       一个bash的替代品,占用内存更少
oggplay       OGG格式播放程序
openssl       开放式SSL
openswan      开放式SWAN
openvpn       开放式VPN
oprofile      Oprofile是一种细粒度的工具,可以为指令集或者为函数、系统调用或中断处理例程收集采样
p7zip       一个压缩软件
palmbot
pam_ldap      pam_ldap模块允许Solaris和Linux服务器及工作站认证LDAP目录,并在目录中更改口令
pam_radius      使用pam-radius对主机的ssh以及telnet登录进行认证
pam_smb       pam_smb是一款使用SMB服务器上的用于验证用户的验证模块
pam_tacplus      一种认证方式
pciutils
pcmcia-cs      pcmcia接口
perl
ping       网络测试程序ping
play       wav文件播放程序
playrt
plug
pop3proxy      接收邮件的POP3代理服务
portmap       TCP端口映射(port map)程序
pppd、pppd-2.3     PPP协议uCLinux实现,支持按需拨号
pptp-client、pptpd    pptp协议的Linux实现
procps       Procps软件包包含监视和终止系统进程的程序
proftpd       FTP服务器软件
python       一个面向对象的编程语言,适合分布式应用,类似Perl、Java Script。
qspitest
quagga       Quagga是一个路由软件套件,可在Unix平台上实现多种路由协议
radauth
radvd
ramimage      专用于保存镜像的内存区域
rdate       显示其他主机的日期与时间
readprofile      读取/proc/profile的内容的程序。
recover       依赖日志对系统逻辑错误进行记录和修复
reiserfsprogs     基于平衡树算法的文件系统。
rootloader      自身加载器
routed       带数据分组的路由协议
rp-pppoe      网络拨号软件
rrdtool       绘图引擎
rsync
rsyslogd
rtc-ds1302
rtc-m41t11
samba       桑巴,支持SMB和CIFS协议,使Linux能够与Windows、Unix机器共享文件、打印机以及其他信息。
sash       sh:经过改进后的Shell程序
ser
sethdlc
setmac       setmac设置以太网MAC地址
setserial      设置或显示串口的相关信息
sh        Shell脚本解释器
shadow       保存用户密码的程序文件
shutils       适合于嵌入式应用的Shell工具
siege       Siege是一个多线程的WEB性能测试工具,被设计成可以让WEB开发人员了解代码在长时间压力下的性能.可以模拟很多用户同时访问WEB服务器,此数量可以自由定义.这就相当于web server被围攻(siege)了
siproxd       siproxd是代理/伪装成守护进程,为sip协议
slattach      slattach 命令行中提供了拨号字符串,则用户必须重新输入命令和拨号字符串以恢复断开的连接
smbmount      Linux SMB client程序
smtpclient      简单的小型SMTP client程序
snmpd       SNMP协议守护程序
snort       Snort的主要用途就是网络监视、数据包的记录和检测入侵行为
speedtouch
squashfs      SquashFS是一个即时解压缩的档案系统
squid       WWW Cache软件
ssh        远程登陆软件,比Telnet更安全
sslwrap       sslwrap是一个简单的Unix服务程序,它会待在任何简单的TCP服务器如POP3, IMAP, SMTP等,并对所有联机的资料以TLS/SSL进行加密
stp        STP(Spanning Tree Protocol,生成树协议)
strace       系统跟踪程序,使用strace来调试系统错误
stty       通过使用stty命令,就可以查看或者修改终端的按键设置
stunnel       Stunnel是一款允许用户加密任意TCP会话连接的程序,能使非SSL加密应用程序和服务使用SSL加密
sysutils
tcl        TCL脚本解释器
tcpblast
tcpdump       TCP流量统计软件
tcpwrappers      一个主机访问控制的程序
tcsh       Shell脚本
telnet、telnetd     telnet client和server端应用程序
tftp、tftpd      tftp协议server端应用程序
threaddemos      简单的如何在uClinux下编译和运行多线程函数的例子
thttpd       一个小的Webserver
tinylogin      一个小的login程序
tinytcl       TinyTcl 是一个用C++写的很小的Tcl解释器,主要目的是为了建立一个很小的内嵌Tcl解释器
tip        串口连接程序
tpt
traceroute      网络管理工具软件,能够跟踪进入和离开系统的IP包的路径
tripwire      系统管理工具软件,能够检测 特定文件是否被修改过
ucdsnmp       一个SNMP协议应用软件包
udev       一个用户空间程序,udev的目标是想解决上面提到的这些问题,通常采用用户空间(user-space)工具来管理/dev/目录树,和文件系统分开
ulogd、ulogd2     ulogd 守护程序是一种用户态服务器可以监听来自内核的防火墙日志指令,并且能够将其写到任何您希望的文件中,甚至是 PostgreSQL 或 MySQL 数据库
unrar、unzip     Linux下解压缩软件
unzoo
vconfig       vconfig是一个客户端配置工具包。它可完成虚拟局域网(VLAN)的相关配置
version       查看版本
vixie-cron      Vixie cron是Paul Vixie写的一种定时执行后台守护进程,许多免费Unix操作系统附带了该软件
vplay       音频播放程序
vpnled       利用VPN技术搭建网络型LED显示屏系统
w3cam       网络摄像头的webserver,图像可以在internet上传输
wget       网络工具软件包,使用HTTP和FTP协议从World Wide Web上下载文件
whetstone      Linux下的纯浮点运算性能,是由Whetstone进行测试的
winsd       Winserver守护进程,可以让Linux系统看到Windows网络邻居
wireless_tools     Linux下的一套对无线网卡进行配置的工具
wlan-ng       Linux下prism2无线网卡的驱动
zebra       一个功能强大的IP路由软件包,支持BGP4, BGP4+, OSPFv2, OSPFv3, RIPv1, RIPv2, RIPng等多种Internet路由协议