DSP

达芬奇技术——1

2019-07-13 20:27发布

达芬奇技术——1

​ TI在DSP技术的基础上,结合ARM、图像编解码、TI编程规范等基础上提出了达芬奇技术架构,包含嵌入式操作系统、多媒体开发基础软件,标准程序库等。达芬奇处理器将高性能的处理器与视频处理相关核心集成在一起,实现多核协同工作。

启动过程

1、RBL阶段

​ 首先,保存在片内ROM的RBL程序开始运行,RBL程序根据启动方式的设置(通常使用拨码开关)读取对应的代码。

2、UBL阶段

​ 主要完成系统时钟、DDR频率的初始化,准备好加载U-BOOT镜像的环境。然后加载U-BOOT到DDR中,并跳转到U-BOOT代码中运行。

3、U_BOOT阶段

  • U-BOOT代码中首先设置最基本的系统硬件环境,包括系统PLL及DDR2的初始化、PSC的配置及使能UART、AEMIF等硬件模块。
  • 配置系统的内存,包括NAND Flash和DDR2。
  • 在Flash中加载内核到指定的存储地址,并在Flash中加载RAM Disk或通过NFS加载文件系统。
  • 初始化传递到内核的引导参数(EMAC地址、串口、控制台、视频格式等)。
  • 获得ARM Linux机类型值。
  • 设置kernel tagged list。
  • 用初始值设置ARM的寄存器。
  • 调用内核。

4、Linux内核启动阶段

  • Linux内核从U-BOOT中得到参数并初始化相关硬件。
  • 内核中的head.s代码开始运行,对压缩的内核进行解压。
  • start_kernel()运行。对内核中的MMU等进行初始化。
  • Linux的第一个进程init()运行,该进程根据系统的配置文件初始化系统。
  • shell启动,用户开始进入登录系统。

5、应用程序运行阶段

​ 以基于H.264的图像传输系统的编码程序运行过程为例。
  • 编码程序开始运行。
  • 读取程序命令行参数确定编码视频的分辨率,保存文件位置,并根据文件扩展名确定编码类型。
  • 在编码程序中建立并初始化编/解码引擎环境。
  • 根据编/解码引擎的句柄和第二部中确定的编码类型,创建并初始化编/解码引擎服务器中的编/解码应用程序。
  • 初始化视频输入和输出设备,输出采用含文件输出。
  • 创建FIFO内存缓冲区,作为各个线程之间视频数据的缓冲。
  • 分别创建主控制线程、视频捕获线程,EMIF接口写入线程和视频显示线程。
  • 进入事件循环,捕获线程将捕获的放入视频编码线程和视频显示线程的FIFO缓冲;视频显示线程从FIFO缓冲获得视频传到视频输出设备进行显示;编码线程从FIFO缓冲获得视频并调用编码API函数进行编码,编码结束后放入写入线程的FIFO缓冲;写入线程从FIFO缓冲读取数据写入EMIF接口,基带处理模块通过EMIF接口进行数据接收。
  • 等待用户发送信号结束程序。