DSP-BIOS的应用v2.1.1
实时操作系统DSP/BIOS在DSP开发中的应用
能 力 , 对不 同 的应用 , 计 了通 用 针 设
图 lV 5 0 C 4 2全系统结构框图
… - 1. ▲ … 一
l F L l A S 用 H
一 一
维普资讯
\
\I 元 器 件 Cs
O— — 呲一 一 —— 一 一一 呲 OO 呲呲0 OO 呲呲
主 机 交互 接 口( p t tu) I u/ p t n Ou 提 供 DS P实时 运 行 时 与 主机 通 过
DS / I S 一 个 用 户可 剪裁 的 仿 真 口和 C S交互 数 据 的机 制 ; PB O 是 C 实时 操 作 系统 ,主要 由三 部分 组 成 :
/
R1 4 0
A S U2 8
以根 据 需要 剪 裁 。 实际 应 用 中需要 的 定 制 算 法 作 为 一 个 线 程 插 入 Ds / P BO 的调 度 队列 , IS 由D PB O 进 行 S/IS
0
VDD
l 2 3
4
C H0 C l 丑 c H2 C H3 C H4 C 珏5
根据 T 公 司提 供 的对 比数 据 , I 价 格仅5 美元 的 T 30 C 4 2 片实 MS 2 V 50 芯 时 信 号 处 理 能 力 相 当 于 主 频 为
硬 型 件模
r L 、
u r ^ ' '
空 间
ቤተ መጻሕፍቲ ባይዱ
D S P
程序 数据空间 引脚
控 制
电源
\
荫
D
濂
秀 ≯ 拳
。 睦 _
犬 】 ,1 向 凰 tH
I 弓木 呆 司 烈 茜
理
系统结构,有着广泛的工程应用前
DSP BIOS所有模块配置方法
1.配置DSP平台打开Setup CCStudioFamily 代表DSP系列这里我们选择C64XX;platform代表运行品台我们选择simulator 即仿真模式;Endianness代表端点模式我们选测little即小端模式(它代表数据如何在存储器中存放的,大段模式是低地址存放高位,小端模式正好相反,具体可以baidu一下)这里选择小端模式是因为编译器默认是按小端模式编译的。
设置好后如下图所示:选择第一个平台C6416[Compiled]Device Functional Simulator,Little Endian后单击ADD 或者双击,它就会出现在My System下如下图所示:单击Save&Quit如下图所示:单击“是”启动CCS2.配置静态DSP/BIOS在CCS菜单中选择File -> New -> DSP/BIOS Configuration,会弹出DSP/BIOS设置窗口如下图所示:界面:如下图所示以此展开System->MEM后在IRAM上单击右键选择properties菜单弹出IRAM对象属性配置对话框选中create a heap in this memory和enter a user dsfined heap identifier lable;并在heap identifier lable中填写段名“_SEG0”后单击“确定”。
如下图所示:在MEM上单击右键选择properties菜单如下图所示:弹出MEM对象设置窗口如下图所示:拉列表中也选择IRAM,单击“确定”如下图所示:以上存储器模块配置完毕;2.2配置LOG对象如下图所示在LOG上单击右键选择Insert LOG出现下面的窗口:在文本框中输入“my_log”单击OK后在LOG下面会出现我们刚才创建的LOG对象my_log以上LOG对象配置完毕2.3配置PRD对象展开Scheduling在PRD上单击右键选择Insert PRD如下图所示:和LOG对象一样会要求你输入对像名称在文本框中输入PRD1单击OK;按照PRD1的建立方法在建立两个PRD对象;命名为PRD2、PRD3建立好后如下图所示:在PRD1上单击右键选择properties菜单,如下图所示:出现PRD1属性设置窗口,如下所示:在period文本框中输入100,function文本框中输入_Post_Sem1,如下图所示:按照配置PRD1属性的方法配置PRD2和PRD3只修改period和function属性。
DSP-BIOS嵌入式实时操作系统介绍及其引导设计
DSP/BIOS 嵌入式实时操作系统介绍及其引导设计
随着信息技术的发展,DSP 在现代电子系统设计中得到了广泛的应用,并且DSP 的FLASH 自启动在DSP 的系统设计中也占有重要的地位,DSP/BIOS 是TI 推出的嵌入式实时操作系统。
FLASH 是非易失的重复可读写存储器,其读写速度较慢,常用来存储系统设计的程序,微处理器通过一定的方式将FLASH 中的程序读取到处器内
部运行,而TI 公司的C6000 系列的DSP 内部没有FLASH,故DSP 的程序需要烧到外部的FLASH 中,在上电后,DSP 会通过二次引导将程序从外部的FLASH 读取到DSP 内部RAM 或SDRAM 中,高速执行。
TI 的C6000 DSP 支持3 种引导模式:主机引导、仿真引导及EMIF 引导,其中最常用的是EMIF 引导(即片上BootLoader 引导)。
在此引导模式下,位于外部存储空间CE1 的FLASH 中的1kB 代码通过EDMA 被拷贝到片内RAM 地址0 处。
然而,大多数的DSP 程序并不仅限于1 kB 代码,因此需要开发用户引导程序将片上BootLoader 没有拷贝的代码拷贝到DSP 的片内RAM。
此用户引导程序即称为二级BootLoader。
由于DSP/BIOS 操作系统的广泛应用,当使用DSP/BIOS 时,需要将系统和BootLoader 很好的结合起来,实现DSP/BIOS 系统的自启动。
DSPBIOS设计指南详细
DSPBIOS设计指南详细DSP/BIOS是一款实时操作系统(RTOS),被广泛应用于嵌入式系统中。
本文将详细介绍DSP/BIOS的设计指南,帮助读者更好地使用和开发DSP/BIOS。
1.DSP/BIOS概述DSP/BIOS是德州仪器(Texas Instruments)开发的实时操作系统,特别适用于DSP(Digital Signal Processor)芯片应用。
DSP/BIOS提供了任务调度、任务管理、中断处理、资源管理等功能,提供了一种可靠和高效的方式来管理复杂的实时应用程序。
2.DSP/BIOS的优势DSP/BIOS具有以下优势:- 易于使用:DSP/BIOS提供了一套友好的API(Application Programming Interface),使用户可以方便地管理任务和资源。
-高度可配置:DSP/BIOS允许用户根据实际需求进行灵活的配置,以满足不同应用的要求。
-实时性能:DSP/BIOS通过优化的任务调度算法和中断处理机制,提供了快速响应和高效的实时性能。
3.DSP/BIOS的设计指南下面是一些DSP/BIOS的设计指南,供读者参考:3.1任务设计:-按照系统需求,将应用程序划分为多个任务。
每个任务负责独立的功能模块,可以利用DSP/BIOS的任务调度来管理任务的执行顺序。
-考虑任务的优先级和任务间的依赖关系,合理分配任务的优先级,确保高优先级任务能够及时得到处理。
-避免任务之间的竞争条件和资源冲突,可以使用DSP/BIOS的信号量和互斥体机制来保护共享资源。
3.2中断处理:-确保中断处理函数的执行时间尽量短,以避免影响其他任务的响应性能。
-合理设置中断的优先级和中断触发条件,确保关键中断的优先处理。
-对于高频率的中断,可以使用DSP/BIOS的中断优先级层次结构,将高优先级中断划分为多个子中断,以提高系统的可扩展性。
3.3资源管理:-确保所有任务和中断对资源的使用遵循一定的规则,防止死锁和资源冲突的发生。
DSP/BIOS在电能质量监测终端中的应用
来越频繁 。其原因主要有 三点 : 第一 , 它具 有强 大的运 算 能力 , 能够 胜 任 F T、 F 数字 滤 波等 各 种数 字 信号 处 理 算
法 ; 二 , 大 D P 厂 商 都 为 自 己 的 产 品 设 计 了 相 关 的 第 各 S I E 集成 开 发 环 境 ) 使 得 D P应 用 程 序 的 开 发 如 虎 添 D ( , S
J . . 一 … , &4F … r -、 R
都 由各模块 自身 的代码来完成 , 使得应用程序各模块之 间
6 聋 毒 鼻J 霸
维普资讯
雎
期 对 实 时 系 统 非 常 重 要 。D P BO S / I S支 持 多 线 程 应 用 , 线 其 次 , 排 软 件 中 断线 程 ( W I 。所 有 的 软 件 中 断 都 安 S ) 是通 过 D P B O 内核 的 AP 调 用 来 启 动 的 , 了 便 于 S/IS I 为 控 制 , 统 为 每 个 S I对 象 都 设 置 一 个 1 系 W 6位 的 邮 箱 ( i o ) 可 以利 用 这 个 邮 箱 的 值 有 条 件 地 启 动 对 应 的 Mal x , b 软 件 中 断 。可 以将 相 对 于普 通 任 务 比较 重要 的 、 生 频 率 发 比较 频 繁 的 子 功 能 模 块 安 排 在 软 件 中 断 线 程 ( W I 中 。 S )
D P 数 字 信 号 处 理 器 ) 现 今 的工 程 应 用 中 使 用 越 S( 在
处 于 一 种 耦 合 状 态 。如 果 要 添 加 新 的 功 能 模 块 或 者 修 改 已有 的功 能 模 块 , 但 要 修 改 与 之 相 关 模 块 的 调 用 代 码 , 不 而 且 新 增模 块 也 会 明显 影 响到 原 有 系 统 的时 间 响 应 特 性 ,
DSP软件及BIOS程序使用说明
第一节 软件安装一、Code Composer Studio (C6000)2.0安装下面以TMS320C6711DSK 开发工具的安装为例说明。
图1-1图1-2图1-3第一步:将开发板所附带的Code Composer Studio(C6000)2.0软件光盘放入光盘驱动器,自动运行出现图1-1所示界面,进入软件安装步骤。
如光盘未自动运行,请进入光盘驱动器,并运行光盘根目录下的SETUP.EXE 程序。
第二步:按图1-2所示依次执行。
第三步:提示将正在运行其他软件关闭,如图1-4所示。
图1-4图1-5图1-6第四步:DSP Starter Kit End-User License ,阅读后请选择YES 按钮继续安装,如图1-4所示。
第五步:点击NEXT 继续进行安装,如图1-5所示。
第六步:建议在此处选择默认选项进行安装,如图1-6所示。
图1-7图1-8图1-9第七步:默认的安装路径为C:\ti ,如果需要可重新设定安装路径。
但是,必须处于硬盘根目录下(比如x:\),如图1-7所示。
第八步:点击next 进行下一步,如图1-8所示。
第九步:将TMS320C6711DSK 开发板与计算机进行硬件连接,加电源后点击确定按钮继续进行安装,如图1-9所示。
图1-10图1-11图1-12第十步:点击确定,如图1-10所示。
第十一步:点击FINISH 完成软件安装,如图1-11所示。
第十二步:如果是第一次安装CCS 软件,会出现要求重新启动计算机的画面,根据提示重新启动计算机,如图1-12所示。
图1-13第十三步:安装完成在桌面生成两个快捷方式图标,此即为CCS 6711 DSK Tools 软件的设置和执行图标,如图1-13所示。
二、DSK驱动程序的设置由于TMS320C6711DSK开发板使用的是并口线与计算机相连接,所以在设置之前要确认计算机的并口模式。
(后面我们将介绍在使用JTAG口仿真器情况下如何进行配置)。
CCS中DSPBIOS工具的使用
CCS中DSPBIOS工具的使用DSP(Digital Signal Processor)是一种专门用于处理数字信号的处理器。
它通常用于实现音频、视频、通信和图像处理等领域的算法。
而BIOS(Basic Input/Output System)是一种计算机系统中的固化软件,用于控制计算机的启动过程和硬件初始化。
1.安装和配置CCS2.创建新项目在CCS中,可以通过选择“File”-“New”-“CCS Project”来创建一个新项目。
在新项目向导中,需要输入项目名称、选择目标设备以及选择要使用的编程语言(通常为C或C++)。
3.添加DSP库文件和DSP/BIOS组件在创建项目后,需要将DSP库文件和DSP/BIOS组件添加到项目中。
可以通过右键单击项目名称,选择“Properties”-“Build”-“Add Required Prerequisites”来自动添加库文件和组件。
4.配置DSP选项在项目属性中的“Build”选项卡中,可以配置DSP选项,例如选择运行时环境、堆栈设置等。
根据具体应用需求,进行适当的配置。
5.编写代码在CCS中,可以使用C或C++语言编写DSP应用程序。
可以创建新的源文件,并在其中编写相应的代码。
应根据具体需求,调用相应的DSP函数和库函数来实现特定的功能。
6.调试和优化代码CCS提供了强大的调试功能,可以通过在代码中插入断点、单步执行和查看变量的值来调试代码。
同时,还可以使用Performance Analyzer来分析代码的性能和优化瓶颈。
7.使用BIOS工具CCS集成了BIOS工具,可用于配置和管理DSP/BIOS组件。
可以通过选择“Tools”-“Manage Drivers and Configurations”来打开BIOS工具。
在BIOS工具中,可以进行组件的配置、任务管理、调度参数设置等。
总结:。
第七章 DSPBIOS
LOG模块:用于事件的记录显示。例如,你 可以通过该API输出调试信息。 MEM模块:用于定义目标系统的内存使用。 系统根据此信息自动产生.cmd文件。 PIP模块:用于管道管理,可以实现线程间的 数据交换。 PRD模块:用于实现周期性的函数。该类函数 的执行频率可以由CLK模块或自己调用 PRD_tick决定。
一、DSP/BIOS的组件
1、DPS/BIOS实时库和API 运用DSP/BIOS的一个基本概念是我 们的运行程序是一个多线程的情况,我们 通过API(运用程序接口)函数来管理这 些线程。 我们可以把DSP/BIOS API分为许多 模块,不同的线程属于不同的模块。这些 模块包括:
DSP/BIOS提供的API 模块
3、DSP/BIOS插件
完成对运行程序的实时分析,时刻监视 CPU的负荷,各个线程的执行情况,各段 代码的花费时间等等; DSP通过JTAG口返回到PC数据,这些数 据反映我们需要的情况。这些数据的产生 是在CPU的空闲状态时产生的,所以,不 会对DSP本身的运行产生影响。
注意事项:
配置文件有 program.cdb programcfg.h54 programcfg.s54 programcfg.cmd 手工添加文件program.cdb 和 programcfg.cmd programcfg.s54自动添加; 库文件rst.lib不需要; C源文件中要加上各种API头文件; 其他源文件同一般的CCS使用一样;
DSP/BIoS在数字监测接收机中的应用
机 通 过周 期 地 扫 描 给 定 频 段 , 利用 频 谱 分 析 测 量 频 谱 占用
度 、 率 发 射 类 型 、 宽 和 载 干 比 等 参 数 , 实 现 自 动 频 带 并
测量。
2 数 字 监 测接 收 机 系统
2 1 数 字 监 测 接 收机 系统 分 析 .
数 字 监 测 接 收 机 工 作 原 理 如 图 1所 示 。数 字 监 测 接
l l
_
_
DS / I P B oS在 数 字 监 测 接 收 机 中 的 应 用
杨 磊 , 会 勇 李
( 电子 科 技 大学 电子 工 程 学 院 , 都 6 1 3 ) 成 1 7 1
助 。实 时 分 析 工 具 主要 包 含 两 方 面 的 内容 : 时 数 据 交 换 实
引 言
} 过口 l fl ! 通I制 l II P 三 园 鹭躯 接 } s控 计 远 算 堡 程 机 塑
控制与 数据分析
中频 数 字 信 号 处 理 器 是 系统 的核 心 部 件 , 责 对 宽 带 负
1 1 多线 程 实 时 内核 .
DS / 1 P B 0S设 计 的 主 要 目的 是 降 低 存 储 器 需 求 的 空 间和 CP 响应 时 间 。 这 种 设 计 有 利 于 缩 减 程 序 代 码 量 , U 提 高 系 统 模 块化 程 度 , 降低 指 令 的执 行 周 期 以 及实 现后 台
I 测 试 等 工作 。 TU DS P需 要 利 用 D P B OS操作 系 统实 现 以下 功 能 : S /I 接
库 。多 线 程 实 时 内核 维 护 调度 多线 程 的运 行 , 责 任 务 负 的调 度 及 时 问 轮 询算 法 的实 现 ; 时 分 析 工 具 提 供 线 程 算 实 法 实 时 运 行 的情 况 , 便 用 户 验 证 系 统 设 计 的 正确 性 和 可 方 靠 性 ; 片 支 持 库 负 责 管 理 外 设 资 源 , 用 图形 工 具 便 可 芯 利 完 成 复 杂 的 外设 寄存 器 初 始 化 配置 。
用DSP+BIOS工具创建应用程序
用DSP+BIOS工具创建应用程序用DSP/BIOS工具创建应用程序使用DSP/BIOS工具开发DSP应用程序和不使用DSP/BIOS工具的流程基本是一致的。
所不同的是,DSP/BIOS应用程序:1)不需要添加C语言的标准库如rts.lib;2)要将DSP/BIOS的配置文件.cdb文件添加到工程文件中;3)Link使用的.cmd文件,由DSP/BIOS配置文件自动生成,所以只需添加由DSP/BIOS配置文件自动生成的.cmd文件即可。
下面,通过一个实际的例子(Projects\\semtest\\)来说明DSP/BIOS工具的使用:1)首先,在CCS中新建一个工程文件semtest.pjt;在“Project”菜单栏下单击“New”选项,建立一个新的工程。
如图1-1所示:图1-1在弹出的“Project Creation”窗口中(见图1-2),填写工程的名字、存放的位置,并选择板子的类型。
然后单击“完成”,新的工程就建成了。
图1-22)建立的DSP/BIOS配置文件semtest.cdb,完成相应的模块设置,将生成的semtest.cmd添加到工程文件中。
详细步骤如下:新建一个DSP/BIOS配置文件,如图1-3所示:图1-3选择配置文件的类型,如图1-4所示:图1-4单击“ok”,配置文件就建成了,如图1-5所示:图1-5按照程序的要求,对DSP/BIOS配置文件的各个模块进行设置,并将设置好的.cdb文件保存到工程所在的目录下(见图1-6~图1-8): 图1-6图1-7图1-8将编辑好的配置文件添加到工程文件中(见图1-9):图1-9在添加cdb文件的同时,semtestcfg.s62、semtestcfg_c.c这两个文件也被自动的添加到了工程文件中(见图1-10)。
将.cbd文件生成的.cmd文件添加到工程文件中(见图1-11和图1-12):图1-11图1-123)新建semtest.c(见图1-13),编写程序。
第5章 DSP_BIOS应用程序设计
日志观察工具(Message Log)
统计观察窗口(Statistics View)
执行图观察窗口(Execution Graph)
CPU负荷图观察窗口(CPU Load Graph)
内核/对象观察窗口(Kernel/Object View)
主机通道控制窗口(Host Channel Control )
f) 主机通道(HST)管理器
② DSP/BIOS各个管理器的属性设置
g) 其它管理器(仅提供Object Memory属性 进行设置)
IDL管理器 LOG管理器 STS管理器 SWI管理器
DSP BIOS
介绍一种实时操作系统DSP/BIOS德州仪器新推出的DSPC6400系列最高运行时钟可以达到1.1GHz,运算能力可以达到8800MIPS。
如何充分发挥DSP的这种性能优势,对软件提出了很高的要求。
首先为了降低系统成本,就要求将许多以前用硬件实现的功能软件化,原来由多个DSP完成的工作由一块DSP完成,DSP要能够同时完成多个相同或不同的任务而相互之间没有影响。
其次为了产品的维护和升级,要求软件尽可能地模块化,使用高级语言如C来编程,有统一的接口API。
所有这些新的要求,都需要使用实时操作系统。
以往直接将应用程序运行于裸机之上的作法显然已经不再适用了。
德州仪器推出的DSP/BIOS技术正是基于其多年从事DSP研制生产的经验,为开发者量身定做的一个优秀软件平台。
更可贵的是该操作系统是免费的,这为众多的中小用户使用DSP打开了方便之门。
1实时操作系统简单地说,实时操作系统与一般意义上的操作系统(如Windows、Unix等)的主要差别就在于实时操作系统提供了一种机制,使得运行于其上的应用程序都能够满足实时性的要求。
在Windows中常见的沙漏现象(即用户等待现象)在实时系统中是绝对不允许的。
因为这可能造成通讯中断,马达损毁等灾难性的结果。
DSP/BIOS是特别针对实时系统,运行于德州仪器C5000,C6000系列的DSP之上的一个实时操作系统。
DSP/BIOS实际上是一个可调用的系统模块API的集合。
以下就各个模块分别加以介绍。
2LOG在开发的时候通常需要使用printf()来显示当前状态。
但是printf()是非常花费时间的函数、而且不具有实时性。
因为DSP需要对显示的数据进行分析,整理成合适的显示格式,并调用输出显示模块。
所以在一个实时性要求很高的应用中,对printf()的调用可能会使系统根本无法满足实时要求。
在DSP/BIOS中引入了一个相应的函数LOG_printf()。
该函数是LOG对象的一个方法(或调用函数〕。
实时操作系统DSP_BIOS在DSP开发中的应用_李进
通讯与计算机应用实时操作系统DSP/BIOS在DSP开发中的应用李进(江苏大学研究生部,镇江212013)摘要:本文介绍了RTOS(实时操作系统)DSP/BIOS在DSP的开发设计中的应用。
在简述了DSP的一般模型后,论述了RTOS在DSP/BIOS外设管理,实时性能分析以及程序流程控制中的应用。
关键词:RTOS;DSP/BIOS;DSP中图分类号:TP33112文献标识码:A文章编号:1008-0147(2003)04-49-03Application of RTOS-DSP/BIOS.in the Development of DSPLI Jin(Post-gr aduate Student Division,Jiangsu Univer sity,Zhenj iang,212013China)Abstract:The application of real time operation system(RT OS)-DSP/BIOS.in the development and design of DSP is presented in the article.A fter general model of DSP is sim ply stated,the applications of RTOS in management of peripheral equipment,real time performance analysis and program flow control are discussed.Keywords:RTOS;DSP/BLOS;DSP1引言信号采集与处理系统的一般结构是前端的模数转换部分,将从外部接受到的模拟信号经过采样与量化处理后,转换成数字量后再送入数字信号处理系统进行处理,以达到想要的效果。
不难发现,不同的应用领域中的信号采集和处理系统的硬件结构都是相似的,所不同的主要是A/D部分的采样频率要求,以及具体的算法差异。
DSPBIOS使用总结
DSPBIOS使用总结1 DSP/BIOS 实现实时数据调试和交换摘要:本文介绍了基于TI公司DSP/BIOS实现实时数据调试和交换的方法----数字信号处理技术已成为目前最广泛的应用技术之一,TI 公司在不断推出各种新型高速低功耗DSP的基础上,提出了基于DSP的微型实时操作系统BIOS的概念.----DSP所面临的系统越来越复杂,诸如多任务处理,烦琐的硬件设备管理,实时数据处理及传送等等,传统的DSP编程越来越难以胜任.----TI公司推出的BIOS可以支持以上功能,它提供了众多的模块及面向用户的API接口,包括多优先级多任务系统调度,内存管理,硬件DRIVER抽象,以及数字信号处理所独特的实时数据调试及交换的支持.1 .1B IOS中的图形化管理界面----先介绍一下BIOS中的图形化管理界面:DSP/BIOS CONFIGURATION TOOLS。
在CCS 集成开发环境中打开FILE -> NEW -> DSP/BIOS CONFIGURATION,就可以看到DSP/CONFIGURATION TOOLS,在这里用图形化的界面集中管理所有的BIOS模块,包括硬中断,软中断,任务,时钟,管道等,在每个模块下都可以添加新的对象以及编辑它的属性,添加完对象会在工程中自动生成相应的代码,用户程序中只需声明此对象,然后调用它的API函数就可以了。
----下面主要介绍数字信号处理所独特的实时数据调试及交换----在通常的软件调试中如何去观察变量?很简单,我们会单步运行或者设置断点,然后在WATCH窗口中观察变量的值.这种经典的调试方法在数字信号处理中捉荆见拙,因为我们面对的是实时任务,程序的停顿会使我们面对的系统面目全非.DSP/BIOS的解决方案是提供LOG模块,在目标DSP内,LOG对象将要监控的信息实时的捕捉存放在DSP 的特定缓冲LOGBUFFER中,在DSP进入空闲的时刻通过JTAG接口传回主机,主机端的CCS集成环境将接受数据并显示在打开的LOG观察窗口中,从而不打断正常的程序运行情况下,获取必要的调试信息。
调试DSPBIOS程序
实验十 调试DSP/BIOS程序实验目的了解DSP/BIOS线程调度的基本概念了解DSP/BIOS实时分析工具——RTA模块了解在SWI中使用Maibox的方法掌握如何分析DSP/BIOS的实例程序实验内容本实验对一个CCS2自带的程序进行修改,完成一定的功能并使用多线程运行。
在调试过程中,查看DSP/BIOS程序的性能,学习DSP/BIOS更多的特性,包括执行图、实时分析控制面板和统计数据显示等,并进一步学习CLK、SWI、STS和TRC等模块的使用。
例子进行一些简单的信号处理,能调节输入缓冲中的幅度值的增益,并将处理后的结果放到输出缓冲中。
该例子使用一个用汇编语言编写的装载程序,利用传入的processingLoad参数来计算指令的周期。
实验步骤打开并检查工程打开并检查工程的步骤如下:(1) 在D:\ti\myprojects下建立一个名为volume2的文件夹。
(2) 将D:\ti \tutorial\sim54xx\ volume2目录下的所有文件复制到此目录中。
(3) 从桌面或“开始”菜单程序组成中运行CCS2。
(4) 执行菜单命令Projec t→Open,打开volume.pjt工程文件。
(5) 在工程视图中将工程展开,如图9.1所示。
本工程中包括以下文件:图9.1 工程中包含的文件对上图的说明:VOLUME.CDB 工程的配置文件;VOLUME.C 主程序的源文件;VOLUME.H VOLUME.C 使用的头文件,定义各种常量和结构;LOAD.ASM 一个简单的汇编例程,在C函数中调用,带一个参数;VOLUMECFG.CMD 保存配置文件时产生的链接命令文件;VOLUMECFG.S54 保存配置文件时产生的汇编源文件;VOLUMECFG.H54 保存配置文件时会产生的头文件;VOLUMECFG.H 当保存配置文件时会产生VOLUMECFG.H头文件,其包含DSP/BIOS模块的头文件,同时声明在配置文件中创建的对象的外部变量;VOLUMECFG_C.C 芯片支持库CSL(Chip Support Library)的结构和设置的C源代码文件。
DSP-BIOS使用入门
DSP-BIOS使用入门从环境说到搭建第一个工程请注意,此文默认读者已经对DSP及CCS V3.3环境有一定的了解了,知道cmd文件的配置,知道新建工程,编译并连接仿真器下载!如果你对这些还都不熟悉,请先熟悉这些!当然,最好要有操作系统的基本概念——任务、调度、中断!第一个问题:DSP/BIOS(好吧,我们一般这样写)是什么?是TI公司专门为DSP开发的嵌入式实时操作系统,既然是TI公司为自己的DSP开发的——官方的,当然性能是杠杠的了(当然,我还在入门,这点也是道听途说,没有实际体会)。
既然说到实时操作系统,那还有哪些嵌入式实时操作系统呢?Linux是吗——不是,VxWorks——是,哦,还有一个小的开源系统——uCOS II也是。
问题二:要使用DSP/BIOS,需要安装什么环境呢?本文为CCS v3.3,默认就安装上DSP/BIOS,版本为V5.31.2(可以通过Help->About...菜单查看版本)。
当然,如果需要其它版本(可以同时安装多个版本),可以到TI官网下载,链接:/dsps/dsps_public_sw/sdo_sb/targetcontent/bios/dspbios/index.htm l请注意:DSP处理器型号、CCS版本、DSP/BIOS版本之间存在兼容性,请注意选择!下载后安装到CCS所在目录,通过Help->About...中的Manager选择使用的BIOS版本!本文使用的是CCS V3.3默认的DSP/BIOS版本,即V5.31.2。
无特殊说明,本文的例子运行在TI的CCS 3.3软件仿真模式下,仿真环境配置如下(使用C6713处理器仿真):问题三:如何建立第一个BIOS工程?先建立一个普通工程,Project->New...,如下:File->New->DSP/BIOS Configuration...新建DSP/BIOS配置文件,保存一下,配置文件的后缀为*.tcf.将配置文件和由配置文件自动生成的cmd文件添加到工程,新建一个main.c文件,把main.c添加到工程(总是忘记这个然后还到处找问题),写个最简单的代码吧,int main(void){return 0;}编译一下工程,此时出现错误提示:js: "./bios_first.tcf", line 11: Heaps are enabled, but the segment for DSP/BIOS Objects (MEM.BIOSOBJSEG) is not set correctly. Please create a heap in one of your data segments and set MEM.BIOSOBJSEG to it.没关系,在下一小节将看到怎么去掉该错误!DSP/BIOS的配置方法系统配置在Global Setting上右键属性,设置DSP目标板时钟,CLKOUT时钟以及大小端模式。
DSP_BIOS简单实例教程
Code Composer Studio 教程(二)——开发一个DSP/BIOS程序在此教程中,通过使用DSP/BIOS来优化hello程序。
此教程需要一个目标板,而且不可以用一软件模拟器来实现。
同时,此教程需要CCS的DSP/BIOS部分。
步骤1:创建一个配置文件另一种实现hello程序的方法是使用配有DSP/BIOS API的LOG模块(API——应用程序接口)。
你可以在加载入的程序中使用DSP/BIOS来提供基本的运行时间服务。
API模块使实时DSPs进行最优化。
不同于C库调用如puts(),DSP/BIOS在不暂停目标硬件的情况下进行实时分析。
另外,API代码占用更小的空间,同时比C标准的I/O运行更快。
一个程序可使用一个或更多的DSP/BIOS模块。
在此,修改hello 文件以使用DSP/BIOS API。
为应用DSP/BIOS API,一个程序必须拥有一个程序所使用的定义了DSP/BIOS对象的配置文件。
1)打开项目myhello.mak。
(在D:\han\study2目录下)2)File ——> New ——> DSP/BIOS Config。
3)选择对DSP板的类型,确定。
此时弹出一界面窗口。
4)右击LOG-Event Log Manager,并选择Insert LOG,这样建立一个名为LOG0的LOG对象。
5)右击LOG0,选择Rename,改名为“trace”。
6)File ——> Save。
保存于工作目录下,配置文件名为myhello.cmd。
保存此配置直接产生以下文件:①myhello.cdb:保存配置的设置。
②myhellocfg.cmd:连接器命令文件。
③myhellocfg.s62:汇编语言源文件。
④myhellocfg.h62:包含在myhellocfg.s62中的汇编语言头文件。
尽管这些文件拥有.s62和.h62的扩展名,它们也可应用在TMS320C6701中。
DSP_BIOS_常用API总结
LOG_disable(LOG_Obj *log) LOG_disable 将关闭指定对象的日志记录功能,这时日志 缓冲区的内容将不会被更新
LOG_enable(LOG_Obj *log) 与LOG_disable函数相反,LOG_enable函数将允许日志可以 记录事件。DSP/BIOS默认情况下日志记录功能是打开的。
TSK_getname返回任务的名字 TSK_gepri返回指定任务的优先级 TSK_self返回当前任务句柄 TSK_setpri可以指定任务的优先级 举例: TSK_setpri(task,10) 把task的优先级设置为10
13
TSK_sleep(ntick) TSK_stat(TSK_handle task,TSK_Stat *statbuf) TSK_time(void) TSK_yield (void) TSK_exit(void) TSK_sleep 把当前任务从运行转变为暂停,延迟ntick个时钟
key= SWI_raisepri(SWI_getpri(&swi_1));
….
SWI_restorepri(key);
SWI_self 举例
SWI_post(SWI_self());
9
TSK模块
TSK模块中提供一系列可以使用的函数,这些函数通过TS K_Handle句柄访问和管理任务对象。各个任务对象可以独 立运行,也可以并行运行。DSP/BIOS的任务管理模块根 据各对象优先级安排运行,并通过切换函数完成一项任务 到另一项任务的转换。
SWI_disabel调用后将禁止软件中断,SWI_enable调用后将 开启软件中断,必须在已调用SWI_disable后才能调用,一 般组合使用保护重要代码,如下:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DSP/BIOS 的 API模块
电子科技大学
◆STS模块:用于状态统计管理,可以在CCS下查看这 些统计参数。 ◆SWI模块:用于管理软件中断。CCS将运行队列中 的软件中断,并可以设置15个优先级,但都比硬件中 断低。 ◆SIO模块:流式I/O管理模块,可用于设备驱动模块 与任务或软件中断之间的数据交换。 ◆MXB模块:管理邮箱,实现任务间同步或通讯。 ◆QUE模块:用于任务或线程的队列管理。 ◆SEM模块:旗语管理,用于任务或线程间的同步。
后台线程(IDL线程) • 任务(TSK模块) • 软件中断(SWI模块) • 硬件中断(HWI模块)
•
DSP/BIOS 的线程类型
HWI
硬件中断
电子科技大学
HWI 的优先级由硬件中断决定 每个硬件中断提供一个ISR SWI 有14个优先级 同一优先级可以有多个SWI线程. TSK 有15个优先级 同一优先级可以有多个TSK线程. IDL 线程包括多个IDL函数 这些函数会连续反复调用.
SWI
Priority
软件中断
TSK
线程
IDL
后台线程
HWI 线程由硬件中断触发 ! IDL 为后台运行的线程.
线程选择的一般原则
电子科技大学
严格的实时性 :如果线程的执行需要
严格的实时性,而线程执行需要的时间 又很少时,你可以使用硬件中断或时钟 函数来完成。CLK时钟函数也是在硬件中 断中执行的。
部分实时性:执行时间较长,使用 SWI软件中断或TSK任务线程来完成 一些非实时性的处理任务。这样可 以减少中断的潜伏期,提高响应实 时性请求的能力。
线程选择的一般原则
电子科技大学
周期性的服务:需要周期性或在固定的
时间间隔内完成处理任务,使用PRD周 期性函数来完成。 不需要实时性 :线程只需要在后台进行 一些不关键的处理,比如收集统计数 据、与自己交换检测数据等等。这种情 况,我们建议使用IDL线程。
信息显示窗口
电子科技大学
υ DSP/BIOS内核专门提供了一个信息输出窗口,
用来替代标准C下的stdout窗口,使用DSP/BIOS 内核提供的LOG_printf函数比标准C中的printf 函数有更高的效率。
主机通道控制
电子科技大学
υ在这个窗口内,我们可以看到由我们的程序定
义的主机通道,如input_HST,output_HST,用户 可以使用这个窗口来指定与这些通道相连接的数 据文件,这些文件被存放在主机(如PC机)的磁 盘中。 (等效“探针工具”)
硬件中断管理
电子科技大学
硬件中断管理器包含了所有的硬件中断, 这些硬件中断根据具体的目标系统按照优 先级从高到低的顺序排列。 通过这个硬件中断管理器,能够为每个DSP 中的硬件中断配置中断服务程序(ISR)。 需要特别提醒的是若使用DSP/BIOS内核开 发应用程序,用户便不能随意修改中断向 量表的位置 推荐使用DSP/BIOS的硬件中断调度功能。
线程之间的不同
电子科技大学
线程的等待和执行的速率. 线程的不同状态:HWI只有运行状 态;SWI有就绪和运行状态;TSK有 就绪(Ready),挂起/等待 (Pending),运行(Running),结 束(Done) 线程的优先级
线程之间的不同
电子科技大学
对堆栈的需求 – 要使用系统堆栈,请使用SWI线程. – 需要独立的堆栈时,应该使用TSK 线程. 线程之间的同步要求和通讯方式 – SWI 和TSK使用不同的方法 . 用户自己的习惯
AD_srv() 输入数据
等待。。。
Call G723_code()
存储器
电子科技大学
使用DSP/BIOS时的程序结构
Main(){}
INT
HWI_AD
PIP,SIO,DEV
DSP/BIOS内核
post swi
存储器
SWI_G723_decode IDL模块
DSP/BIOS应用程序的结构
DSP/BIOS API提供可伸缩的实时核,还提 供了有优先级的多线程处理。它是专为那 些需要实现实时调度、同步以及通讯的应 用程序而设计。在一个包含DSP/BIOS内核 的应用程序按优先级从低到高有四种主要 线程:
步、硬件中断、数据交换、内核评估、 优化
DSP/BIOS应用的例子-Example
DSP/BIOS的概述
Part 1 - Introduction
DSP/BIOS 概述
电子科技大学
DSP/BIOS是一个可升级的实时内 核。它主要是为需要任务的实时调度 和同步,主机-目标系统通讯和实时 监测的应用而设计的。 DSP/BIOS 集成到 CCS 中的,不需要 额外的费用。 DSP/BIOS 是 TI’s eXpressDSP 技术 的重要组成部分。
– “mycfg.cmd”也会自动生成,但需要手工添加到工
程文件中。 注意:用户需要自己将 *.cdb 和 *.cmd 添加到工程文件中。
DSP/BIOS的线程管理 与调度
Part 2 - Real Time Scheduling
电子科技大学
ቤተ መጻሕፍቲ ባይዱ
不使用DSP/BIOS时的程序结构
Main()中
INT
程运行状态图。其中HWI硬件中断服务程序,SWI 软件中断,TSK任务,旗语模块,周期函数,以 及时钟模式信号。另外,还包括了内核线程核其 他的IDL空闲线程。
状态统计窗口
电子科技大学
υ 搜集并报告内核各个模块的执行情况。每个模
块类型收集的状态统计数据代表了不同的值,有 不同的单位,如指令数、时间等。
实 时 分 析 工 具
返回
DSP/BIOS 的 API模块
电子科技大学
◆CLK模块:用于片上的定时器管理,设置定时 器中断的间隔时间。 ◆HST模块:用于实现主机与目标系统间数据的输 入或输出。 ◆HWI模块:用于硬件中断管理,可设置相应的 中断服务子程序。 ◆IDL模块:用于管理后台idle函数,该类函数具 有最低优先级。 ◆LOG模块:用于事件的记录显示。例如,可以 通过该API输出调试信息。
电子科技大学
任务线程的特点
所有任务线程的优先级都低于硬件中断 和软件中断。 任务线程和软件中断不同的是:一个任 务线程可以中断自己的运行,转而运行 其它的任务。当某些条件满足后又恢复 继续执行。 任务的切换不是任何情况下都被允许, 只有在中断发生(有更高优先级的线程 要运行),或某些任务模块的API函数调 用时才会发生。
Putting it all together…
DSP/BIOS的实时 分析工具
Part 3 - Real Time Analysis Tools
Introduction
电子科技大学
传统的代码分析(调试)方法是在 处理器暂停运行后,通过观察变量 和存贮单元来实现。 实时分析需要不停止处理器的运行 而同时获得观测数据 DSP/BIOS中的 API模块和CCS中的 Plug-ins插件能帮助程序员实现实 时分析。
创建DSP/BIOS配置
电子科技大学
配置工具将自动创建下面的文件(‘C6000为例): – 当保存配置文件(如my.cdb) mycfg.s62 mycfg_c.c mycfg.h mycfg.h62 Assembly file C file Header file for C Header file for assembly
实时调试集成环境 DSP/BIOS的应用
讲演: 管庆
主要内容
电子科技大学
DSP/BIOS的概述- Introduction DSP/BIOS的线程管理/调度-Real Time Scheduling DSP/BIOS提供的实时分析工具- Real Time Analysis Tools DSP/BIOS高级应用:线程、通讯、同
DSP/BIOS 的 API模块
电子科技大学
◆MEM模块:用于定义目标系统的内存使用。 系统根据此信息自动产生.cmd文件。 ◆PIP模块:用于数据管道管理,可以实现线程 间的数据交换。 ◆PRD模块:用于实现周期性的函数。该类函 数 的 执 行 频 率 , 可 以 由 CLK模 块 或 自 己 调 用 PRD_tick函数决定。 ◆RTDX模块:用于主机与DSP目标系统间的实 时数据传递。 ◆DEC模块:设备驱动程序接口。
DSP/BIOS的高级 应用
Part 4 – 同步、通信、硬件中 断、数据交换、优化
任务的通讯和同步
电子科技大学
MBX邮箱管理模块 :两个任务线程可以通 过邮箱来完成数据的交换。 SEM旗语管理模块 :DSP/BIOS内核提供 的旗语实际上是信号量旗语,该旗语管 理模块通过对旗语的计数来完成任务线 程的同步和相互作用。 QUE队列管理模块 :在任务间或任务与软 件中断、硬件中断间共用队列
void main (void) { /* Put all your setup code here */ return; /*DSP BIOS starts after the return */ } /* Hardware Interrupt */ void timerIsr (void) { /* Put your code here */ SWI_post (&SWI_for_algorithm_1); SEM_post (&taskOneSem); } /*Software Interrupt */ void algorithm_1 (void) { /* Put your code here */ } /* Task */ void ProcessTask (void) { while (1) { SEM_pend (&taskOneSem, SYS_FOREVER); /* Insert your code here */ } }