嵌入式Linux下的AU1200MAE驱动程序设计

发布者:csydtc最新更新时间:2010-06-13 来源: 现代电子技术关键字:Linux  驱动程序  MAE 手机看文章 扫描二维码
随时随地手机看文章

  随着移动多媒体终端的口益普及,功能的日益强大,人们已经不满足于自己的手持终端仅仅能够听MP3音乐,而是希望终端在播放音乐的同时能够播放高质量视频,并支持多种视频格式。AU 1200作为一款基于MIPS架构的处理器,由于其片上集成了视频硬件设备(Media Accel-eration Engine,MAE),使得该处理器无需配合其他视频解码芯片即可完成多种格式的视频解码功能,所以AU 1200非常适合应用于像PMP这样的移动多媒体终端,而MAE也成为AU 1200的特色。

  1 MAE概述

  MAE是AU 1200的片上硬件设备,除了可以实现视频解码功能外,还可以完成色彩空间转换、滤波等工作。MAE在硬件结构上可以分为前端和后端两部分,各自完成一些特定的功能。MAE前端主要完成视频的实时解码,包括反量化、IDCT、运动补偿等;而后端主要完成图像的滤波、色彩空间转换等。除此之外,MAE还可以通过AU 1200片上外设CIM(Camera InteRFaceModule)处理从摄像头获取的数据。MAE使AU 1200的MIPS32核不用再因为视频的实时解码而产生大量的开销。从而使其能够专注于完成接口、音频处理等其他任务,这样一来大大提高了系统的工作效率。MAE支持的视频Codec格式包括:MPEG-2 Main Profile@Main Level,MPEG- Advanced Simple Profile @ Level 5,WMV 9 Media Profile @ Medium Level,最高支持D1 30 f/s的实时解码。

  2 开发环境的建立

  硬件开发板采用华恒科技的HHAU 1200,该板提供丰富的接口,并已将Bootloader固化在板上的FLASH当中,通过烧写工具可对其软件系统进行更新升级。只要建立交叉编译环境便可在HHAU 1200上开发硬件设备驱动程序和应用程序。

  2.1 宿主机开发环境的建立

  宿主机(PC)通过串口线连接至开发板的串口1,同时通过交叉网线连接至开发板的网口。宿主机安装Red Hat Linux操作系统,所安装的版本是EnterpriseLinux AS4,建议采用完全安装。由于HHAU 1200开发板在烧写时默认的IP为192.168.2.222,所以PC机的IP也要设置在该网段。在Linux PC下配置好NFS(为交叉开发时Mount所用)、TFTP服务器(为下载烧写所用)和Minicom。以上几项配置好后启动Minicom,当开发板上电后便可看到启动信息。

  在PC的Linux终端提示符下键入mount-onolock 192.168.2.222://mnt,即把AU 1200开发板根目录下的所有文件和目录Mount到宿主机Linux下的mnt目录,在Linux终端提示符下可通过ls命令查看。

  2.2 交叉编译工具链的建立

  按照以下步骤:

  (1)下载交叉编译工具软件包mipsel-linux-gcc-sdk-3.4.4-i386.tar.gz,解包至/opt路径下;

  (2)添加交叉编译工具环境变量:修改/etc/profile文件,在文件末尾添加export PATH=$PATH:/opt/mipsel-linux-gcc-sdk-3.4.4/cross/bin;

  (3)使新的环境变量生效:#source/etc/profile;

  (4)检查是否将路径加入PATH:#echo$PATH,若显示的内容中有上述路径,说明已经将交叉编译工具的路径加入PATH;

  (5)用hello.c进行交叉编译测试:编译出的可执行文件用file命令查看其属性可得到如图1所示信息。

  这说明交叉编译工具可以正常使用,编译出的可执行文件可以在MIPS处理器上直接运行。

  3.MAE前端驱动软件设计及测试

  3.1 驱动软件设计

  MAE可分为前端和后端,前端的主要功能是完成多种视频格式的实时解码,其方框图如图2所示。

  MAE前端的输入数据是一系列的数据宏块,宏块数据以及头信息、系数矩阵、运动向量等都以DMA的方式传送给MAE。所以在程序中首先要定义指针maefe_dmadscr[PTR]来描述DMA。并把maefe_dreadbell[DB]寄存器设置为1来启动DMA控制器。头信息一共包含4个word,每个word有32 b,这4个word分别保存到AU 1200寄存器mae_hdr0到mae_hdr3中,这些word包含了关于编码宏块的信息,如量化参数,运动补偿参数,变换运算等信息。

  驱动程序首先要把每一帧的地址写入MAE的相关寄存器中,在每处理一帧后,上述宏块信息都要及时更新。MAE的前端对宏块数据进行反量化,其结果输入至逆变换单元进行逆变换运算。逆变换运算单元通过查看maefe_config寄存器的COD标志位来决定采用哪种标准的视频Cod-ec,从而执行相应的运算。逆变换运算完成后,数据送入运动补偿单元。运动补偿单元根据运动向量计算出参考像素值,并把它们插入当前帧中,从而完成一次解码。以上过程通过编写函数fe_process_mb来实现,该函数的几个参数分别是:

  mae_fe_cfg:MAE前端的配置信息;mb_in:输入的宏块数据;cur_y_frame:当前帧Y分量;cur_cb_frame:当前帧Cb分量;cur_cr_fr-ame:当前帧Cr分量;mb_num:表示宏块数据的序号。该函数的流程图如图3所示。

  函数中的关键部分及说明注释如下所示:

  3.2 驱动软件测试

  将以上程序交叉编译,生成mae-driver.ko,动态加载到Linux内核:#insmod - f mae-driver.ko。用MAIplayer验证是否可以正常工作:启动minicom,进入MAIplayer所在路径,该路径下有编译好的播放器应用程序及各种视频解码库。执行视频文件播放命令MYM./maipl-ayer auto-a-l jolin.mpg。播放效果如图4所示。经测试,MAIplayer可正常播放多媒体视频,说明MAE已被驱动起来完成视频解码工作。

  4 结语

  本文给出了AU 1200 MAE驱动程序开发的流程,包括开发环境的搭建及驱动程序的编写。MAE作为AU 1200片上专用于图像、视频的外部设备,相当于一个视频协处理器。它的使用大大提高了MIPS核的工作效率,而以AU 1200为核心的多媒体终端具有更低的成本,因此。其市场前景将更加广阔。

关键字:Linux  驱动程序  MAE 引用地址:嵌入式Linux下的AU1200MAE驱动程序设计

上一篇:ImgTec:多核移动图形芯片到来支持OpenCL
下一篇:放弃Intel?瑞萨电子与AMD合作推广USB3.0

推荐阅读最新更新时间:2024-05-02 21:04

OK6410A 开发板 (八) 56 linux-5.11 OK6410A armv6 异常之访存异常
本文描述 armv6 异常 中的 data abort 和 instruction fetch abort ARMv6 异常 ARMv6 异常 7种 reset 和 swi 共享 SVC异常模式(特权) data abort 和 instruction fetch abort 共享 ABT异常模式(特权) attempted execution of an Undefined instruction UND异常模式(特权) IRQ, normal interrupt IRQ异常模式(特权) FIQ, fast interrupt FIQ异常模式(特权) ARMv6 非
[单片机]
OK6410A 开发板 (八) 56 <font color='red'>linux</font>-5.11 OK6410A armv6 异常之访存异常
英特尔加速 Linux 软件开发,为 Arrow Lake 和 Lunar Lake GPU 提供支持
12 月 17 日消息,英特尔在 Linux 6.8 合并之前提交了首个 drm-xe-next Pull Request,用最新的 Xe GPU 驱动取代了 Linux 上的传统的 i915 DRM 内核驱动程序。 实际上,英特尔从 Tiger Lake 开始就已支持 Xe 实验特性,但考虑到 i915 仍是 Meteor Lake 和 Alchemist 平台的主导驱动,英特尔的目标应该是让这个 Intel Xe 驱动程序成为 Lunar Lake 及后续平台的主要驱动程序。 IT之家将英特尔针对 Xe2(Battlemage)GPU 添加的所有更改之处汇总如下: drm/xe: Add performance tuni
[嵌入式]
基于Linux2.6.24内核的WSN多频段网关设计
引言     目前,物联网(Internet of Things,IOT)正呈现飞速发展的态势。本文介绍一种无线多频段WSN网关,可通过以太网或者移动通信网络,监控多个频段的无线传感器子网节点的运行情况。 1 系统总体结构     本文设计的系统在感知层采用4个频段的无线传感器网络节点。各频段子网通过一个多频段网关装置接入到网络层。用户可以通过监控终端监控现场数据,监控终端既可以是固定的PC机,也可以是移动的3G设备。同时,网关还具备良好的扩展性,网关可以同时接入多个频段的WSN网络。多频段WSN网关系统结构框图如图1所示。 2 网关硬件系统设计     网关的主控制单元采用ARM9芯片S3C2440A,主频400 MH
[嵌入式]
基于ARM和Linux通用工控平台设计与实现
随着工控技术的进步和市场竞争的加剧,开发人员通常需要在尽可能短的时间内设计出满足用户要求的测控系统。本文针对嵌入式系统的特点,以高性价比的32位ARM嵌入式处理器AT91RM9200为硬件核心,搭建了通用工控硬件平台,在此平台上移植嵌入式Linux操作系统和图形界面开发环境MiniGUI。以此通用工控平台为基础,可以方便地构建工程应用所需的绝大部分自动测控系统。其应用无论是在性能还是在成本方面都极具竞争力,这预示着本平台具有较好的应用前景。 本工控平台在硬件上,选择ATMEL公司的AT91RM9200微处理器,并对其最小系统及外围部件进行设计,以适应当前工控现场更加丰富的技术要求,并结合工业测控Modbus协议,扩展多种通信接口
[单片机]
基于ARM和<font color='red'>Linux</font>通用工控平台设计与实现
Small RTOS51的PS/2键盘驱动程序开发
引言   随着 嵌入式 系统的发展, 嵌入式 软件设计向软件平台靠近,单片机软件设计不再是单一线程结构方式,而是逐步采用多任务的设计思想。实时操作系统使得实时应用程序的设计、扩展和维护变得更容易,无需大的改动就可以增加新的功能。然而随着任务的增加,要求输入的数据也会增加,类型也呈多样化。如果仍然用矩阵式扫描键盘,势必浪费单片机巨大的资源,且增加了成本。若用PC机标准PS/2键盘取而代之,将可解决以上矛盾。本文介绍基于实时操作系统Small RTOS51的PS/2键盘驱动程序的设计,具有响应快,移植性强,占用资源少等优点。 1 驱动的设计   驱动的实现一般可用以下几种方法:① 使用任务编写;② 使用消息编写;③ 使用信
[嵌入式]
液晶显示器lcd1602驱动程序
#include lcd1602_driver.h #include msp430g2553.h #include typedef.h #ifndef _LCD_1602_ #define _LCD_1602_ //lcd1602的io #define LCD1602_WR_DATA_PORT P2OUT //数据输出端口 #define LCD1602_RD_DATA_PORT P2IN //数据输入端口 #define LCD_EN_SET { P1DIR |= BIT5 ; P1OUT |= BIT5; } //lcd使能设置 #define LCD_EN_CLR { P1DIR |= BIT5; P1OUT &= ~
[单片机]
基于TMS320DM642的视频采集驱动程序的实现
摘要:从两个方面描述了基于DSP芯片TMS320DM642的视频采集驱动程序:在C64x系列DSP的实时操作系统DSP/BIOS上,使用类/微驱动模型的程序框架构建;基于EDMA的视频数据的实时传输。实践表明,该程序解决了图像采集和图像实时处理之间的关系,简化了应用程序对驱动的调用。 关键词:视频采集驱动DSP DSP/BIOS 类/微驱动模型EDMA 视频终端的核心是图像的数字化处理模块。基于PC机的数字视频处理,给出了算法研究的途径,而基于高速DSP的应用模块才提供了实时嵌入式视频处理的可能。然而,基于DSP的海量视频数据的实时处理的关键则是实时、合理的视频数据采集。本文针对自行研制的基于TMS320DM642(以下简称D
[嵌入式]
Linux(AT91SAM9260)增加UBIFS文件系统支持
一、编写目的 UBIFS是针对nand设备而设计的一种新文件系统。针对JFFS2、YAFFS2等专用文件系统也存在着一些技术瓶颈,如:内存消耗大,对FLASH容量、文件系统大小、内容、访问模式等的线性依赖,损益均衡能力差或过渡损益等,由于采用了压缩方式,UBI文件系统占用的空间比yaffs要小,而且避免了nand flash中OOB数据的操作。在此背景下内核加入了UBI文件系统的支持。需要注意的是UBIFS对异常掉电的容忍性差,容易出现CRC错误。 本文档用于记录为Linux增UBIFS文件系统支持的操作过程,方便日后查阅和参考。使用的软硬件环境如下,其它平台的可参考本文档进行类似操作即可。
[单片机]
<font color='red'>Linux</font>(AT91SAM9260)增加UBIFS文件系统支持
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved