ARM Cortex-A8/A9开发板 | ARM11开发板ARM11开发套件 | ARM9开发板ARM9开发套件 | 飞思卡尔I.MX28I.MX6开发板 |
tiny210/mini210开发板 | mini6410开发板/套餐 | Tiny6410开发板无线套件 | mini2440开发板/套餐 | micro2440开发板带核心板 | 友善开发板配件 模块 | QQ2440 V3 SBC-2410X |
FL2440 OK2440-IV V4 | OK2440-III OK2440V3 | TE2440-II TE2440V2 | OK6410 S3C6410 ARM11 | FL6410/OK6410B ARM11 | TE6410 S3C6410 ARM11 | TE-9263 AT91SAM9263 | 开发板配件 模块和其他 |
Xilinx开发板/fpga开发套件 | altera开发板/fpga开发套件 | 基于FMC FPGA/DSP子卡 |
BeagleBoard原厂开发板 | PandaBoard原厂开发板 |
TI DM3730 DevKit8500D | TI系列 omap3530开发板 | ATMEL系列 开发板 | Samsung系列 开发板 | 开发板配件-仿真器 模块 | NXP LPC3250 mini3250 |
Tiny210 三星S5PV210 | Mini210/Mini210s开发板 | Tiny4412开发板Cortex-A9 | Tiny6410开发板 ARM11 | mini2440开发板 ARM9 | micro2440开发板 ARM9 | mini6410开发板 ARM11 | 友善ARM开发板配件 模块 |
keil ARM仿真器/开发工具 | STM32开发板 Cortex-M3 | NXP LPC开发板Cortex-M3 | ATMEL系列 ARM开发板 | Luminary EKK8962开发板 | Freescale i.MX31开发板 | 三星s3c2440 s3c6410开发板 |
FL2440 OK2440-IV V4 | OK6410 S3C6410 ARM11 | FL6410/OK6410B ARM11 | OK210/-A Cortex-A8 | TE2440-II TE2440V2 | TE6410 S3C6410 ARM11 | TE-9263 AT91SAM9263 | ARM开发板配件 模块等 |
Real6410开发板/套餐 | Real210开发板/Real2410 | WIFI GPS GPRS模块摄像头 |
Xilinx开发板/开发套件KIT | Altera开发板/开发套件KIT | 配套模块 |
NXP LPC开发板 ARM7 | Cortex-M3 STM32开发板 | 最小系统模块类(初学者勿选) | 开发工具 仿真器 调试器 | TFT液晶屏LCD 液晶模块 |
DM642开发板/DM642实验箱 | DM6446开发板/DSP实验箱 | DSP仿真器 液晶屏 摄像头等 |
DM3730/AM3715/AM3359 | OMAP3530AM1808AM3517 | 飞思卡尔Cortex-A9开发板 | ATMEL系列ARM开发板 | NXP LPC3250 LPC1788 | Samsung系列ARM开发板 | STM32系列F207/F407 | ARM开发板配件-仿真器 模块 |
Realv210 S5PV210开发板 | Real6410开发板 ARM11 | WIFI GPS GPRS模块摄像头 |
NXP LPC开发板 ARM7 | Cortex-M3 STM32开发板 | ARM小系统模块(初学勿选) | 开发工具 ARM仿真器 调试器 | TFT液晶屏LCD 液晶模块 |
keil ARM仿真器/开发工具 | STM32开发板 Cortex-M3 | NXP LPC开发板Cortex-M3 | ATMEL系列 ARM开发板 | Luminary EKK8962开发板 | Freescale i.MX31开发板 | 三星s3c2440 s3c6410开发板 |
Exynos4412开发板A9四核 | UT-S5PV210 S5PC100 | UT-S3C6410开发板 ARM11 | idea 6410开发板 ARM11 | UT-S3C2450开发板 ARM9 | UT-S3C2416开发板 ARM9 | UT-S3C6410核心板 工控 |
Xilinx开发板 FPGA开发套件 | altera开发板 FPGA开发套件 | FMC模块 配件 下载线 |
DM642开发板/DM642实验箱 | DM6446开发板/DSP实验箱 | DSP仿真器 液晶屏 摄像头等 |
s3c2410 ARM9 FS2410 | s3c2440开发板 ARM9 | s3c44B0开发板 ARM7 | s3c6410 2450 2443/13 | PXA270 PXA320 PXA255 | Atmel 9200 9261 9G20 | Philips NXP开发板YL-LPC | FS-EP9315开发板ARM9 | LCD液晶屏TFT真彩/触摸屏 | ARM仿真器/仿真调试工具 | ARM开发板配套ARM核心板 |
三星s3c2410 s3c44B0 | 三星s3c6410 s3c2443 | Intel PXA270 PXA320 | UP-CUP OMAP5910平台 | FPGA Xilinx altera平台 | 配件-仿真器 模块 液晶屏LCD | 龙芯开发板UP-DRAGON-I | 物联网教学科研设备 | EDA/FPGA/SOPC教学科研 |
utu2440-F-V4.5 含核心板 | utu2440-S-V4.1 单板结构 | YC2440-F-V5.1开发板 豪华型 | YC-ePC-A系列人机界面 | Mars-EDA套件CPLD FPGA | 触摸屏LCD 摄像头 WI-FI模块 |
ARM开发板/开发平台 | FPGA开发板/开发平台 | 编程器/烧写器下载器烧录 | ZLG 仿真器ARM FPGA DSP | ZLG周立功逻辑分析仪 |
DSP初学者开发套件(DSK) | DSP仿真器/仿真系统 | DSP开发板/DSP试验箱 | DaVinci系列多媒体平台 | Xilinx FPGA大学计划产品 | SEED教学实验系统 | FPGA/DSP FPGA开发板 | TI原厂开发板套件/CCS软件 |
ARM开发板 | XSCALE开发板 | ARM仿真器 | SOPC开发板 | DSP开发板 | 达芬奇系列DSP开发平台 | DSP仿真器 | DSP实验箱 | DSP专业研究平台 | ARM实验箱系列 |
广嵌实验室项目产品 | GEC2440/GEC6410开发板 |
泰克Tektronix示波器 | 普源RIGOL示波器 | USB虚拟示波器 |
UT-S5PC100 UT-S5PV210 | UT-S3C6410开发板 ARM11 | idea 6410开发板 ARM11 | UT-S3C2450开发板 ARM9 | UT-S3C2416开发板 ARM9 | UT-S3C6410核心板 工控 | 开发板模块wifi gps等 |
EMA OMAP3530开发板 | EMA OMAP 3530核心板 |
三星s3c2410 s3c44B0 | 三星s3c6410 s3c2443 | Intel PXA270 PXA320 | UP-CUP OMAP5910平台 | FPGA Xilinx Altera平台 | 配件-仿真器 模块 液晶屏LCD | 龙芯系列 UP-DRAGON-I |
utu2440-F-V4.5 含核心板 | utu2440-S-V4.1 单板结构 | YC2440-F-V5.1开发板 豪华型 | 触摸屏LCD 摄像头 WI-FI模块 | Mars-EDA套件CPLD FPGA | ePC系列工控一体机ARM9 A8 |
ARM开发板/开发平台 | FPGA开发板/开发平台 | 编程器/烧写器下载器烧录 | ZLG 仿真器ARM FPGA DSP | ZLG周立功逻辑分析仪 |
DSP初学者开发套件(DSK) | DSP仿真器 | DSP开发板 | DSP实验箱 | Xilinx FPGA大学计划产品 |
ARM开发板 | XSCALE开发板 | ARM仿真器 | SOPC开发板 | DSP开发板 | 达芬奇系列DSP开发平台 | DSP仿真器 | DSP实验箱 | DSP专业研究平台 | ARM实验箱系列 |
ARM开发板S3C6410等 | Cortex-A8/ARM11仿真器 | ADSP Blackfin开发板 | FPGA Spartan-3E开发板 |
GEC2410开发套件ARM9 | GEC2440开发套件ARM9 |
泰克 示波器 |
PNXl300是Philips公司推出的,用于视频编解码的TriMedia DSP系列产品中的一种。它的内核处理惩罚器采取VLlW(超长指令字)布局,主频可以到达200 MHz。它针对数字视频和音频应用举行了布局优化,集成有视频输入(VI)和视频输出(VO)单位,音频输入(AI)和音频输出(AO)单位以及通讯线路接口等外围配置。PNXl300另有专用多媒体指令集,可以充分利用其硬件布局体系的特性,大大进步视频、音频数据的处理惩罚速率。
板级支持包(BSP)属于嵌入式体系的一部分,它是运行于微处理惩罚器上的软件和外围元件(芯片)接口的软件层。一个完备的BSP必要用到TriMedia注册表和成员办理器。
本文针对以PNXl300为内核CPU的嵌入式体系,利用TriMedia注册表和TriMedia成员办理器,实现了一种BSP函数构造及其和上层应用步伐通讯的要领。在此底子上,搭建起一个基于MPEG-4标准的网络视频编码体系。
1 原理和要领
在TriMedia的软件布局中,板级支持包是和硬件接口的最底层软件层,它提供TriMeclia DSP和外围元件之间的连接函数。BSP通过I2C总线对外围芯片的各个寄存器举行控制。它一方面完成外围芯片的初始化,另一方面,在必要时变化各芯片的内部设置,从而使硬件按用户的请求事变于差别的状态。
利用BSP最大的长处是:把上层应用步伐和底层硬件退出,包管了开辟不受主处理惩罚器及外围硬件更新的影响,只需对BSP中的配置驱动步伐做大略的窜改,便可使其得当于更新的硬件。
Trimedia的软件布局包括两个紧张的库:注册表(Registry)和成员办理器(Component Manager)。应用这两个库,可以为标准配置库创建板级支持包(BSP)。
1.1 TriMedia注册表
Trimedia注册表为体系提供了存储和检索信息的一样平常要领,它使得上层配置库可以找到特定板子的信息。注册表是一个分层布局的树,它由目次和数据箱构成。这些目次和数据箱都被视为入口。入口可以是字符串、整数值大概任意用户数据。
注册表用一个字符串情势的“关键字”来存储和检索信息。
1.2 TriMedia成员办理器
TriMedia成员办理器为体系提供一个依赖于硬件平台将信息写入注册表的要领。可以把一段必要在主函数之前运行的软件叫做一个成员,如许定义的成员包括板、芯片、Flash内存等。一个成员可以被看作一个黑匣子,大概它的运行必要其他一些成员在它之前先运行,那么这些在它之前先运行的成员就被视为该成员的输入。一个成员大概会输出一些它本身的属性,而这些属性被视为该成员的输出。这些输入和输出都被视为标记并存储在注册表中。
成员办理器依据成员列表、相应的输入和输出,创建一个依赖干系树,然后它根据该依赖干系树一个接着一个地运行各个成员。成员办理器可以包管在其他依赖于本成员的成员运行前,先得当的初始化该成员。大略说,TriMedia成员办理器提供了一种控制体系初始化次序的机制。
本文中,将板级支持包作为一个成员来写入注册表。BSP是第一个要运行的成员,以是它不必要任意的输入,但是很多成员都依赖于它,因此板支持包有一个输出标记叫做“bsp/toardID”。
2 体系软件计划及实现
在本文中,体系软件计划采取了层型软件布局,应用步伐并不是直接通过调用BSP中的函数来对硬件举行操纵,而是通过调用多少配置库函数实现对底层硬件的操纵。体系的软件布局如图1所示。如许构造体系软件框架的长处是:使得应用步伐布局大略明白,易于步伐调试;当底层硬件必要窜改时,应用步伐险些不消做修改,只必要修改相应的BSP函数以适应新的硬件。
本文采取TriMedia的注册表和成员办理机制来对BSP函数举行注册和办理,上层的Tri-Media配置库函数,通过检索注册表来调用某个芯片的多少底层BSP函数完成特定的成果。这就实现了BSP和上层配置库的通讯。
BSP的实现要领如下所述。
①对每一个芯片定义一个函数指针表和成果布局体。在这个定义的布局体中,包括了对该芯片的初始化、配置、结束等操纵的各个函数指针。比方,对视频输入A/D转换芯片定义一个布局体变量Board_vi,在这个布局体中,包括了Board_vi_Init、Board_vi_Term、Board_vi_config等函数指针,另有为实现差别成果而对该芯片寄存器设置的函数指针,以及读取状态寄存器内容的函数指针,用于对该芯片举行全面的操纵。
②将BSP作为一个成员由成员办理器初始化。本文中,将BSP作为一个成员由TriMedia成员办理器控制,为了让成员办理器找到对当前板子的支持包,必须在编写BSP时间,用到如许一个由TriMedia提供的宏:TSA_COMP_DEF_()_COMPONENT(myBoard,TSA_COMP_BUILD_ARG_LIST_1("bsp/boardlD”),Board_actlvate)。这个宏可以把一个成员的输出标记导出,如许成员办理器就可以把BSP作为一个成员而找到。在这个宏中,第一个参数指的是将要被定义的成员的名字,第二个参数报告成员办理器,输出的标记叫做bsp/boardID,第三个参数是板激活函数,成员办理器通过调用这个函数初始化该成员,并注册全部BSP中支持的函数。
③编写板激活函数。板激活函数起首检测当前BSP是否立室当前板子,这就要通过I2C总线读取启动EEPROM,这部分代码重要用iicReadReg API函数来编写.从而读出并比较boardlD,以果断是否立室。要是立室则启用当前BSP,对BSP中全部支持的外设举行注册。倒如对上文所提到的视频输入A/D转换芯片成果的注册就通过tsaBoardRegisterVI(0,&Board_vi)API函数来完成,这里只是将布局体变量的指针在注册表中举行了拷贝,并不是布局体自身的内容。上层的TriMedia配置库函数中有同样范例的布局体变量指针,配置库函数通过在注册表中检索该布局体变量的地点,将检索到的地点再赋给配置库函数中定义的布局体变量,从而实现了BSP和上层配置库的通讯,进而实现应用步伐通过调用配置库函数来完成对底层硬件的操纵。图2给出了体系的函数调用流程图。
利用上述原理和要领,计划搭建了一个基于MPEG-4标准的网络视频编码体系,图3是网络视频编码体系原理框图。将征求的视频信号举行MPEG_-编码,体系可以将码流畅过网络发送到远端,也可以将输入视频在本地监督器上表现。主芯片采取的是TriMedia系列芯片PNxl.300,视频输入A/D转换器采取PhiIilps公司的SAA7114,视频输出D/A转换芯片采取Phllips.公司的SAA7121。
事变进程是:经摄像机征求的一起模仿视频输入后,由视频解码芯片SAA7114转化成数字信号并送入PNXl300的VI(Video In)单位,VI单位将视频数据分成YUV4:2:2格局分别存储在SDRAM中。PNXl300对视频数据举行MPEG-4编码后,选择网络发送大概本地表现。在该视频编码体系中,利用了上文提到的要领编写BSP。比方对视频解码芯片SAA7114,为其创建函数指针和成果布局体,利用注册表机制对其成果举行注册,并将整个BSP作为一个成员来由成员办理器初始化,应用步伐只必要调用少数TrlMedia视频配置库函数,就可以对该芯片举行打开、征求、停止、封闭等操纵。经测试,该要领可以有效的构造对各外设操纵的各个函数,并为上层软件提供接口,有利于应用步伐的开辟,使得应用步伐布局越发清楚。
结语
板级支持包BSP在嵌入式体系中的作用是必不可少的,它作为上层软件和底层硬件之间的接口软件层,是必要分外赐与器重的。本文提到的编写和构造BSP函数的要领,是针对TriMedia软件结会商软件开辟环境而给出的,其注册表和成员办理器机制为BSP的编写提供了极大的方便,使得BSP布局清楚,整个软件框架层次明白。本文给出构造BSP的要领也具有一样平常性,对付其他嵌入式体系采取雷同的思路来构造应用步伐、库函数和板级支持包并处理惩罚其间的相互通讯,也会获取很好的结果。
博航网 www.broadon.net 版权所有
京ICP备10051899号-2 京公网安备110108006479号