![]() |
|
||||||||||||||
| . 网站首页 . 新闻 . 新品 . 方案 . 专访 . 活动 . DSP . EDA . 评测室 . 技术文库 . 会员区 . 商城 . 服务导航 . 邮购 . 资源 . | ||
|
||
|
|||||
| 设计TMS320C6211嵌入式网络操作系统的方法 | |||||
作者:admin 文章来源:本站原创 点击数: 更新时间:2004-9-15 ![]() |
|||||
|
摘要:本文结合TMS320C6211的硬件特点,介绍了基于DSP/BIOS和NDK的嵌入式网络操作系统设计方案。 关键词:DSP/BIOS,嵌入式系统,网络操作系统,DSP 概述 随着嵌入式应用的普及,嵌入式操作系统的问题日益引人关注。由于DSP代表了一类重要的嵌入式应用,以DSP为核心的嵌入式操作系统也正在成为人们研究的热点。为了对自己的DSP产品提供软件支持,TI公司发行了DSP/BIOS程序包。但是关于DSP/BIOS的定位却存在分歧。一方面,在TI的正式资料和文档中均回避把DSP/BIOS称为实时操作系统,另一方面,为了满足在DSP应用中对操作系统环境的迫切需求,TI及其产品的用户均将DSP/BIOS视为一个“简单的”实时操作系统。 1 DSP/BIOS的构成 一般认为DSP/BIOS由三部分内容组成,即 其中配置工具用于提供可视化的编程环境,而插件用于支持调试过程。所以,实时库和API才是DSP/BIOS的核心。DSP/BIOS实时库可以为最终生成的嵌入式实时操作系统提供运行时的基本服务,包括线程调度,中断管理等功能。DSP/BIOS API由十几个模块组成,如DEV设备驱动接口,MEM存贮段管理器等。程序员通过调用API来使用DSP/BIOS。 DSP/BIOS API由十几个模块组成,每个模块又由相关的数据结构和函数组成。在有关DSP/BIOS的资料中混杂使用了模块(module)、对象(object)等术语,不过,DSP/BIOS与面向对象技术并没有直接的关联。所谓模块,是指一个逻辑上的概念,表示一组数据结构和以此为基础的一组函数。对象则是特指按模块中的数据结构所创建的变量。 如果程序员定义了某个对象,他将可以使用模块中的相应函数,并用这些函数代码来组成自己的嵌入式操作系统。 在程序员开发自己的嵌入式操作系统时,一般不会同时需要DSP/BIOS的全部模块。所以,DSP/BIOS中的内容是按需使用的。但是,开发平台会自动选择部分核心模块,并为它们创建对象。例如,开发平台会自动选择任务管理器( Multi-Task Manager)模块,以支持空闲处理功能:TSK_idle (),即: 由DSP/BIOS实时库生成的代码和程序员新编制的代码链接到一起就构成了DSP的嵌入式应用系统。这些代码之间的执行关系由boot.c文件规定,该文件的缺省执行顺序为: 2 NDK开发环境 为了加速其高档DSP的网络化进程,TI结合其C6000系列推出了TCP/IP NDK (Network Developer’s Kit)。该开发包采用紧凑的设计方法,实现了用较少的资源耗费支持TCP/IP。从实用效果看,NDK仅用200-250K程序空间和95K数据空间即可支持常规的TCP/IP服务,包括应用层的telnet,DHCP,HTTP等。所以,NDK很适合目前嵌入式系统的硬件环境,是实现DSP上网的重要支撑工具。 与常规的TCP/IP应用环境不同,为了最大限度地减少资源消耗,TI为其NDK采用了许多特殊技巧,例如:低层驱动程序与协议栈之间通过指针传递数据,不对包进行复制考贝。因为在嵌入式系统中,低层驱动程序和应用程序一样均需要开发者自行设计。也就是说,在以NDK为基础的开发中,开发人员需要分别设计低层驱动程序和应用程序,这两部分程序通过NDK提供的TCP/IP包发生关联。程序的执行过程是:应用程序调用TCP/IP包,TCP/IP包再调用低层驱动程序。 在NDK中对低层驱动程序与TCP/IP包之间的接口作了明确规室,换言之低层驱动程序必须符合接口约定。以PPP为例,其要点是: 低层驱动程序直接面向硬件,为了适应硬件的多样性,在NDK中也提供了多种实现低层连接的方法,也为用户设计符合自己硬件特点的低层连接提供了接口规范。 3 利用NDK增加网络功能 如何在嵌入式系统中增添DSP/BIOS实时库中没有的功能是设计基于DSP/BIOS的实时操作系统中最主要的问题之一。解决这个问题一般需要两个步骤:一,程序员定制开发代码;二,与系统中的其它功能绑定在一起。现在,我们介绍如何利用NDK为其增加网络功能。 与常规的TCP/IP开发不同,在开发嵌入式应用时,开发人员必须对网络环境和应用需求作更细致的设置。在以NDK为基础的开发中,程序员需要完成的主要工作有: 由于NDK已经提供了完整的TCP/IP库函数,程序员开发的代码只须按需要进行配置即可。下面是将嵌入式设备配置为车间局域网节点的核心代码: char *LocalIPAddr ="128.247.117.12"; 为了让NetworkConfig与系统中的其它功能绑定在一起,可以通过开发平台创建一个TSK任务管理器对象,并将其定义为一个独立的线程任务。这样,TCPStackStart就加入到嵌入式系统中了。 4 结束语 自1994年PRECISE公司在TNS320C3X上推出TCP/IP开发包以来,如何在以DSP为硬件环境的嵌入式系统中支持TCP/IP就一直引人关注。随着硬件水平的提高和应用的深入,基于DSP的TCP/IP应用日渐增多。目前,将实时网络操作系统应用在DSP嵌入式系统中仍是一种新的、积极的尝试。我们认为,在DSP层面开发基于操作系统的应用时,应该逐渐加强和丰富操作系统自身的功能,如网络功能,这样可以增强软件的适应能力,满足更多的嵌入式应用环境需求。 作者email: guc6@sohu.com |
|||||
| 欢迎点击进入:TI德州中文网 (国内唯一针对TI应用的中文技术网站) 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 没有相关文章 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|
|