嵌入式Linux在Blackfin处理器上的应用
发布时间:2008/5/27 0:00:00 访问次数:548
1. 1 uclinux简介
uclinux是当前广泛应用的一种嵌入式linux操作系统,是一个完全符合gnu/gpl公约的项目,与unix完全兼容,完全开放源码。英文单词中u表示micro,c表示control,所以uclinux的意思是“微控制领域的linux系统”。
uclinux针对嵌入式应用的特点,对linux的内核(所用版本为linux2.6)进行了修改和重新编译,其大小远小于原来。它包含linux常用的api,保留了原来linux操作系统具有的高稳定性、强大的网络功能和卓越的文件系统支持功能等优点。
1. 2 blackfin简介
blackfin系列dsp是adi公司推出的高性能,低功耗的新一代dsp处理器,融合了analog devices/intel的微信号结构(msa),其应用范围广泛,包括汽车图像系统,宽带无线系统,多媒体消费电子产品,数字视频录像机,安防与监控,机顶盒和视频会议等。
对下一代的数字通信和消费多媒体应用来说,blackfin处理器是高度集成的片上系统解决方案。通过将工业标准接口与高性能的信号处理内核相结合,用户可以快速开发出节省成本的解决方案,而无需昂贵的外部组件。
笔者使用的是bf533,其结构如图1:
bf533包括一个uart口、一个spi口、两个串行口(sports)、四个通用定时器(其中三个具有pwm功能)、一个实时时钟、一个看门狗定时器,以及一个并行外设接口。
1.3 blackfin+uclinux的优越性
(1) 使用方便
(2) 支持网络
(3) 源码开放
(4) 方便程序开发移植
系统结构如图2所示。
2 在blackfin中嵌入uclinux操作系统
2.1 建立开发环境
要在blackfin上嵌入uclinux操作系统,首先应建立相应的开发环境。笔者所用的主机系统和开发平台如下:
windows xp与redhat 9.0双操作系统
p4 1.8ghz,512 mb内存
blackfin533 ez-kit 开发板
linux环境下的程序通过gnu的一系列工具完成编译工作,其中包括预处理、编译、汇编和连结4个互相关联的步骤,每一步由相关工具完成。
(1)gcc:是gnu编译器的前端程序,负责完成预处理和编译过程,生成以.o为后缀的目标文件。
(2)as:是gnu编译器的汇编器,负责把后缀为.s的汇编文件编译成以.o为后缀的目标文件。
(3)ld:是gnu 编译器的连结器,负责把目标文件和库文件连结起来,重定位它们的数据,把所有符合连结起来。
笔者用的是bfin-gcc-3.4-2005r3.1.tar.gz。
在redhat中打开terminal,将目录转换到工作目录(根目录),键入以下命令:
tar –xzf bfin-gcc-3.4-2005r3.1.tar.gz
在/opt下会出现/uclinux/bfin-elf和/uclinux/bfin-uclinux两个新文件夹,此时blackfin所用的交叉编译器已建立成功。
2.2 在ez-kit上植入u-boot
从网上下载u-boot_1.1.3.tar.bz2,在terminal下键入:
bunzip2 u-boot_1.1.3.tar.bz2
tar -xzf u-boot_1.1.3.tar.bz2
此时会出现名为u-boot_1.1.3的文件夹,将当前目录转为此文件夹下,键入以下命令:
make clean
make mrproper
make ezkit_533_config
make
以上步骤完成后,会出现以下文件:
u-boot:这是elf文件,可以用它生成其它格式的文件。
u-boot.bin:这是二进制文件,可以用来升级u-boot。
在terminal下键入:
/opt/uclinux/bfin-uclinux/bfin-uclinux-objcopy –i binary –o ihex u-boot.bin u-boot.hex
此时在u-boot文件夹下生成u-boot.hex。
将主机系统转换为windows xp下,打开vdsp++开发软件,点开tool下的flash programmer,打开如图3所示的选项环境:
按图中所示设置好参数后,点击load file即可。
2.3 编译uclinux
将主机系统转为redhat9.0,打开terminal,当前目录应为uclinux所在目录,输入以下命令:
export path=/opt/uclinux/bfin-elf/bin: /opt/uclinux/bfin-uclinux/
bin:$path
make menuconfig
此时出现选择参数界面,包括厂商,器件型号等,选好参数后继续。过一段时间后,将出现两个模块选择介面,这里不更改任何选项,直接选择exit。
在terminal中键入:make ,开始编译uclin
1. 1 uclinux简介
uclinux是当前广泛应用的一种嵌入式linux操作系统,是一个完全符合gnu/gpl公约的项目,与unix完全兼容,完全开放源码。英文单词中u表示micro,c表示control,所以uclinux的意思是“微控制领域的linux系统”。
uclinux针对嵌入式应用的特点,对linux的内核(所用版本为linux2.6)进行了修改和重新编译,其大小远小于原来。它包含linux常用的api,保留了原来linux操作系统具有的高稳定性、强大的网络功能和卓越的文件系统支持功能等优点。
1. 2 blackfin简介
blackfin系列dsp是adi公司推出的高性能,低功耗的新一代dsp处理器,融合了analog devices/intel的微信号结构(msa),其应用范围广泛,包括汽车图像系统,宽带无线系统,多媒体消费电子产品,数字视频录像机,安防与监控,机顶盒和视频会议等。
对下一代的数字通信和消费多媒体应用来说,blackfin处理器是高度集成的片上系统解决方案。通过将工业标准接口与高性能的信号处理内核相结合,用户可以快速开发出节省成本的解决方案,而无需昂贵的外部组件。
笔者使用的是bf533,其结构如图1:
bf533包括一个uart口、一个spi口、两个串行口(sports)、四个通用定时器(其中三个具有pwm功能)、一个实时时钟、一个看门狗定时器,以及一个并行外设接口。
1.3 blackfin+uclinux的优越性
(1) 使用方便
(2) 支持网络
(3) 源码开放
(4) 方便程序开发移植
系统结构如图2所示。
2 在blackfin中嵌入uclinux操作系统
2.1 建立开发环境
要在blackfin上嵌入uclinux操作系统,首先应建立相应的开发环境。笔者所用的主机系统和开发平台如下:
windows xp与redhat 9.0双操作系统
p4 1.8ghz,512 mb内存
blackfin533 ez-kit 开发板
linux环境下的程序通过gnu的一系列工具完成编译工作,其中包括预处理、编译、汇编和连结4个互相关联的步骤,每一步由相关工具完成。
(1)gcc:是gnu编译器的前端程序,负责完成预处理和编译过程,生成以.o为后缀的目标文件。
(2)as:是gnu编译器的汇编器,负责把后缀为.s的汇编文件编译成以.o为后缀的目标文件。
(3)ld:是gnu 编译器的连结器,负责把目标文件和库文件连结起来,重定位它们的数据,把所有符合连结起来。
笔者用的是bfin-gcc-3.4-2005r3.1.tar.gz。
在redhat中打开terminal,将目录转换到工作目录(根目录),键入以下命令:
tar –xzf bfin-gcc-3.4-2005r3.1.tar.gz
在/opt下会出现/uclinux/bfin-elf和/uclinux/bfin-uclinux两个新文件夹,此时blackfin所用的交叉编译器已建立成功。
2.2 在ez-kit上植入u-boot
从网上下载u-boot_1.1.3.tar.bz2,在terminal下键入:
bunzip2 u-boot_1.1.3.tar.bz2
tar -xzf u-boot_1.1.3.tar.bz2
此时会出现名为u-boot_1.1.3的文件夹,将当前目录转为此文件夹下,键入以下命令:
make clean
make mrproper
make ezkit_533_config
make
以上步骤完成后,会出现以下文件:
u-boot:这是elf文件,可以用它生成其它格式的文件。
u-boot.bin:这是二进制文件,可以用来升级u-boot。
在terminal下键入:
/opt/uclinux/bfin-uclinux/bfin-uclinux-objcopy –i binary –o ihex u-boot.bin u-boot.hex
此时在u-boot文件夹下生成u-boot.hex。
将主机系统转换为windows xp下,打开vdsp++开发软件,点开tool下的flash programmer,打开如图3所示的选项环境:
按图中所示设置好参数后,点击load file即可。
2.3 编译uclinux
将主机系统转为redhat9.0,打开terminal,当前目录应为uclinux所在目录,输入以下命令:
export path=/opt/uclinux/bfin-elf/bin: /opt/uclinux/bfin-uclinux/
bin:$path
make menuconfig
此时出现选择参数界面,包括厂商,器件型号等,选好参数后继续。过一段时间后,将出现两个模块选择介面,这里不更改任何选项,直接选择exit。
在terminal中键入:make ,开始编译uclin