![]() |
|
||||||||||||||
| . 网站首页 . 新闻 . 新品 . 方案 . 专访 . 活动 . DSP . EDA . 评测室 . 技术文库 . 会员区 . 商城 . 服务导航 . 邮购 . 资源 . | ||
|
||
|
|||||
| 采用可高效再配置DSP 系统的动态加载技术 | |||||
作者:admin 文章来源:本站原创 点击数: 更新时间:2004-7-27 ![]() |
|||||
|
新的移动通信市场为DSP 技术带来了一系列新的挑战。我们可采用动态加载技术来有效解决这些难题。
我们接下来将根据 TI 的 TMS320 DSP 讨论动态加载的组件及其工作的方式,不过根据实施不同,具体细节也有所不同。 自加载 DSP 应用 在典型的自加载 DSP 应用中,单独的 DSP 运行于主控制程序中,该程序包括动态加载器库(图 1)。这种方法保存了一些动态图像所用的 DSP 存储器。当应用要求动态模块或动态模块组时,该控制程序将调用动态加载器,指定待加载的模块图像。模块图像可位于闪存或二级存储设备中,系统也可从某些设备中读取图像。加载器为每个模块分配存储器,为所选的存储器调整图像位置,建立到主程序的任何引用,并将调整后的图像复制到动态存储器中。当加载完成后,动态模块则与应用无缝集成,就象它从初始化之后即存在于系统中一样。 自加载的典型使用为具备 DSP 功能的支持多种媒体格式的媒体播放器设备。它将每种可能的输入来源、媒体格式、音频效果及输出进程表示为动态模块。当用户选择媒体时,系统将加载适当的模块并开始播放。
图1 DSP 的动态自加载 MCU 控制的加载在典型的 MCU 控制的 DSP 应用中,微控制器管理一个或更多 DSP 处理器(图 2)。微控制器选择在每个 DSP 上的哪个 DSP 模块或模块集运行,并使用动态加载器加载适当的模块。这种使用在几个重要方面不同于自加载应用。其一,动态加载器运行于微处理器上,而不是运行于正在加载的处理器上。此外, 微处理器通常代表 DSP 管理动态存储器,因为 DSP 要求非直接存储器分配算法。再者,在微计算机控制的加载中,动态图像的加载可能要求通过接口外设进行输出,因为微控制器可能不能直接访问 DSP 存储器的地址。 主从应用发生于基站、中心局及无线终端中。在基站和中心局中,单一的微控制器管理多个 DSP,每个 DSP 处理多个通道。TI 的 OMAP1610平台是一个典型的无线终端。该设备主要面向手持多媒体应用,其中,系统主机为ARM MCU,其包括 DSP 桥接功能,可控制 TMS320C55x的加载、初始化及代码执行。
图2 MCU 控制的动态加载 现场测试应用在典型的现场实验应用中,服务技术人员给出一系列显示为动态加载模块的测试应用。通常说来,厂商随着时间的发展会增加并改善本测试。用于测试模块的备用存储器加入接受维修服务的产品,并启用实现动态加载。测试设备包括测试模块以及动态加载器和测试控制应用(这里的加载器可能位于测试控制应用中,也可能内置于加入的产品中)。测试设备还包括内置于产品中的加入点定义(这些符号定义可内置于产品中,抑或测试集可将其作为符号模块承载)。诊断测试通过加载各独立测试进行。每个测试都动态连接到其要求的产品软件服务中,如设备驱动程序和状态变量。 在使用实际测试时,动态加载相对于叠加方法的主要优势在于开发人员不用自己构建测试,以匹配于被测试系统的版本。叠加方法要求与同产品版本号数量以及测试次数相同的测试图像库,而动态加载的方法只要求测试数量加上每个产品版本的符号即可。 测试集实现线性复杂性而不是平方复杂性,其优势是巨大的。如产品带有内置符号信息,则其可消除最后一项。降低配置复杂性是动态加载在使用实际测试时的最大优势。 动态加载器的功能与要求 动态加载器是一个可配置的库或 API,用户可用 C 语言调用,实现方便的接口。除了将程序图像写入 DSP 存储器之外,动态加载器还可以进行必需的链接,使得模块、主应用及其他加载的模块可实现相操作。为了达到此目的,动态加载器不但引用模块外的符号,而且也可记录模块中的任何全局定义,便于外部使用。当加载器卸载模块时,动态加载器进行存储器恢复,这样系统就象从未有过动态模块一样。 动态加载器要求一组四个支持类(Class)。应用传输实施上述类并配置动态加载器为加载请求中首先四个参数的对象。第一个类为图像源,允许系统集成器定义以流的形式接受输入的机制。源可为外部存储器、外部设备或外设,甚至也可是应用中的嵌入结构。第二个类为符号处理程序,包括映射符号到地址、进行存储器管理以及有关符号的错误报告等功能。动态加载器使用第三个类(DSP 存储器分配程序)来为动态模块请求存储器。一旦动态加载器确定了存储器的内容,动态存储器就会使用第四个类(DSP 存储器初始化程序)来请求系统更新 DSP 存储器分配器返回的存储器地址。 由于动态加载器链接至用户的应用,因此实施它的代码必须迅速、小巧并具备较强的健硕性。程序员以专为速度进行过优化的算法编写 C 库的代码。主机图像再格式化器是动态重载的另一组件,它可进行离线状态下完成的任何计算。为了高效使用 DSP 的存储器,动态加载器需要最小的存储空间。最后,销售商对动态加载器进行了彻底的测试,因为该代码在运行时出现错误是不可接受的。
图3 动态加载的应用开发流程 开发动态模块动态模块的代码开发几乎与标准开发一样。图 3 显示了创建动态模块并进行故障调试的有代表性的开发流程。三个动态加载组件(动态加载器、图像再格式化器以及故障调试器插件)以阴影显示。最初,主应用程序链接至动态加载器库并为动态模块分配存储器。随后,它以正常方式构建模块的可执行程序,不过图像寻址是可通过使用动态加载器执行过程中管理的符号进行再分配的,而不是静态的。 系统将可再分配的图像作为输入提供给图像再格式化器,图像再格式化器对其进行优化,以备下载。再格式化器去除加载过程中非必需的对象代码部分以减小图像大小。此外,再格式化器针对 I/O 流式加载重新安排图像顺序,格式化图像,使其包括在应用中,为确定输入有效性添加校验和,并为控制模块导出的符号提供接口。 当系统需要模块时,系统将其流式提供给动态加载器,动态加载器则对其进行处理,并将其写入保留的动态模块存储器中。由于调试器也必须能够链接至模块,因此调试器插件会检测动态模块是否存在,并确定对应于动态模块的原始对象文件的位置。插件随后会用所有必需的信息更新开发环境,从而启动全面故障调试。 限制符号导出的重要性 图像再格式化工具为控制模块导出的符号提供了一个接口。该特性为开发人员隐藏某些符号而让另一些符号可视以便于其他模块引用提供了一种途径。系统使用该功能来控制访问,并使加载时间及存储器面积达到最小。每个可视的符号都要求正在运行动态加载器的处理器给出几字节的存储空间。如果所有链接时符号都可视,那么存储器使用将成为小型嵌入式系统的一个问题。如果再格式化器限制符号导出,那么符号存储器使用通常就不构成问题。 限制符号导出的另一好处就是实现更快的加载。根据 OMAP1610 平台测试进行的性能分析给出了以下加载时间的统计模型:4250+373×符号 +273×再定位 +6.5×图像_字节。 上述分析显示,模块中导出符号的数量是开发人员在改善下载速度时能够控制的最主要因素。比较而言,总模块大小的重要性则较小,减小符号数量所起的作用不到 2%。尽管根据 DSP 及系统配置的不同,上述因素与其他非开发人员可控制因素的确切作用比重会有所差异,但最小化外部符号这条首要规则保持不变。 开放的可能性 动态加载能为 DSP 系统带来新的应用功能——这正是即将到来的下一代无线技术所需要的发展趋势。高性能 DSP 可加载新型通信算法,而基于 DSP 的手持系统毋需停止系统即可随意下载 Web 内容及多媒体应用模块。动态加载作为 DSP 系统的无缝模块再配置的一种技术,其应用要比多静态程序图像或叠加更为灵活和高效。尽管动态加载还是 DSP 领域中的新生儿,但其将很快成为驱动多种新型多功能 DSP 应用发展的因素。相信随着许多其他 DSP 创新的出现,开发人员会问:过去没有这种技术,我们都是怎么过来的? |
|||||
| 欢迎点击进入:TI德州中文网 (国内唯一针对TI应用的中文技术网站) 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 基于DSP的电子节气门PID控制 基于DSP的多路音/视频采集处… 低功耗实时可编程DSP数字助听… 基于DSP+CPLD的断路器智能控… 基于DSP+CPLD的交流电机调速… 基于DSP的分布式微机保护测控… 基于DSP的语音实时变速系统设… 以ARM和DSP嵌入式系统为核心… 基于双DSP的运动目标智能跟踪… 高性能定点DSP位处理单元(BM… |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|
|