1 Uclinux和Blackfin简介
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 开发板 [page]
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
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 ,开始编译Uclinux,这个过程大概需要几分钟左右,当编译成功后,在uclinux文件夹下的image文件夹中将生成名为linux的文件。
2.4 嵌入Uclinux
将主机系统转为Windows XP系统。
将ezkit板和主机用串口连接起来,打开hyperterminal,选COM1,确定后进入设置参数界面,如图4所示。
设置好参数后,按确定。给板子上电后,自动启动U-boot。
在ezkit>后键入:“ loadb” ,点击“传送”,“发送文件”,出现如图5的界面:
[page]
按上图设置好参数后,点击发送,则出现传送文件的界面,并显示进度。由于linux文件有5.1M,而BF533 ezkit没有以太网接口,只能用串口进行传输,速度较慢,这个过程约1小时。为了缩短传输时间,笔者在Linux系统下将linux文件进行压缩,压缩后的文件大约1M左右,这样整个传输时间将缩短为10多分钟。
压缩的指令为:
/tools/mkimage –A blackfin –O linux –T kernel –C gzip –a 0x1000 –n “uclinux kernel Image” –d linux.bin.gz uImage
这条指令将生成名为uImage的压缩文件。
当传输完成后,在ezkit>后输入:
bootelf 0x01000000(未经压缩)
bootm 0x01000000 (压缩)
此时将启动Uclinux,如果启动成功,将出现welcome画面。
到此,Uclinux已成功的嵌入到BF533 ezkit中。
3 在Uclinux中加入自己的应用程序
笔者用了一个最简单的程序“hello.c”来介绍如何在嵌入式操作系统中加入自己的程序。
(1)在/uclinux-dist/user/下建立一个新的文件夹shello,将源程序放到里面。
(2)修改/uclinux-dist/user/Makefile。加入:
dir_$(CONFIG_USER_SHELLO_HELLO)+=hello
(3)修改/uclinux-dist/config/configure.help。加入:
CONFIG_USER_SHELLO_HELLO
This is my program
这里需要注意一点:第二行的开头字母“T”离第一行的开头字母“C”两个字母的距离,同时每行不要超过70个字母。
(5) 修改/Uclinux-dist/config/config.in。加入:
bool ‘hello’CONFIG_USER_SHELLO_HELLO
(6)在/ucLinux-dist/user/shello/中加入makfile文件,此文件内容如下:
EXEC=hello
OBJS=hello.o
All:$(EXEC)
$(EXEC):$(OBJS)
$(CC) $(LDFLAGS) –O $ @ $ (OBJS) $ (LDLIBS)
romfs:
$(ROMFSINST) /bin/$ (EXEC)
clean:
rm –f $ (EXEC) *.elf *.gdb *.o
(7)做完以上步骤后,重新编译内核。此时hello应用程序会被加入内核中,注意在选择模块时选中hello。编译结束后,将内核下到板子上,启动Uclinux,在root>后键入hello,会出现“hello,world”。
4 结语
嵌入式操作系统是当今最热门的研究课题,本文详细介绍了怎样在Blackfin中嵌入Uclinux以及如何加入自己的应用程序,该系统已广泛应用到我们开发的项目中。
关键字:Linux Blackfin处理器 嵌入式
引用地址:嵌入式Linux在Blackfin处理器上的应用
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 开发板 [page]
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
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 ,开始编译Uclinux,这个过程大概需要几分钟左右,当编译成功后,在uclinux文件夹下的image文件夹中将生成名为linux的文件。
2.4 嵌入Uclinux
将主机系统转为Windows XP系统。
将ezkit板和主机用串口连接起来,打开hyperterminal,选COM1,确定后进入设置参数界面,如图4所示。
设置好参数后,按确定。给板子上电后,自动启动U-boot。
在ezkit>后键入:“ loadb” ,点击“传送”,“发送文件”,出现如图5的界面:
[page]
按上图设置好参数后,点击发送,则出现传送文件的界面,并显示进度。由于linux文件有5.1M,而BF533 ezkit没有以太网接口,只能用串口进行传输,速度较慢,这个过程约1小时。为了缩短传输时间,笔者在Linux系统下将linux文件进行压缩,压缩后的文件大约1M左右,这样整个传输时间将缩短为10多分钟。
压缩的指令为:
/tools/mkimage –A blackfin –O linux –T kernel –C gzip –a 0x1000 –n “uclinux kernel Image” –d linux.bin.gz uImage
这条指令将生成名为uImage的压缩文件。
当传输完成后,在ezkit>后输入:
bootelf 0x01000000(未经压缩)
bootm 0x01000000 (压缩)
此时将启动Uclinux,如果启动成功,将出现welcome画面。
到此,Uclinux已成功的嵌入到BF533 ezkit中。
3 在Uclinux中加入自己的应用程序
笔者用了一个最简单的程序“hello.c”来介绍如何在嵌入式操作系统中加入自己的程序。
(1)在/uclinux-dist/user/下建立一个新的文件夹shello,将源程序放到里面。
(2)修改/uclinux-dist/user/Makefile。加入:
dir_$(CONFIG_USER_SHELLO_HELLO)+=hello
(3)修改/uclinux-dist/config/configure.help。加入:
CONFIG_USER_SHELLO_HELLO
This is my program
这里需要注意一点:第二行的开头字母“T”离第一行的开头字母“C”两个字母的距离,同时每行不要超过70个字母。
(5) 修改/Uclinux-dist/config/config.in。加入:
bool ‘hello’CONFIG_USER_SHELLO_HELLO
(6)在/ucLinux-dist/user/shello/中加入makfile文件,此文件内容如下:
EXEC=hello
OBJS=hello.o
All:$(EXEC)
$(EXEC):$(OBJS)
$(CC) $(LDFLAGS) –O $ @ $ (OBJS) $ (LDLIBS)
romfs:
$(ROMFSINST) /bin/$ (EXEC)
clean:
rm –f $ (EXEC) *.elf *.gdb *.o
(7)做完以上步骤后,重新编译内核。此时hello应用程序会被加入内核中,注意在选择模块时选中hello。编译结束后,将内核下到板子上,启动Uclinux,在root>后键入hello,会出现“hello,world”。
4 结语
嵌入式操作系统是当今最热门的研究课题,本文详细介绍了怎样在Blackfin中嵌入Uclinux以及如何加入自己的应用程序,该系统已广泛应用到我们开发的项目中。
上一篇:通过FLIX指令结构提高可配置处理器计算性能
下一篇:XScale PXA270在Linux下的FPGA设备驱动
推荐阅读最新更新时间:2024-05-02 22:05
嵌入式系统应用中实现RS485的方向切换
RS485接口具有良好的抗噪声干扰性能、长传输距离和多站能力等特点,使其成为工业控制的首选串行接口。嵌入式系统中也广泛采用RS485接口作为设备控制的串行接口。RS485采用两线差分的接线方式进行串口数据的传输。由于发送和接收都是采用这两根差分线进行,因此它是半双工工作模式。基于RS485的特点,分别讲述了通过硬件方式和软件方式来实现RS485发送和接收方向的切换,重点解决了DM8168嵌入式平台上软件实现RS485方向切换的功能。 RS485总线是工业应用中非常成熟的技术,是现代通信技术的工业标准之一。RS485总线用于多站互连十分方便,用一对双绞线即可实现,采用平衡发送和差分接收,即在发送端驱动器将TTL电平信号转换成差
[嵌入式]
基于ARM的嵌入式数控系统设计
CAN是一种多主方式的串行通讯总线,与一般的通信总线相比,CAN总线的数据通信具有可靠性、实时性和灵活性。因此,CAN已经在汽车、航空、工业控制、安全防护等领域得到了广泛应用。
目前,在数控机床通讯方面,采用较多的是PROFIBUS,完全采用CAN总线通讯方式的目前还没有。本系统采用32位ARM处理器,对CAN总线通信系统进行了尝试。
1 系统构成
图1所示为基于ARM 9多处理器六轴嵌入式数控系统,它具有以下特点:
1)六个伺服电动机各由一个下位机控制。上位机和下位机均以ARM9微控制器为核心,对其API接口进行扩展,通过CAN总线电路进行通讯,组成全数字式的数控系统;
2)上位机还
[单片机]
嵌入式LKT4100防盗版芯片及加密技术
凌科芯安公司是国内最早将智能卡技术引入加密芯片行业的公司,通过充分利用智能卡芯片自身的高安全性,同时辅以自主版权的芯片操作系统LKCOS,能够确保芯片内部底层接口的安全,从内而外地保护芯片内部的程序不被盗版。由凌科芯安研发的LKT4100防盗版芯片备受市场关注,本文将介绍LKT4100防盗版芯片及硬件和版权加密方案。
独特的嵌入式系统硬件加密方案
在国内激烈竞争的电子设备产品开发以及方案设计行业中,很多公司大概都有这样的经历,自己通入巨资耗费大量时间心血开发设计的产品,投放市场不久,就被竞争对手或者盗版商分析透了,从硬件到软件原封不动地被克隆,换了一个外壳投放市场,结果自己的正版产品被低价盗版产品打败,前期投入
[单片机]
嵌入式GIS系统软件的低功耗设计
摘 要:低功耗已成为衡量电子系统的重要指标。针对嵌入式GIS系统的特性,采用全动态切换处理嚣工作模式;通过数据调度、坐标数据处理、绘制地图符号和优化关键算法等具体措施,降低处理器运行时间,实现嵌入式GIS系统软件低功耗设计。
关键词:嵌入式GIS低功耗设计 处理器工作模式 关键算法
引 言
嵌入式计算机技术的快速发展和社会需求的推动使得G1S技术逐渐应用于嵌入式系统中,构成嵌入式GIS。嵌入式GIS成了当前GIS发展的一个热门和重要研究方向。它具有数据采集、地图浏览、信息检索、路径分析和地形分析等功能,目前已经在城市智能交通系统(ITS)、物流配送系统、车辆导航及监控系统和数字化武器装备等系统中得到广泛应用。嵌入式GI
[嵌入式]
基于ARM嵌入式技术的GIS煤矿安全实时监测系统
1.前 言 由于煤矿生产所具有的特殊作业环境,致使生产过程中潜伏着比一般行业更大的危险性和不安全因素。随着煤炭开采量的不断增加,安全问题变得日益严峻,时常有各种特大事故见诸于媒体。这一切都警示了煤矿安全生产的严峻形势和提高煤矿安全生产的必要性和紧迫性。在计算机、互联网和通信技术高速发展的同时,应用以GIS为核心的监控系统已成为煤矿安全实时监测的一种重要手段。GIS煤矿安全实时监测系统可以将 传感器 测得的瓦斯浓度、风量、设备状态等多种数据自动地在电子地图中显示出来,结合井下人员定位系统还可以将井下作业人员的位置等也显示在电子地图上。系统数据传输以局域网、互联网等计算机网络为载体。在计算机技术、移动通信技术迅速发展的今天,把
[单片机]
应对细分化市场 研华转型嵌入式专卖店
“我们要从杂货店,转型为专卖店。”两年前,研华科技董事长刘克振就宣布了公司转型的目标,当时人们还在怀疑研华的出发点是否仅限于摆脱经济危机,然而现在来看,不管经济形势如何发展,细分化市场永远是IPC们所面临的问题。毕竟目前火热的医疗设备,智能住宅,车载通讯等领域已变得和人息息相关,而不是之前所理解的只与工业有关的狭隘的领域,行业应用的多样性自然会带来产品的差异化。也难怪,缺席了2009年Computex之后,研华又重返Computex展台,一方面是出于经济形势的好转,但另外也能说明,IPC虽然仍为利基市场,不过受惠的人群已不再局限于固定领域。 刘克振表示:“仅提供硬件板卡的供货商角色已不能满足客户的需求,在多年的丰富嵌
[EEWORLD独家]
嵌入式微处理器MCF5249及其应用
摘要:文中介绍了MOTOROLA公司的嵌入式微处理器MCF5249的原理、特点和引脚功能,说明了基于该处理器和嵌入式操作系统UCLINUX的网络相机结构,给出了用MCF5249进行网络相机设计时的资源分配情况及电路设计注意事项。
关键词:MCF5249;嵌入式微处理器;JPEG
1 概述
MCF5249是motorola公司推出的32位嵌入式微处理器,该器件以ColdFire 32 位微处理机体系结构为基础,并带有96kB 的片内SRAM、8kB 指令高速缓存、两个独立UART 和16 位定时器以及一个PLL 时钟,同时还带有软件监视时钟、GPIO 线路、两个I2C接口、QSPI口、4通道DMA和一个非粘合性SDRAM 控制
[应用]
[linux 底层]u-boot EMMC驱动
山寨机的时代,很多年轻的朋友可能比较陌生,手机上会安装一个SD卡,做存储扩展;目前的智能手机会在PCB板上焊接一个EMMC芯片,做大容量数据存储,安全性好了很多,手机丢了也不用担心照片或者资料泄露的问题; 1、EMMC特性 -符合JEDEC/MMC标准版本5.0 -高级12信号接口 -x1、x4和x8I/O,可由主机选择 -SDR/DDR模式,可达52MHz时钟速度 -HS200/HS400模式 -命令类:class 0 (basic); class 2 (blockread); class 4 (block write); class 5 (erase);class 6 (write protecti
[单片机]
小广播
热门活动
换一批
更多
最新嵌入式文章
更多热门文章
更多每日新闻
- 微灵医疗李骁健:脑机接口技术正在开启意识与AI融合的新纪元
- USB Type-C® 和 USB Power Delivery:专为扩展功率范围和电池供电型系统而设计
- 景昱医疗耿东:脑机接口DBS治疗技术已实现国产替代
- 首都医科大学王长明:针对癫痫的数字疗法已进入使用阶段
- 非常见问题解答第223期:如何在没有软启动方程的情况下测量和确定软启动时序?
- 兆易创新GD25/55全系列车规级SPI NOR Flash荣获ISO 26262 ASIL D功能安全认证证书
- 新型IsoVu™ 隔离电流探头:为电流测量带来全新维度
- 英飞凌推出简化电机控制开发的ModusToolbox™电机套件
- 意法半导体IO-Link执行器电路板为工业监控和设备厂商带来一站式参考设计
- Melexis采用无磁芯技术缩小电流感测装置尺寸
更多往期活动
11月22日历史上的今天
厂商技术中心