TN0164_基于DSP的启动加载原理

1.适用范围

本文档介绍了SylixOS在DSP上的启动流程。本文档介绍的相关内容针对TI官方评估板TMDSEVM6678。

2.DSP的启动原理简介

当DSP重启后,会首先执行RBL(片内一级加载程序),该RBL固化在片内ROM中;RBL的主要工作是判断启动模式并从指定的设备加载运行UBL(用户编写的二级加载程序);UBL的主要作用是加载SylixOS的BSP程序;当BSP程序运行起来后,就可以通过动态加载开发应用程序了。如图 2.1所示:

图 2.1 基本启动流程

3.DSP的启动模式

DSP支持的启动模式有11种。在官方的评估板中,SylixOS的开发主要用到了ROM SPI Boot模式和No boot模式。拨码开关的模式配置如图 3.1所示:

图 3.1 拨码配置

DSP的启动模式依次如下(IBL即烧写到EEPROM中的UBL):

  • IBL NOR boot        :IBL在EEPROM中,BSP在NOR中;
  • IBL NAND boot    :IBL在EEPROM中,BSP在NAND中;
  • IBL TFTP boot        :IBL在EEPROM中,BSP通过TFTP获取;
  • I2C POST boot        :上电自测模式;
  • ROM SPI Boot        :UBL和BSP都在SPI Flash中;
  • ROM SRIO Boot    :UBL和BSP通过SRIO加载;
  • ROM Ethernet Boot    :UBL和BSP通过网络加载
  • ROM PCIE Boot     :UBL和BSP通过PCIE加载
  • No boot        :主要用于固化程序,只有该模式会通过gel文件做初始操作

4.DSP的BSP程序加载

SylixOS的BSP程序为elf格式,所以在UBL加载BSP程序时,会首先解析elf格式,并根据配置将对应的段分配到不同的位置。当BSP程序成功运行后,就可以通过动态加载开发应用程序了。SylixOS对RAM的划分如图 4.1所示:

图 4.1 SylixOS对RAM的划分

SylixOS 将BSP程序的不同的段放到上图中指定的区域,详细参考图 4.2。

图 4.2 BSP各段的分配

原文地址:http://blog.51cto.com/7183031/2054744

时间: 2024-11-03 18:33:21

TN0164_基于DSP的启动加载原理的相关文章

AngularJS进阶(三十九)基于项目实例解析ng启动加载过程

基于项目实例解析ng启动加载过程 前言 在AngularJS项目开发过程中,自己将遇到的问题进行了整理.回过头来总结一下angular的启动过程. 下面以实际项目为例进行简要讲解. 1.载入ng库 2.等待,直到DOM树构造完毕. 3.发现ng-app,自动进入启动引导阶段. 4.根据ng-app名称找到相应的路由. 5.加载默认地址. 6.Js顺序执行,加载相应模版页 sys_tpls/home.html 7.在此,可以看到index路由中只是填充了ui-view为sys_login的div模

基于.NET MVC的高性能IOC插件化架构(二)之插件加载原理

上一篇博文简单介绍了下插件化的代码组成部门:http://www.cnblogs.com/gengzhe/p/4390932.html 这篇博客主要讲解下插件化实现的原理,先面先讲解几个概念: 一.契约 插件与系统必须有契约,系统才能发现插件并正确加载插件,我采用的是所有插件都实现Sun.Core里面的IPlugin接口. 二.自述 插件在被加载的时候,需要告诉系统,我是什么类型的插件,我的guid,我依赖的程序集,我的状态与权限,我的配置信息等等,这个行为是插件的自我描述,简称自述. 三.配置

老调重弹:JDBC系列 之 <驱动加载原理全面解析>

前言 最近在研究Mybatis框架,由于该框架基于JDBC,想要很好地理解和学习Mybatis,必须要对JDBC有较深入的了解.所以便把JDBC 这个东东翻出来,好好总结一番,作为自己的笔记,也是给读者一个参考---以下是本文的组织结构,读者可以点击上面的目录查看: 概述 一般情况下,在应用程序中进行数据库连接,调用JDBC接口,首先要将特定厂商的JDBC驱动实现加载到系统内存中,然后供系统使用.基本结构图如下: 驱动加载入内存的过程 这里所谓的驱动,其实就是实现了java.sql.Driver

《30天自制操作系统》纸娃娃操作系统以及大多数操作系统的加载原理

最近在读<30天自制操作系统>这本书,在读到"从启动区加载操作系统"这一小节的时候卡住了,首先我的疑问是这样的:首先,磁盘映像文件img的0x2600这个地方存储着操作系统文件的名称(用二进制编辑器看),0x4200以后存储着操作系统的内容(执行代码),我们的启动区代码会被加载到内存的0x7c00这个位置,即0x7c00-0x7cff属于启动区代码所有,而书上说0x8000-0x81ff属于启动区,究竟哪段地址属于启动区,这是疑问一.我们的是从第二扇区将磁盘内容读取到内存,

探究drawable图片的加载原理和缩放规律

自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onLayout源码详尽分析 自定义View系列教程04–Draw源码分析及其实践 自定义View系列教程05–示例分析 自定义View系列教程06–详解View的Touch事件处理 自定义View系列教程07–详解ViewGroup分发Touch事件 自定义View系列教程08–滑动冲突的产生及其处理

老调重弹:JDBC系列之&lt;驱动加载原理全面解析) ----转

  最近在研究Mybatis框架,由于该框架基于JDBC,想要很好地理解和学习Mybatis,必须要对JDBC有较深入的了解.所以便把JDBC 这个东东翻出来,好好总结一番,作为自己的笔记,也是给读者一个参考--- 概述 一般情况下,在应用程序中进行数据库连接,调用JDBC接口,首先要将特定厂商的JDBC驱动实现加载到系统内存中,然后供系统使用.基本结构图如下: 驱动加载入内存的过程 这里所谓的驱动,其实就是实现了java.sql.Driver接口的类.如oracle的驱动类是 oracle.j

深入解析 composer 的自动加载原理 (转)

深入解析 composer 的自动加载原理 转自:https://segmentfault.com/a/1190000014948542 前言 PHP 自5.3的版本之后,已经重焕新生,命名空间.性状(trait).闭包.接口.PSR 规范.以及 composer 的出现已经让 PHP 变成了一门现代化的脚本语言.PHP 的生态系统也一直在演进,而 composer 的出现更是彻底的改变了以往构建 PHP 应用的方式,我们可以根据 PHP 的应用需求混合搭配最合适的 PHP 组件.当然这也得益于

tomcat web.xml启动加载类

tomcat web.xml启动加载类 2010-03-30 22:31suitieming | 分类:JAVA相关 | 浏览3870次 我写了一个程序配在tomcat上 想启动tomcat的时候自动运行这个类 怎么配置XML文件类名Test 分享到: 2010-03-31 01:57提问者采纳 答题闯关,过关即送礼!快来参加~ 把你需要启动时自动运行的类做成一个Servlet,然后在web.xml做如下配置:  <servlet>   <servlet-name>StartupL

Microsoft Corporation 去掉 windows 修改 启动加载 版权

windows 修改 开机界面 boot启动界面 windows 修改 启动加载 版权 windows 系统如何修改开机画面的版权文字"Microsoft Corporation ... ◎Microsoft Corporation Microsoft Corporation 去掉 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:[email protected] E-mail: 313134555 @qq.com 通过16进制的编辑器(我用的是winhex)打开winlo