基于c6416dsk的眼动跟踪系统内容摘要:
单元内实施。 控制寄存器组控制操作方式。 从程序存储器读取一个 取指包时起, VLIW 处理流程开始。 一个取指包可能分成几个 执行包。 C6000DSP 片内的程序总线与数据总线分开,程序存储器与数据存储器分开,但片外 的存储器及总线都不分,二者是统一的。 全部存储空间(包括程序存储器和数据存储器,片内和片外)以字节为单位统一编址。 无论是从片外读取数据或与片内交换数据,都要通过 EDMA 和 EMIF。 C6000 的相关文献常把在指令执行过程中使用的物理资源统称为数据通道,其中包括执行指令的 8 个功能单元、通用寄存器组以及 CPU 与片内 数据存储器交换信息所使用的数据总线等。 C6416DSP 指令集 C6000 汇编语言的每一条指令只 能在一定的功能单元中执行,因此就形成了指令和功能单元之间的映射关系。 一般而言,与乘法相关的指令都是在 .M 单元执行;需要产生数据存储器地址的指令,则需要用到 .D 功能单元;算术逻辑运算大多在 .S与 .L单元执行,读者可查阅“ TMS320C6000 CPU and Instruction Set Reference Guide”( SPRU189)了解详细情况。 C6000 采用流水线结构,从指令进入 CPU的取指单元到指令执行完毕,需要多个时钟周期。 C6000 所宣传的单指令周期是指它最高的流水处理速度。 由于指令复杂程度 的不同,各种指令的执行周期也不一样,因此程序员就需要了解指令执行的相对延迟,以掌握一条指令的执行结果何时可以被后续指令利用。 CPU 运行时,总是一次取 8 条指令,组成一个取指包。 取指包一定在地址的256 为( 8 个字节)边界定位。 一个取指包中 8 条指令的执行顺序可能有几种不同形式:完全串行,即每次执行一条指令;完全并行,即 8条指令是一个执行包;部分串行,即分成几个执行包。 使用符号“ ||”表示一条指令与另一条指令并行执行。 如果有转移指令使得程序在执行过程中由外跳转至某一执行包中间的某一条指令,则程序从该条指令继续执行 ,该执行包中跳转,目标之前的指令将被忽略。 C6416 属于 C64xx 系列 DSP, C62xx 的所有指令对 C64xx 有效,此外 C64xx还有他特有的指令。 二者所共有的指令集是个定点运算指令集。 可以将他们分为读取 /存储类指令、算术运算类指令、逻辑与位操作类指令、搬移、跳转(程序转移)及空操作类指令等 6 种。 详细指令集请参阅 TI 的文档“ TMS320C6000 CPU and Instruction Set Reference Guide”( SPRU189)。 C6416DSP 片内外设 TMS320C6416 的硬件结构如图 所示。 内部包括一个 DSP内核、一级数据Cache、一级程序 Cache、二级存储器、增强型 DMA 控制器( EDMA)、 Vterbi 译码协处理器( VCP)、 Turbo 译码协处理器( TCP);对外接口包括两个外部存储器接口( EMIFA 和 EMIFB)、主机接口( HPI)、 PCI 接口、 UTOPIA 接口、 GPIO 接口,多通道缓冲串口( McBSP) , 3个 Timer, PLL 等。 图 TMS320C6416DSP 硬件结构 DSP 内核采用超长指令字( VLIW)体系结构,有 8个功能单元、 64 个 32bit 通用寄存器。 一个时钟周期同时执行 8 条指令,运算能力可达到 8000MMACS(每秒百万 乘加次数 ),支持 8/16/32/64bit 的数据类型。 两个乘法累加单元一个时钟周期可同时执行 4 组 1616bit 乘法或 8 组 88bit 乘法,每个功能单元在硬件上都增加了附加功能,增强了指令集的正交性。 除此之外还增加了一些指令用以削减代码长度和增加寄存器的灵活性。 为使数据能保持对超快速 DSP 内核的供给, TMS320C6416 采用了两级超高速缓存器,即 16Kbyte 的一级数据 Cache、 16Kbyte 的一级程 序 Cache 和 1024Kbyte的数据和程序统一内存。 为了达到更大的扩展, 1024Kbyte 内存中的 256Kbyte存储空间可设置用作二级 Cache。 在内存和外设接口( EMIFA 接口、 EMIFB 接口、 HPI 或 PCI 接口、 McBSP串口、 UTOPIA 接口等)之间所有的数据传输都由 EDMA 来处理。 TMS320C6416的 EDMA 共有 64 个通道,每个通道的优先级都可编程设置,每个通道都对应一个专用同步触发事件,使得 EDMA 可以被外设来的中断、外部硬件中断、其它EDMA 传输完成的中断等事件触发,开始进行数据的搬 移。 EDMA 完成一个完整的数据搬移后,可从通道传输参数记录指定的链接地址处重新加载该通道传输参数。 EDMA 传输完成后, EDMA 控制器可以产生一个到 DSP 内核的中断,出可以产生一个中断触发另一个 EDMA 通道开始传输。 TMS320C6416 的存储器接口提供了到 SDRAM、 SBSRAM、异步器件如 SRAM/ROM 等存储器的无终接口,也可连接到外部 I/O 器件。 存储器接口有 EMIFA 和 EMIFB,其中 EMIFA 接口有 64bit 宽的数据总线,可连接 64/32/16/8bit 的器件; EMIFB 接口有 16bit 宽的数据总 线,可连接 16/8bit的器件。 一般情况下, EMIFA 接口连接外部存储器(如 SDRAM), EMIFB 接口连接外部 I/O 器件(如 FPGA)。 TMS320C6416 有三个多通道缓冲串口( McBSP),工作频率最高可达100MHz。 其中 McBSP1 串口和 UTOPIA 接口复用, McBSP2 串口和 PCI 的EEPROM 接口复用,使用时要注意。 另外因篇幅有限,其他有关 HPI, PCI, UTOPIA, VCP, TCP 等的介绍,请参阅 TI 的英文文档。 集成开发环境 CCS 及 DSP 软件开发 CCS 提供了配置、建立 、调试、跟踪和分析程序的工具,它便于实时、 嵌入式信号处理程序的编制和测试,它能够加速开发进程,提高工作效率。 CCS 包括如下各部分: CCS 代码生成工具 ; CCS 集成开发环境( IDE) ;DSP/BIOS 插件程序和 API ; RTDX 插件、主机接口和 API。 代码生成工具 奠定了 CCS 所提供的开发环境的基础。 描述的工具如下: ● C 编译器 (C piler) 产生汇编语言源代码, 其细节参见 TMS320C6000 最优化 C 编译器用户指南。 ● 汇编器 (assembler) 把汇编语言源文件翻译成 机器语言目标文件,机器语言格式为公用目标格式( COFF),其细节参见 TMS320C6000汇编语言工具用户指南。 ● 连接器 (linker) 把多个目标文件组合成单个可执行目标模块。 它一边创建可执行模块,一边完成重定位以及决定外部参考。 连接器的输入是可重定位的目标文件和目标库文件,有关连接器的细节参见 TMS320C6000最优化 C 编译器用户指南和汇编语言工具用户指南。 ● 归档器( archiver )允许你把一组文件收集到一个归档文件中。 归档器也允许你通过删除、替换、提取或添加文件来调整库,其细节参见 TMS320C6000汇编语言工具用户指南。 ● 助记符到代数汇编语言转换公用程序( mnimonic_to_algebric assembly translator utility )把含有助记符指令的汇编语言源文件转换成含有代数指令的汇编语言源文件, 其细节参见 TMS320C6000汇编语言工具用户指南。 ● 你可以 利用建库程序( library_build utility )建立满足你自己要求的“运行支持库 ”,其细节参见 TMS320C6000最优化 C 编译器用户指南。 ● 运行支持库 (run_time_support libraries) 它包括 C 编译器所支持的 ANSI 标准运行支持函数、编译器公用程序函数、浮点运算函数和 C 编译器支持的 I/O 函数,其细节参见 TMS320C6000最优化 C 编译器用户指南。 ● 十六进制转换公用程序 (hex conversion utility) 它把 COFF 目标文件转换成TITagged 、 ASCIIhex 、 Intel 、 MotorolaS 、或 Tektronix 等目标格式,可以把转换好的文件下载到 EPROM 编程器中,其细节参见 TMS320C6000 汇编语言工具用户指南。 ● 交叉引用列表器( cross_reference lister )它用目标文件产生参照列表文件,可显示符号及其定义,以及符号所在的源文件, 其细节参见 TMS320C6000 汇编语言工具用户指南。 ● 绝对列表器( absolute lister )它输入目标文件,输出 .abs 文件,通过汇编 .abs 文件可产生含有绝对地址的列表文件。 如果没有绝对列表器,这些操作将需要冗长乏味的手工操作才能完成。 使用 CCS 进行软件开发的基本过程。 双击桌面上 CCS 的图标,就可以启动 CCS。 这里,我 们使用桌面上的 6416 DSK CCStudio 图标,这是为 C6416DSK 配置好了。 一,创建新工程 按照以下步骤创建一个新工程: 1. 如果 CCS安装在 C:\,在 C:\\myprogects文件下新建一个 practice文件夹。 2. 把 C:\\tutorial\target\consultant文件夹下的内容复制到新建的文件夹里。 目标与当前 CCS的配置有关。 在使用 CCS前必须进行配置,CCS里没有默认的配置。 关于 CCS配置的详细介绍请参照第三章。 3. 选择 ProjectNew。 4. 在 Project Name框里输入工程名: (例如 :practice)。 5. 在 Location框里输入或者浏览第一步创建的文件夹。 6. 工程类型默认为可执行的 (.out)文件,目标设置为 CCS当前的配置。 7. 点击 Finish , CCS创建一个叫做。 文件里存储了工程配置和工程所需要的各种相关文件。 8. 选择 ProjectAdd files to Project,把文件加到工程里。 你也可以在左边的工程视图窗口里右击工程,选择 Add files to Project。 9. 从你所创建的文件夹里添加 , , 和 (映射内存的连接命令文件 )。 浏览 C:\\c6000\cgtools\lib\目录,为所配置的目标添加相应的。 10. 你不必手工添加包含文件到工程里,因为编译程序的时候,程序会自动找到它们。 在编译一个工程后,包含文件会出现在工程视图里。 二,构建程序 创建了一个功能程序后,你就可以构建( build)它。 构建主要完成编译( pile)与连接( link)。 第一次使用全构建( Build All)功能便可以构建工程,以后可以使用增量构建( Build the project incrementaly)。 一个输出窗口将会显示构建过程和状态。 当构建完成后,输出窗口将会显示 Build plete 0 errors, 0 warnings。 当工程选项或文所有件发生改变后,执行 Rebuild All命令重建工程。 三,加载程序 程序成功构建后,执行 FileLoad Program加载程序。 加载过程是将 上述构建成功,生成的可执行文件加载到目标板,目标板可以是软件仿真环境,也可以是硬件目标板。 默认情况下, CCS集成开发环境将会在你的工程路径下创建一个Debug子目录,把生成的 .out文件放在里面。 点击 Open加载程序。 四,基本调试 1 跳转到主函数( Go to Main) 选择 DebugGo main开始 Main函数的执行。 执行到 Main函数出暂停,此时程序指针(黄色箭头)停在 Main函数的左边空白处。 这个区域被称为选择区域 (select margin)。 可以在这个区域设置断点( break point),探针 (probe)等 2 使用断点 (Using Breakpoints) 把光标置于所需行上,按 F9设置一个断点。 此外,你还可以通过选择 Toggle Breakpoint工具条按钮创建断点。 设置断点后,一个红色图标将出现在选择空白区。 再按 F9或 Toggle Breakpoint按钮将除去断点。 ,在 DoLoop行设置断点 (Input1, Input2, Weights, Output, LOOPCOUNT) 当程序暂停在 Main函数处时,通过按 F5,选择 DebugRun,或者选 择 Run工具条来运行程序。 一旦程序运行到断点出,程序将挂起。 3 源代码调试( Source Stepping) 只有当程序执行挂起后才可单步执行。 当程序在断点处挂起后,便可以单步执行程序。 通过选择 SourceSingle Step按钮,单步执行到 DoLoop函数中。 多次单步执行观察执行结果。 在 Single Step按钮下,还有 Step Over 和 Step Out可用。 同样也可以使用汇编单步。 因此,源程序单步逐行单步执行各代码,汇编单。基于c6416dsk的眼动跟踪系统
相关推荐
基础之上构成基于 CPLD/FPGA 的简易电子琴。 如何使用 EDA 工具设计电子系统是人们普遍关心的问题。 在 EDA 工具软件MAX+PLUS II 的支持下,本文所有的软件通过了编译、调式和波形仿真。 设计的主要工作 本设计首先需要对各个模块进行编程,用的是 VHDL 语言实现各个模块的功能,然后利用 EDA 工具软件 max+plus II 编写并调试系统的 VHDL 程序。
作,基于点运算的灰度变换可表示为: )],([),( yxfTyxg 。 其中 T 被称为灰度变换函数,它描述了输入灰度值和输出灰度值之间的关系。 一旦灰度变换函数确定,该灰度变换就被完全确 定下来。 根据不同的应用要求,可以选择不同的变换函数,根据函数的性质,灰度变换的方法有: (1)线性灰度变换。 (2)分段线性灰度变换。 (3)非线性灰度变换。 分段线性灰度变换
为距离 4+边 2,4 的长度 距离 2,所以不更新 ) 医院 1 已 标号 距离 0 医院 2 未标号 距离 ∞ 医院 3 已 标号 距离 4 医院 4 未标号 距离 9 12 4 5 6 医院 1 已 标号 距离 0 医院 2 未标号 距离 ∞ 医院 3 未标号 距离 4 医院 4 未标号 距离 ∞ 12 4 5 6 10 找所 有未标号中距离最短的顶点为 医院 2,将 2做标号 ,已没有与
管理 考试管理 试卷管理 成绩管理 用户管理 权限管理 学生登陆 基于 B/S 的在线考试系统 16 系 统 用 户用 户 登 录在 线 考 试 管 理 子 系 统试 题 管 理 子 类 试 卷 管 理考 试 管 理评 卷 管 理成 绩 管 理用 户 管 理权 限 管 理信 息 管 理 u s e s u s e s u s e s u s e s u s e s u s e s u s e s
发了 2020 年全市党建工作要点,并与各乡镇、街道签订了党建责任状。 2 月份,市委下发了党的建设目标管理考核实施办法,先后召开了纪检、组织、宣传、统战及政法会议,对党建工作进行了再细化、再布置。 今天,我们又召开 3 月份调度会议,就当前几项党建重点工作进行专题调度,这体现了市委抓党建工作的决心和态度,说明市委把党建工作自始至终是紧紧抓在手上的。 刚才,各乡、镇
波长 /um 相对辐射强度/% 高于阈值 低于阈值 长春理工大学本科毕业设计 7 由图 23 可见,当 m大,调制信号幅度大,则线性较差;当 m小,虽然线性好,但调制信号幅度小。 因此,应选择合适的 m值。 另外,在模拟调制中,光源器件本身的线性特性是决定模拟调制好坏的主要因素,所以在线性度要求较高的应用中,需要进行非线性补偿,即用电子技术校正光源引起的非线性失真。 图 23