TI嵌入式处理器的集成开发环境(IDE)包括调试器,编译器,编辑器,DSP/BIOS操作系统等等,现在最新的CCSv5 IDE基于Eclipse开源软件框架(v4+)并融合了TI设备的支持与功能,适用于windows和linux环境下开发,CCSv5是基于原版的 Eclipse,并且TI将直接向开源社区提交改进,用户可以随意的将各种其他厂商的Eclipse插件或TI的工具拖放到现有的Eclipse环境,用户可以享受到Eclipse中所有最新的改进所带来的便利,CCSv5(CCSv5.1 CCSv5.2
CCSv5.0)还集成额外的工具,包括 操作系统的应用程序开发工具(Linux操作系统,Android的...)以及 代码分析、源代码控制等。本文介绍了TI的IDE集成开发环境CCSv5的基本特点,相对于CCSv3.3和CCSv4的改进和提升,其Eclipse各种视图环境、Target configuration的和debug session视图方法和GEL、DSS脚本工具的使用方法。
CCSv5的两个版本:
? v5.0不是为了替代CCSv4,主要针对需要在设备上运行Linux的用户与多核C6000的用户,增加了一些在CCSv4上没有的Linux的调试功能,现已被CCSv5.1取代,不再提供技术支持。
? v5.1针对CCSv4的替换版,面向所有用户,支持Windows和Linux,注意,并非所有的仿真器(emulator)有Linux版支持,SD DSK / EVM板载仿真器,XDS560 PCI没有支持,大多数的大多数的USB / LAN仿真器将被支持,XDS100,SD510USB/USB+,560v2,BH560m/bp/lan等都在两个平台上有所支持,具体可以参考
HTTP://processors.wiki.ti.com/index.php/Linux_Host_Support
图1. TI IDE开发环境CCS的开发进展视图
CCSv5的改进:
用户对于CCSv4的反馈包括需要更小的镜像,CCS DVD映像太大(下载> 1GB,安装4GB),需要更快的启动时间和调试器的响应速度,CCS比较迟缓,需要更简易,即安排好用户界面。CCSv5.1下载大小是1.2GB,并且CCSv5.1使用动态下载,根据用户的选择,相应的软件包将被下载并自动安装,用户可以在以后添加更多的功能或者用户可以选择下载完整的DVD映像,CCSv5.1还加快常用任务,包括启动CCS、启动调试会话(Debug Session)、创建一个新项目(良好的初始体验),CCSv5.1提高了响应速度,包括单步(Stepping)(在各种视图打开的状态下)、并划分了运行模式并可以切换。在实时模式下,表达式
(Expressions) 和绘图(Graph)视图的连续刷新、存储目标配置(Target Configuration)以及加载/烧录程序于闪存,而在简易模式下 默认情况下,CCS将打开简单/基本模式,简化菜单选项,工具栏按钮的用户界面, TI提供的编辑(CCS Edit)和调试(CCS Debug)透视图(perspective),简化构建选项(build options)。高级模式下可以使用默认的Eclipse透视图(perspective)、非常类似于CCSv4、推荐给会添加其它Eclipse插件到IDE的用户使用。
CCSv5的常用功能包括如下1).创建新项目,能非常简单的使用模板创建对应任意设备的新项目;2).构建选项(build options),选项升级需基于编译器版本而不是CCS由更新;3).共享项目,使用户更轻松地共享项目,包括版本控制的使用(可移植项目),设置链接资源的过程需要进行简化4).帮助和文档更方便,可以很容易地从IDE内部访问产品的帮助系统并且Eclipse和TI的帮助必须进行综合,包括一个很好的教程,基于任务的帮助,Flash视频的链接,改良的欢迎屏幕。
CCS5.1 的更新与改进
1).Eclipse
- 更新的Eclipse及CDT (C/C++ Development Tooling)
- 使用"原版"的Eclipse和CDT, CCSv5.1使用的Eclipse3.7,CCSv4使用Eclipse3.2, 编辑器,检索器(Editor/Indexer)改善
– 拖放支持
– 支持在链接文件时使用宏(可移植项目)
– 动态语法检查
– 从Eclipse内搜索插件
– 警告和错误在控制台的输出上更明显
2).提升可用性
- 透视图(Perspectives)
- 视图(Views)
- 创建项目
- 使用链接资源(Linked Resources)
3) 项目管理的变化
4)调试器的变化
5). Linux支持
- Linux主机(host)支持
- 支持Linux调试(内核/应用)
5).Multi-core多内核调试
6).系统分析器( System Analyzer )
图2. 简化的透视图(Perspectives) – CCS Edit
简化的视图 – 调试视图(Debug View):清爽,简洁,更多自定义选项,没有额外的"线程"节点,没有"CIO/目标"(CIO/target)错误节点,"项目/目标配置"(Project / Target Configuration )节点下直接显示多个CPU设备,可以自定义选择显示更多JTAG的层次结构,可以收合到单行来优化屏幕空间 ("面包屑"模式)
图3. 简化的视图 – 调试视图(Debug View)
简化新项目向导 – 一页完成
指定一个特定的设备型号和连接类型,向导将会自动创建目标配置文件
图4. 新项目创建向导页面
图5. 链接源文件到项目
资源管理器 - 教程
视图: CCSv5 的变化
? 断点(Breakpoint):
– 取消了在试图内列的就地编辑(使用断点属性页)
– 过滤视图,只显示当前调试上下文 (debug context)的断点
– 与调试视图链接: 突出显示当前调试上下文中,目前已经到达了的断点
? 寄存器(Register):
– 无"网格"(Grid)模式的支持
? 变量(Variables)(V4 - > Local (本地))和表达式(Expressions)(V4 - > Watch(观察)):
– 这些视图已被重命名为标准的Eclipse名称
– 在表达式视图"添加全局变量"(Add global variables)的功能
– 表达式格式(Hex, Dec, Bin, Char)可以在视图级别调整
– 默认值因类型而定
? 反汇编(Disassembly)
– 无反汇编显示风格上的变化支持
– 可选择链接到激活的调试上下文:更新视图到当前调试上下文的地址
? 按照堆栈帧
– 跟踪表达式
? 控制台(Console)
– 不支持从控制台运行GEL命令(使用脚本控制台)
– 有一个可选 CI / O控制台对应所有CPU (多核调试)
项目管理的变化
? "激活的项目"(Active project) 是选定的项目上下文
– 在"项目资源管理器"(Project Explorer)点击另一个项目会自动将其变为"Active project"
– 在没有选定的项目上下文的情况下点击"调试"(Debug)按钮,将会开启最后一个被调试
的项目的调试会话
? 在项目级别管理链接资源(项目属性页面)
– 在项目级别创建链接资源路径变量
– 编辑/转换/删除一个项目的链接资源
? "C/ C+ +项目"视图更名为"项目资源管理器"
? 项目"宏"更名为"构建变量"(Build Variables)
? 更多的项目模板支持
? 命令行对于项目的"创建/导入/构建"命令语法改变
CCSv4:命令的调用由使用一个特定的.jar执行Java来完成
> jre bin java -jar startup.jar
CCSv5:使用"eclipsec.exe"或"eclipse"
Windows :> eclipsec -nosplash
Linux的:> Eclipse -nosplash
调试器的变化
? 没有全局(工作区)级的 "调试选项"(Debugger Options)
? 大多数的调试视图支持"钉住"(pin)和"克隆"(clone)
? 调试配置(Debug Configurations)
– 指定在启动调试会话时运行的调试初始化脚本(JavaScript文件)
? 使用DSS初始化目标
? 一个脚本可以在多核的调试环境下初始化多个CPU
? 可以替换启动GEL文件
– 在"程序 /目标/源"标签里能以每一个CPU独立指定设置
? CCSv4的"目标"(Target)菜单被v5的"运行"(Run)菜单所取代
Linux主机支持
? 在以下环境中已测试:
– Ubuntu 10.04的32位
– Ubuntu 10.10的32 / 64位
– SUSE 11 32位
? CCS依赖于一些库(因分布版本而异)
? 并非所有的功能在Linux上都有支持
– 跟踪(Trace)
? 内核跟踪(XDS560T)
? 嵌入式跟踪缓冲( ETB (Embedded Trace Buffer) )
? 系统跟踪模块( STM (System Trace Module) )
? 请注意,并非所有的仿真器在Linux上都有支持
– SD DSK / EVM板载仿真器,XDS560 PCI不支持
? 大多数USB/ LAN的仿真器都支持
– XDS100,SD510USB/USB+,560v2, BH 560m/BP/LAN
http://processors.wiki.ti.com/index.php/Linux_Host_Support
Linux 开发(目标)
? CCS支持Windows和Linux主机电脑
? 通过集成的GDB调试Linux应用程序
? 通过JTAG调试Linux内核: 更改调试上下文从而在应用程序的调试和内核调试之间切换
多核调试
? 指定一个JavaScript来执行多CPU初始化
– 用于在各个CPU上执行GEL命令,加载程序,运行过去的初始化例程
? 一些设置在相同CPU可见的调试会话之间持续存在
– CCSv4中这一行为由脚本完成,V5中有明确的GUI来控制这种行为。
? 没有"同步模式"(Synchronous Mode )按钮
– 命令可以被发送到动态创建的自定义CPU组
? 调试会话之间保存创建的自定义CPU组
? 状态视图(Status view )在同一视图中显示所有CPU的状态信息(包括路由器( routers ))
系统分析器
? 在任何时间,观测整个系统的应用程序,操作系统和硬件 把多个内核的软硬件仪器的输出关联到一个全局的时间轴
? 系统的分析器是由两个核心组件构成
? UIA(统一仪表体系结构 - Unified Instrumentation Architecture ):目标端日志记录
(logging),运行控制(runtime control)和数据运动(data movement)工具包
? DVT(数据分析和可视化技术 - Data Analysis and Visualization Technology ):主机端运
行控制,数据采集(data collection),数据解码(data decoding),数据分析(data analysis)和数据
可视化(data visulization)工具
项目迁移
? 从CCSv3迁移到CCSv4有一定难度
– 完全不同的环境
– 新项目系统
– 目标配置(Target Configuration)更改
– CCS的整体面目都大不一样
? CCSv4 CCSv5.1迁移会顺利得多
– 环境非常相似
– 项目系统是相同的(的简单的导入)
– 目标配置是相同的
? CCSv3 CCSv5.1迁移
– 加强V3到V5的项目转换向导
– UI的简化将有助于用户缩短学习曲线
– 详细的文档帮助人们更快熟悉v5
? 工作区
– 在v5时使用新的工作区
? 项目
– 一个V4项目导入到V5后会被修改,使其不能再用V4打开
Eclipse概念:工作区(Workspace)
? CCS的主要工作文件夹
? 包含被其定义的所有项目的管理信息
– 创建新项目时所使用的默认地点
? 用户首选项(User preferences),自定义的透视图(custom perspectives),
插件的缓存数据(plug-in cache),等等,都存储在工作区
? 工作区概念不可与CCSv3工作区文件(*. WKS)混淆
? 可维持多个工作区
– 每个CCS实例仅可以同时打开一个工作区
– 相同的工作区不能共享多个CCS的运行实例
– 不建议用户之间共享工作区
资源管理器
? 在首次使用一个新的工作区时,"资源管理器"将显示"欢迎"页面
? 视频介绍CCS入门知识,包含文档链接,例如,支持资源
? 按钮来创建一个新的项目,或导入一个现有的项目到工作区
? 可以随时从"帮助 - >欢迎使用CCS"(Help->Welcome to CCS)返回到资源管理器
Eclipse概念:工作台(workbench)
? "工作台"是指主要CCS 图形界面窗口,
– 相当于在CCS3.x中的"控制窗口"(control window)
? 工作台包含所有用于开发和调试的各种视图(view)与资源工作台(与CCSv3.x比较)
? CCS的3.x版
– 每个调试的CPU只可以拥有一个打开的控制窗口
– 每个控制窗口(Control Window) 之间的信息不能共享
? CCS的4 / 5
– 可以打开的多个工作台窗口("窗口" - >"新窗口")( 'Window->New Window )
– 每个工作台窗口可以有视觉上的不同( 视图 ,工具条的位置安排等),但是对应同一个CCS实例中的工作区
? 从一个工作台打开的项目将能在所有的工作台窗口中看到
Eclipse概念:项目(projects)
? 项目映射到文件系统中的目录
? 可以添加或链接文件到项目
– 添加文件到项目
? 复制文件到项目文件夹中
– 链接文件到项目
? 在您的项目中引用该文件
? 文件停留在原来的位置
? CCS3.x的项目只有这个文件管理概念
? 项目一定是在打开或关闭的其中一种状态
– 关闭的项目:
? 仍在工作区中,但它不能由工作台修改
? 关闭的项目资源不会出现在工作台,但资源仍然驻留在本地文件系统
? 关闭的项目需要较少的内存,并不会被频繁的扫描
? 这不同于CCS3.x中,关闭的项目不会出现在CCS3.x的项目视图窗口。
? 项目必须被导入工作区后才可以打开
– CCSv4/5,CCE的项目和传统CCSv3 项目均可导入到工作区中
Eclipse概念:项目(projects)
? 项目映射到文件系统中的目录
? 可以添加或链接文件到项目
– 添加文件到项目
? 复制文件到项目文件夹中
– 链接文件到项目
? 在您的项目中引用该文件
? 文件停留在原来的位置
? CCS3.x的项目只有这个文件管理概念
? 项目一定是在打开或关闭的其中一种状态
– 关闭的项目:
? 仍在工作区中,但它不能由工作台修改
? 关闭的项目资源不会出现在工作台,但资源仍然驻留在本地文件系统
? 关闭的项目需要较少的内存,并不会被频繁的扫描
? 这不同于CCS3.x中,关闭的项目不会出现在CCS3.x的项目视图窗口。
? 项目必须被导入工作区后才可以打开
– CCSv4/5,CCE的项目和传统CCSv3 项目均可导入到工作区中
视图 :项目资源管理器(Project Explorer)
? 显示所有当前工作区中定义的项目
? 主要是以文件系统的形式来展示项目文件夹中的内容
– 链接文件都标有一个特殊的连接图标
? 可以使用过滤器来隐藏的各种文件类型,以减少在视图混乱
– 默认下会过滤CCS生成的项目文件(.*)
视图:控制台(console)
? 多个上下文 (context)
– 可以显示构建(build)消息或调试(debug)消息(包括CIO),取决于所选定的控制台
– 当一个新的消息产生时上下文会自动切换
? 可以使用"钉" (pin) 功能定住窗口来避免自动切换
– CCS-3.x 中,构建输出,CIO的输出和调试器的消息都有专门的视图,
? 您也可以打开多个控制台窗口
– 比如,一个对应CIO的输出和另一个对应构建消息
单击"调试配置"(Debugger Configuration)链接
? 一个对话框将会出现,显示连接列表
– 选择""Texas Instruments XDS100v1 USB Emulator"
Eclipse概念: 透视图(perspectives)
? 定义工作台窗口内视图的初始设置和布局
? 在概念上类似于CCSv3"工作区"(*. WKS)(虽然可以在工作台上访问到多个透视图,但是同时间内只能展开一个)
? 每个透视图提供了一套完成一个特定任务类型的功能("CCS Edit"用于项目开发,"CCS Debug",用于项目调试等)
? 可以创建自定义的透视图
调试:使用观察点(watch points)
? 使用"停止暂停"(haltsuspend)按钮来停止目标运行
? 打开"断点"视图
– "视图 - >"断点" (View -> Breakpoints)
? 创建一个新的硬件观察点(Hardware Watchpoint),
? 右键单击观察点,并选择"属性"
– 位置(Location):GpioDataRegs.GPBTOGGLE.bit.GPIO34、
– 内存(Memory): Write
视图:断点
? 查看所有可用的断点
? 可以通过CPU将断点分组(多核设备)
? 断点触发时可以指定不同的行动
– 刷新所有的窗口或更新一个特定的视图(取代CCS3.3中的"动画(animate)")
– 控制性能分析(设置分析停止/恢复点)
– 文件的I / O(CCS3.3的探测点(probe points))
– 运行GEL表达式
– 设置观察点
– 控制CPU跟踪(trace)(在个别的ARM和DSP器件上)
更多的调试
? 调查其他调试视图(通过"视图"(View)菜单中打开)
– 内存浏览器(Memory Browser)
– 寄存器(Registers)
– 反汇编(Disassembly)
? 设置断点
– 双击源代码行进行设置/清除断点
– 用"断点"(Breakpoints)视图来查看断点列表
– 注 28x 的设备只支持两个硬件断点
? 观察点使用一个硬件断点资源
? 可以使用"调试"(Debug)视图中按钮来进行以下操作:
– 重新启动程序
– 源单步
– 汇编单步
调试器选项
? 许多调试功能都可以通过调试器选项启用/禁用
? 调试会话中"CCS Debug" 透视图 :
– "工具 - >调试选项 - >通用的调试器选项"(" Tools->Debugger Options->Generic Debugger Options)
? 配置各种调试选项,例如启用/禁用:
– 自动运行到主函数
– 自动连接到硬件目标
– 实时选项(需要硬件支持 例如C2000)
– 加载程序时进行核查
– 等等... ...
? 使用"记住我的设置(Remember My Settings )"选项来保存当前设置,方便未来使用
计数周期 - 性能分析时钟(Profile Clock)
? 性能分析时钟
– 在大多数设备上都有,可用于计数周期
– 在一些目标上,它可用于计数其他事件
? 时钟的启用
– 运行 - >时钟 - >启用 (Run -> Clock -> Enable)
– 时钟现在将显示在状态栏上
? 确认观测"GpioDataRegs.GPBTOGGLE.bit.GPIO34"写入的观察点已经启用
? 点击运行按钮来运行到这个断点
编译器版本
? 每个项目都需要指定使用的编译器版本
– 实际上这是在每一个配置级别上的设置
– i.e.调试版可以使用一个版本,发行版另一个
? 如果你想使用一个新下载的编译器 ,你必须改变你的项目所指定的编译器版本
? CCS将允许您选择本地计算机上能找到的所有编译器,
? 当您通过更新管理器安装在一个新的编译器,CCS会自动获得该编译器的地址
– 然而,你也可以告诉CCS一个版本的编译器的地址
目标配置文件 - 基础知识
? 目标配置文件是定义设备与连接的XML文件(文件扩展名 *. CCXML)
– 等于CCS3.x的配置文件(*. CCS)
? "目标配置(Target Configurations)"的视图是用于管理和维护目标配置文件
? 目标配置编辑器(Target configuration editor)用于创建/修改目标配置文件
? 基本(Basic)选项卡是为了大多数用户使用
? 高级(Advanced)选项卡是为了调整默认属性,初始化脚本,或建立新的板/设备的目标配置
创建目标配置
? 打开"目标配置"(Target Configuration)的视图
– 视图- >目标配置 (View -> Target Configurations)
视图:目标配置
? 您可以轻松地打开,复制和删除目标配置(XML文件)
? 快速启动一个调试会话:右键单击目标配置,并选择"启动选定的配置(Launch Selected Configuration)"
? "启动TI调试器(Launch TI Debugger)"将使用目标配置视图里,[Default](默认)选项卡中选定的目标配置
– 右键点击文件并选择"设置为默认(Set as Default)",使其成为默认目标配置文件
– 如果没有项目指定的目标配置文件,"调试激活项目(Debug Active Project)"将使用默认目标配置
视图:GEL文件
? 显示当前的调试会话的所有加载的GEL文件和其当前的状态
? 可行的操作:
– 在编辑器中打开文件
– 刷新(重新加载)文件
– 删除/卸载文件
– 删除/卸载所有文件
– 加载额外的GEL文件
? 新加载的GEL文件会在视图中出现
? 如果加载没有问题,状态将显示成功
版本控制 - 提交(Check In)哪些文件?
? CCS项目文件夹内生成多个文件/文件夹
– .CPROJECT 和.PROJECT是Eclipse项目文件,并应提交
– .CCSPROJECT是CCS的具体项目文件,应提交。
– .settings是一个标准的Eclipse文件夹,其中包含适用于该项目的设置。应提交此文件夹
– .launches是在启动调试会话时生成的目录。它不涉及您的项目的构建,没有必要提交
– 项目配置文件夹的内容(调试/发布) (Debug/Release)不需要进行提交
调试服务器脚本DEBUG SERVER SCRIPTING
调试服务器脚本:介绍
? 什么是调试服务器脚本?
– 调试服务器(调试器)的一套Java API
– 可用于使调试器的任何功能自动化
? 为什么使用它?
– 自动化测试和性能测试
– 支持连接到调试器的所有CPU/内核
? 可以通过提供第三方工具脚本化,如:
– Javascript (通过Rhino )
– Perl(通过"inline:Java"的模块)
– Python(通过Jython)
– TCL(通过Jacl/ Tclblend)
DSS vs. CCS 脚本
? DSS超越CCScripting的优点:
– 更快(没有GUI的开销,在进程中运行)
– 更强大和更详细的日志(logging)
– 异常(exception)处理
? 脚本可处理DSS APIs抛出的异常
– 直接与调试服务器连接(没有调试器GUI)
? 独立DSS的安装比全整的CCStudio安装所需的空间小很多
– 轻量安装,适用于在实验室机器作自动化操作
– 同时运行多个脚本实例
– 可以从CCS- Eclipse得到互动控制台的支持。
– 更直接的API支持(减少对GEL的依赖)
? 引脚/端口连接的API
? 数据加载/保存的API + 对二进制文件支持的计划
? CCS 文件I / O API(计划中)
? ATK的支持(计划中)
– Linux上的支持
? CCS的脚本是Win32/COM
DSS:更快
? 没有GUI的自动化(没有GUI的开销)
– 没有窗口重新绘制/刷新/更新
? 对一些API开销更少
? 在进程内运行
– CCScripting 在与CCS不同的进程内运行
DSS:基准(Benchmarks)
? 启动(启动调试器)
– CCScripting:?5秒
– DSS的:?1秒
? 程序加载API
– CCScripting比DSS API在程序加载多出?4秒的开销
? 用DSS加载小型的例子*.out文件需要?65毫秒
? 同样的情况CCScripting需要?4秒
? 在程序加载API被反复调用的情况下的叠加效果...
– DSS:加载200次 =?13秒
– CCScripting:加载200次 =?800秒
– DSS节省了?12分钟!
– 在几个个别的脚本上从CCScripting迁移到DSS后增加了1.5倍到3倍的
速度
DSS: 日志(Logging)
? XML格式(易于解析)
– 可以指定在XML文件中引用的XSTL文件
? 配置日志在用Web浏览器打开时,信息显示的方式
? XSTL教程:http://www.w3schools.com/xsl/xsl_intro.asp
? 更多信息
– 序列号
– 时序信息(总和,delta 值等)
– 状态消息
? 日志的CIO输出
DSS:异常处理
? 无GUI(没有弹出对话框窗口等)
? 所有API在遇到错误时都会抛出一个Java异常
– 可以在脚本中处理异常(例如Javascript的try - catch)
DSS:异常处理
? DSS API抛出Java异常
? 您可以脚本中处理异常,使其优雅地关闭/失败或继续
DSS:调试脚本
? DSS附带Rhino调试器,它支持:
– 单步,断点,查看脚本变量...
DSS的示例脚本
// Import the DSS packages into our namespace to save on typing
importPackage(Packages.com.ti.debug.engine.scripting);
importPackage(Packages.com.ti.ccstudio.scripting.environment);
importPackage(Packages.java.lang);
// Modify these variables to match your environment. Use forward slashes
var ccs5InstallDir = "C:/Program Files/Texas Instruments";
var ccs5ScriptingLabDir = "C:/CCSWorkshop/labs/scripting";
// Create our scripting environment object - which is the main entry point
// into any script and the factory for creating other Scriptable Servers and Sessions
var script = ScriptingEnvironment.instance();
// Create a log file in the current directory to log script execution
script.traceBegin(ccs5ScriptingLabDir + "/test.xml", ccs5InstallDir +
"/ccsv5/ccs_base/scripting/examples/DefaultStylesheet.xsl");
// Set trace levels for console and logs
script.traceSetConsoleLevel(TraceLevel.INFO);
script.traceSetFileLevel(TraceLevel.ALL);
// Get the Debug Server and start a Debug Session
debugServer = script.getServer("DebugServer.1");
debugServer.setConfig(ccs5ScriptingLabDir + "/c6416_le_sim.ccxml");
debugSession = debugServer.openSession(".*");
// Load a program
debugSession.memory.loadProgram(ccs5ScriptingLabDir + "/mainapplication.out");
// Run the target
debugSession.target.run();
// All done
debugServer.stop();
script.traceWrite("TEST SUCCEEDED!");
// Stop logging and exit.
script.traceEnd();
java.lang.System.exit(0);
DSS的示例:loadti
? DSS的JavaScript示例,作为一个命令行程序,它可以在TI的目标板上加载/运行可执行文件
*. Out
? DSS的例子,但是能适用于任何程序和目标
? 高易用性和缺乏对GUI依赖,使其成为一个有吸引力的自动化工具,用于快速完整性测试
(Sanity Tests)和批处理回归(Batch Regressions)测试
? 一些支持的基本功能包括:
– C I/O标准输出可以被发送到控制台和脚本日志
– 生成详细的运行日志
– 执行基本的应用程序基准测试(通过使用性能分析的时钟)
– 把参数传到主函数
– 从主机到目标内存,载入/保存数据(反之亦然)
– 复位目标
? 关于loadti上的更多细节,请参阅"README.TXT"
– <安装目录>ccsv5ccs_basescriptingexamplesloadti
使用loadti: 运行"BlinkingLED.out?
? 关闭所有正在运行的CCS
? 打开一个DOS命令窗口
? 浏览到"BlinkingLED.out"程序的位置
– Location: BlinkingLEDF2806x_FLASHBlinkingLED.out
– > set PATH=%PATH%;ccsv5ccs_basescriptingexamplesloadti
– 您需要把换成您的安装位置
– > loadti –h (for console help)
– > loadti –c ..TMS320F28069.ccxml BlinkingLED.out
? 加载将需要一些时间,因为需要擦除/编程闪存
当你可以看到LD2闪烁时,程序已在运行
? 按CTRL- C中止
DSS: 资源
? DSS MediaWiki的文档(推荐阅读):
? http://processors.wiki.ti.com/index.php/Debug_Server_Scripting
? DSS API的文档:
? ccsv5ccs_basescriptingdocsGettingStarted.htm
? 命令行项目管理工具的MediaWiki文档:
?
http://processors.wiki.ti.com/index.php/Projects_-_Command_Line_Build/Create
脚本控制台 (Scripting Console)
? CCS的命令行操作
? 视图 - >脚本控制台 View->Scripting Console
? 按TAB查看命令列表
– 按TAB使用部分输入的命令自动完成功能
? 命令相关的文档
– JS:> help
? JavaScript和shell可以访问到所有的DSS API
? 从控制台运行DSS的脚本
? 创建自己的自定义命令
– 在*. js文件中创建一个JavaScript函数
– 加载自定义的JavaScript文件
? loadJSFile / myCustomConsoleCmd.js
? 可选的第二个参数(布尔),将决定是否自动加载脚本
– 该函数现在可以从脚本控制台内用其名称调用
脚本控制台
? 视图 - >脚本控制台 View->Scripting Console
? 按TAB查看命令列表
– 按TAB使用部分输入的命
令自动完成功能
? 命令相关的文档
– JS:> help
脚本控制台
? 脚本控制台和GEL都可用于自动化
? GEL仅限于一个激活的调试会话并且(多数情况)只适用于一个调试上下文
? 脚本控制台随时都可以使用(虽然某些命令在没有激活的调试会话的情况下将无法正常工作)
? 脚本控制台和GEL都可以为自定义"脚本"添加菜单
– GEL:hotmenu
– 脚本控制台:hotmenu.addJSFunction
脚本控制台
// Add entries to the 'Scripts' menu
hotmenu.addJSFunction("Launch TCI6488 Simulator, Little Endian", "tci6488_le_sim()");
hotmenu.addJSFunction("Launch TCI6488 Simulator, Big Endian", "tci6488_be_sim()");
// Path to folder with target setup ccxml files
var setupConfigFileFolder = "C:/Documents and Settings/login/user/CCSTargetConfigurations";
// configure for a TCI6488 Symmetric Simulator, Little Endian
function tci6488_le_sim()
{
ds.setConfig(setupConfigFileFolder + "/tci6488_le_sim.ccxml");
debugSessionCPU1 = ds.openSession("*", "C64+_0");
debugSessionCPU2 = ds.openSession("*", "C64+_1");
debugSessionCPU3 = ds.openSession("*", "C64+_2");
}
Eclipse插件 - 基本
? CCSv5基于Eclipse,所以用户拥有巨大的第三方插件的选择
– http://marketplace.eclipse.org/
? CCSv5基于Eclipse3.7
– 为了最佳的兼容性,请使用这个版本对应的插件
Eclipse插件 - 安装
? 使用Eclipse更新管理器(Update Manager )
– "帮助 - >安装新软件"(Help -> Install New Software)来进行
更新安装(指定的远程站点(URL)或本地站点(目录)
? 拖放
– 许多插件是压缩归档,可以直接下载并复制到: ccsv5eclipsedropins文件夹
http://houh-1984.blog.163.com/
TI嵌入式处理器的集成开发环境(IDE)包括调试器,编译器,编辑器,DSP/BIOS操作系统等等,现在最新的CCSv5 IDE基于Eclipse开源软件框架(v4+)并融合了TI设备的支持与功能,适用于windows和linux环境下开发,CCSv5是基于原版的 Eclipse,并且TI将直接向开源社区提交改进,用户可以随意的将各种其他厂商的Eclipse插件或TI的工具拖放到现有的Eclipse环境,用户可以享受到Eclipse中所有最新的改进所带来的便利,CCSv5(CCSv5.1 CCSv5.2
CCSv5.0)还集成额外的工具,包括 操作系统的应用程序开发工具(Linux操作系统,Android的...)以及 代码分析、源代码控制等。本文介绍了TI的IDE集成开发环境CCSv5的基本特点,相对于CCSv3.3和CCSv4的改进和提升,其Eclipse各种视图环境、Target configuration的和debug session视图方法和GEL、DSS脚本工具的使用方法。