达芬奇数字媒体片上系统的架构和Linux启动过程

发布者:beta13最新更新时间:2007-07-17 来源: 与非网关键字:硬件  引脚  时钟  电源 手机看文章 扫描二维码
随时随地手机看文章
达芬奇( DaVinci)数字媒体技术平台TMS320DM6446/3采用了ARM+DSP双核的架构,本文从芯片的硬件结构入手介绍达芬奇DMSoC硬件部分及Linux OS的启动过程。

达芬奇DMSoC硬件概述

如图1所示,达芬奇数字媒体片上系统(DMSoC)提供:两个内核(ARM+DSP);视频处理子系统(VPSS);多种 Boot模式(NOR Flash/NAND Flash/UART0 Boot Mode);两个电源域;多个时钟树;多个引脚独立或复用的外设。

图1 DM6446功能结构框图

● ARM-DSP集成

对于双核的达芬奇架构,大家最关心的就是两个核之间的资源分配、通信方式及如何高效地实现资源共享各尽其能。ARM独享(DSP不可用)的外设有:UART0/1/2,I2C,看门狗定时器,PWM0/1/2,ARM中断控制器,USB2.0,ATA/CF,SPI,GPIO,VPSS,EMAC/MDIO,EMIFA CONTROL,VLYNQ,MMC/SD。DSP独享(ARM不可用)的外设有:DSP中断控制器,VICP。ARM和DSP共享的外设有:EDMA,Timer0/1,Power & Sleep Controller,ASP和EMIFA Data。

图2 ARM-DSP集成结构

如图2所示,可以很清楚地看到ARM可以访问DSP片内存储器(L2RAM和L1P/D);DSP可以访问ARM片内存储器;ARM和DSP共享DDR2和AEMIF。因此,通常情况下ARM只需传递需要处理的数据地址指针给DSP,而无须大块的数据搬移。ARM和DSP之间的通信可以通过相互中断实现。ARM可以中断DSP(通过4个通用中断和1个不可屏蔽中断);DSP可以通过2个通用中断来中断ARM。ARM控制DSP的电源、时钟、复位和引导。

● DMSoC存储器映射

达芬奇DMSoC多个片上存储器和两个处理器及不同的子系统相关。为了简化软件开发,DMSoC中所有的存储器统一编址,如表1所示。

● DMSoC交换中心资源

以上大家看到DMSoC有非常丰富的外设和视频处理硬件资源,而且ARM和DSP又共享DDR2等存储器资源,那么DMSoC又是如何确保ARM、DSP和VPSS同时访问外设或存储器资源时不会引起冲突呢?DMSoC中的交换中心资源(SCR:Switched Central Resource)会做出管理。如图3所示,把任何一个发起数据传输的源称为Master(每一个Master有一个专用的ID),这个Master要访问的目的地称为Slave,这样在Master和Slave之间就构成一条数据传输的通路。从图3中可以看到,在SCR中可以有很多并行的Master到Slave的数据通路。如果是不同的Master、相同的Slave,那么可以通过设置每一个Master的优先级来得到特殊应用系统的最佳性能。对于大多数的Master,可以通过寄存器MSTPRI0和MSTPRI1来设置它们的优先级。如果Master是C64x+、VPSS和EDMA,可以通过它们自己的相关寄存器控制它们自己的优先级,这样可以更加灵活、快速的实现高的视频数据吞吐带宽。详细信息可以参考DM6446的数据手册。

图3 DMSoC交换中心资源的结构框图

电源域及复位

达芬奇DMSoC有两个电源域,分别是Always On域和DSP域。Always On域由CVDD ARM核电源供电,给ARM、总线、SCR和除VICP之外的所有外设提供电源;DSP电源域由CVDDDSP DSP核电源供电,给DSP和VICP提供电源。

双核架构的达芬奇DMSoC的功耗也非常有竞争力,这一方面取决于芯片本身的工艺,另一方面也取决于芯片内部时钟和电源的结构。如图4所示,达芬奇DMSoC有电源休眠控制器(Power & Sleep Controller)管理芯片电源的开关及复位。可以用软件控制DSP电源域,控制DSP及其模块时钟的开关和复位。PSC不支持ARM及其模块的断电控制、ARM的本地复位和ARM的时钟关断控制。同时PSC可以中断ARM和DSP,支持IcePick仿真(emulation)特性。

图4 DM6446的电源休眠控制器

关于达芬奇DMSoC的复位类型、触发源及对应的复位对象请参考表2。

达芬奇DMSoC初始化流程

● 达芬奇DMSoC复位状态

DM644x上电复位后,芯片的绝大部分模块都处于不工作状态。锁相环PLL处于旁路(Bypass)模式;DSP子系统的状态取决于DSP_BT引脚;UART1和UART2也处于不工作状态,UART0的状态取决于BTSEL引脚(如果BTSEL=11,UART0工作);EMIFA处于工作状态,其数据总线宽度由EM_WIDTH决定,地址总线宽度由AEAW决定;芯片的大部分引脚都被配置为GPIO引脚。引脚复用通过寄存器PINMUX0和PINMUX1控制。

● 达芬奇DMSoC初始化顺序

(1)DMSoC复位。芯片的配置由PSC决定,取决于BTSEL[0-3]、EM_WIDTH、AEWA和DSP_BT的状态。

(2)ROM boot loader(如果被选)。NAND或者UART0的初始化。

(3)引导加载(Boot-loading)。以U-boot为例,①使能电源域:DDR2和DSP;②设置时钟频率(ARM、DSP和DDR2时钟的乘除系数);③设置引脚复用控制器;④设置ARM引导启动操作系统。

(4)操作系统启动。以Linux为例,①初始化ARM;②初始化硬件系统;③初始化Linux环境。

● U-boot初始化顺序

通常情况下,ARM Linux要求boot loader中有少许的初始化。目前TI的DVEVM使用的是U-boot-1.1.3。U-boot代码中首先运行的是u-boot/cpu/arm926ejs/start.S,芯片和一些DVEVM板的硬件配置主要在u-boot/board/davinci/platform.S和davinci.c中完成。其中u-boot/board/davinci/platform.S设置最基本的系统硬件环境,包括系统PLL及DDR2的初始化、PSC的配置及使能UART0、AEMIF等硬件模块。有些工程师设计的达芬奇板可能用到了和DVEVM不同的Flash,那么就要根据用到的Flash参数修改u-boot/board/davinci/flash.c。另外,关于DM644x支持的NAND Flash ID,请参考TMS320DM644x DMSoC的相关文档。

以NOR Flash boot为例,DVEVM u-boot初始化下列的达芬奇DMSoC内容:

(1)关中断和MMU。

(2)使能DSP电源域(PTCMD),把DSP置为复位状态。

(3)初始化PLL,使能DDR2,软复位DDR2并且重新使能DDR2,使其脱离复位状态。

(4)初始化系统PLL。

(5)配置AEMIF引脚为NOR Flash接口。

(6)VTP校准。

完成以上步骤之后,U-boot准备引导ARM Linux。

(1)配置系统的内存(通过ATAG_ MEM块和mem=)NAND Flash和DDR2。

(2)通过TFTP加载等加载方式,加载内核到指定的存储地址。

(3)如果定义过,加载RAM Disk。

(4)初始化传递到内核的引导参数(EMAC地址,串口,控制台,视频格式等)

(5)获得ARM Linux机类型值(DVEVM为#901)。

(6)设置kernel tagged list。

(7)用初始值设置ARM的寄存器。

(8)调用内核。

● Linux 初始化步骤

(1)Linux内核需要从引导加载程序(U-boot)中得到以下参数。

* 已经初始化的memory系统。

* R0=0;R1为ARM Linux机类型值。

* R2指向ATAG结构体的内容:①物理memory区;②是否使用RAM DISK及其压缩版的地址;③视频驱动程序具体的初始化参数;④内核命令行;⑤其他参数(串口和版本号)。

更多关于Linux内核引导参数的信息可以参考Linux/Documentation/kernel-parameters.txt。如果要想传递给内核更多的参数,再u-boot中的bootargs中设置就可以了。

(2)对于压缩的内核(aka uImage),Linux 最初启动Linux/arch/kernel/head.s。

(3)start_kernel()运行。位于Linux/init/main.c。

(4)Linux的第一个进程init()运行。

总结

经过上面介绍,很多DSP工程师可能会对达芬奇DMSoC及Linux启动流程有一个感性的认识,双核架构的达芬奇DMSoC带给我们的是一加一大于二的性价比,要想了解更多的细节,请参考数据手册和应用文档。

关键字:硬件  引脚  时钟  电源 引用地址:达芬奇数字媒体片上系统的架构和Linux启动过程

上一篇:TI 浮点DSP助力宝利通语音会议更上层楼
下一篇:达芬奇数字媒体片上系统的架构和Linux启动过程

推荐阅读最新更新时间:2024-05-02 20:36

51单片机驱动高精度时钟DS3231源代码
本程序一共有2个文件,成功的用stc89c51单片机驱动,完整的代码从 http://www.51hei.com/f/ds3231code.rar 处下载 下面是源码预览(第一个文件): /////////////////////////////////////////////////////////////////////////////////// /* DS3231.h文件 */ //////////////////////////////////////////////////////////////////////////////////// #ifndef _ds3231_h_ #define _ds3231_h
[单片机]
89C52单片机之数字时钟制作
这里和上面一篇数字秒表差不多,只不过复杂在多了四个七段显示屏,整个显示分为时、分、秒三部分。时为24时置为0,分为60时置为0并向时进1,秒为60时置为0并向分进1。 程序: #include reg52.h #include INTRINS.H void delay(unsigned char dly) { unsigned char i,j; for(i=100;i 0;i--) for(j=dly;j 0;j--) ; } unsigned char num,time1,time2,time3; void timer0()interrupt 1 { TH0=(65
[单片机]
电源设计指南:拓扑结构(三)
SMPS拓扑及转换原理 根据电路拓扑的不同,SMPS可以将直流输入电压转换成不同的直流输出电压。实际应用中存在多种拓扑结构,比较常见有三种基本类型,按照功能划分为(参见图2):降压(buck)、升压(boost)、升/降压(buck-boost或反转)。下面还将讨论图2中所画出的电感充电/放电通道。 三种拓扑都包括MOSFET开关、二极管、输出电容和电感。MOSFET是拓扑中的有源受控元件,与控制器(图中没给出)连接,控制器输出脉宽调制(PWM)方波信号驱动MOSFET栅极,控制器件的关断或导通。为使输出电压保持稳定,控制器检测SMPS输出电压,并改变方波信号的占空比(D),即MOSFET在每个开关周期(TS)导通时间。D
[电源管理]
<font color='red'>电源</font>设计指南:拓扑结构(三)
设计开关电源的一些关键问题
  对于开关电源的噪声,除了芯片本身,Layout的设计最为重要,记录一些相关的技巧。不少关于EMI的观念具有通用性。下面我们谈谈关于开关电源设计的一些关键问题。   AC和DC电流路径   开关电源在导通和关闭两种状态下的电流回路不尽相同,于是在部分支路上会出现阶跃电流(step current)(图1. C),这就是所谓需要关注的AC电流路径。   以PCB走线20nH/inch计算,典型buck converter的AC电流路径上电流变化大约是开关电源关闭转换时负载电流大小的1.2倍,是导通转换时负载电流的80%。高速场效应管的转换时间为30ns,Bipolar的转换时间为70ns;根据V=L*dI/dt,当
[电源管理]
设计开关<font color='red'>电源</font>的一些关键问题
stm32引脚的VCC与VDD如何连接
stm32单片机作为一种常见的嵌入式设备,是许多电子设备和系统中必不可少的一部分。而在单片机的设计和应用中,电源电压是一个非常重要的参数,其中VCC和VDD作为单片机中的电源引脚,是最为关键的两个引脚之一。本文将介绍VCC和VDD的区别及其在单片机中的应用。 一、VCC与VDD的区别 在单片机中,VCC是最常见的电源引脚,通常用于提供数字电路中需要的正向电压。VCC的电压通常是3.3V或5V,但也有其他电压等级的单片机。 而VDD是一种特殊类型的电源电压,它是指在CMOS电路中使用的电源电压。在CMOS电路中,晶体管使用的是MOSFET,其工作需要两种类型的电压:正向电压和反向电压。VDD是指MOSFET工作时需要的正向电压,
[单片机]
stm32<font color='red'>引脚</font>的VCC与VDD如何连接
Atmel联合京东智能举办智能硬件创新大赛
创世出英雄 Atmel联合京东智能举办 万物互联,安全无限 智能硬件创新设计大赛 本次大赛将集结Atmel与京东智能各自的领先优势,将现有的物联网解决方案与云服务紧密连接,释放物联网的 联 动效应 全球微控制器(MCU)及触控技术解决方案领域的领导者Atmel公司 (NASDAQ:ATML)与京东智能(JD Smart)今日联合宣布,双方合作举办的 万物互联,安全无限 智能硬件创新设计大赛将于7月正式启动。本次大赛为期六个月, 是Atmel与京东智能在智能硬件开发推广领域合作的全国性竞赛活动,旨在结合两家公司在智能硬件、物联网方面的优势,强强联合,更好地将现有的智能硬件及物联网解决方案与云端服务和固件相结合,进一步
[物联网]
时钟的抖动及相噪分析
  抖动测量一直被称为示波器测试测量的最高境界。传统最直观的抖动测量方法是利用余辉来查看波形的变化。后来演变为高等数学概率统计上的艰深问题,抖动测量结果准还是不准的问题就于是变得更加复杂。时钟的特性可以用频率计测量频率的稳定度,用频谱仪测量相噪,用示波器测量TIE抖动、周期抖动、cycle-cycle抖动。   但是时域测量方法和频域测量方法的原理分别是什么? TIE抖动和相噪抖动之间的关系到底是怎么推导的呢? ScopeArt先生就常遇到类似的问题,为此,特向本文作者主动邀稿。 作者是高人,但很低调。他为此文花费了很多时间,最终奉献给大家的这篇文章很干货。希望对仍然纠结在抖动的迷雾中的朋友们有所启发。   抖动是衡量时钟性
[测试测量]
<font color='red'>时钟</font>的抖动及相噪分析
大众化的电源设计
我们最近访问了亚洲的客户,了解到每个公司都十分注重效率。北京的一个公司告诉我们,现在新的 EuP 指令有确保合规的 “ 法律效力 ” 。轻负荷效率是这些标准的一个关键部分。 T I 掌握在 10 % 负荷到 100 % 负荷的电源设计中实现高效的技术。挑战在于设计符合 0 到 10% 的需求的部件。解决这一问题的一种方式与运动型多用途车 (SUV) 的工作方式类似,当引擎不需要 8 个气缸工作时,则关闭 4 个,从而实现更高的效率。这在交换式电源电路中称为跳跃模式或脉冲跳跃技术,我们在很多新的直流转直流产品中都采用了这一技术。 还有一种方式有助于实现轻负荷效率
[电源管理]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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