




已阅读5页,还剩239页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第三章TMS320F2833x软硬件开发环境及调试 2 3 1TMS320F2833x软硬件开发环境及调试 本章第一部分主要介绍F2833X的最小系统设计 对构成最小系统的基本模块 电源 复位 时钟 JTAG口等 进行了详细的介绍 给出了设计的基本思路和参考电路 最后对PCB的分层 布线设计和调试进行了讨论 3 3 1TMS320F2833x软硬件开发环境及调试 F2833xDSP具有高性能的CPU时钟和高速的外设 这对DSP电路设计提出了挑战 本章节将对DSP的最小系统和一些典型的外设进行探讨 使读者能够对电路板的设计调试有进一步的认知 4 3 1TMS320F2833x软硬件开发环境及调试 如图3 1所示 一个完整的TMS320F2833xDSP硬件系统设计包括最小系统以及外围电路设计 图3 1典型的TMS320F2833x硬件系统 5 3 1TMS320F2833x软硬件开发环境及调试 其中 最小硬件系统主要包括电源电路 复位电路 时钟电路及JTAG仿真烧写口 外围电路则可以根据实际工程的需要进行选择 下面将给出最小硬件系统的设计 希望通过本章的学习 读者可以对F2833x系列的DSP硬件系统有一个直观的了解 可以自行设计一款最小硬件系统 6 3 1 1电源电路 电源电路的设计是硬件系统的基础和核心 F2833X采用3 3V和1 8V双电源供电 本系统采用数字模拟地分离设计 下面详细介绍电源系统设计的具体步骤 一 设计要求和原则对于电源电路的设计首先要了解芯片的电气规范 F2833x芯片有多种电源引脚 P11 它们包括 CPU核的电源 VDD I O电源 VDDIO ADC模拟电源引脚 VDDA2 VDDAIO ADC核电源 VDD1A18 VDD2A18 Flash程序电源 VDD3VFL 地电源引脚 VSS VSSIO ADC模拟地 VSSA2 VSSAIO ADC模拟 内核地 VSS1AGND VDD2AGND 7 3 1 1电源电路 说明 所有的电源引脚都必须连接正确 所有这些芯片具有多个给内核 I O和ADC 模拟供电引脚 所有的这些引脚都必须连接正确的供电电压 不能让任何引脚悬空 I O引脚的电压是3 3V 然而内核的供电电压是1 8V或者1 9V 更多的信息可以参考具体芯片数据操作手册的电气部分 具有可编程的Flash 对其供电的引脚必须连接3 3V上 部分在电路闪存中使用 如今随着半导体技术的不断发展以及电子产品对功耗的要求越来越严苛 各大芯片生产商在设计IC电路时普遍采用多电源供电技术 如TI公司的2000系列的DSP 内核电压与IO电压采用不同的电压等级 这种设计的目的在于减小内核工作是的能耗 8 3 1 1电源电路 为了使得系统能够可靠运行 一般而言系统电源应满足F2833X的推荐值范围 不能超过最大的可承受电压 F2833X电源推荐值如表3 1所示 在进行电源电路设计时一般首先根据推荐值进行设计 9 3 1 1电源电路 表3 1F2833X电源推荐值范围 10 3 1 1电源电路 除了保证系统的电源电压满足要求以外 还需要考虑电源芯片的最大输出电流 电源芯片的最大输出电流是由DSP的最大电流损耗以及外围电路的电流损耗所决定的 由于每一个外围设备都有一个独立的时钟使能位 因此关闭指定模块中闲置的时钟可以减少电流的损耗 同样也可以利用三种低功耗的模式中的任一个来进一步减少电流的损耗 在不影响系统的功能的前提下实现低功耗 表3 2给出了关闭时钟所减少的电流损耗典型值 11 3 1 1电源电路 表3 2外设电流损耗典型值 SYSCLKOUT 150MHz 12 3 1 1电源电路 说明 1 复位时 所有外设时钟被禁用 只有在外设时钟被打开后 才可对外设寄存器进行写入 读取操作 2 对于具有多个实例的外设 按照模块引用电流 例如 为ePWM所引出的5mA电流数是用于一个ePWM模块 3 这个数字代表了ADC模块数字部分汲取的电流 关闭到ADC模块的时钟也将消除取自ADC IDDA18 模拟部分汲取的电流 4 运行XINTF总线对IDDIO电流有明显的影响 电流量的增加与下面的因素有关 多少个地址 数据引脚从一个周期切换到另一个 它们切换的速度有多快 使用的接口是16位还是32位及这些引脚上的负载 13 3 1 1电源电路 如果要进一步减少损耗 还可以使用下述几种方法 如果代码运行在SARAM中 闪存模块可以被断电 这可以减少35mA的电流损耗 关闭XCLKOUT 减少15mA的损耗 禁用输出功能引脚上的上拉电阻以及XINTF引脚的上拉电阻 可以减少35mA 说明 以上减少损耗值均为典型值 14 3 1 1电源电路 二 上电下电时序上电下电时序对于所有的F2833x芯片 为了确定所有模块的正确复位 对于不同电源引脚的加电 断电序列无特别要求 然而 如果在I O引脚的电平移动的输出缓冲中的3 3V晶体在1 8 1 9V晶体管之前加电 那么就有可能使输出缓冲有效 在上电期间 就有可能产生一个假信号 为了避免这种情况的发生 对VDD引脚的加电要先于或者同时对VDDIO引脚加电 为了确保在VDD引脚到达0 7V之前 VDDIO引脚已经到达0 7V 15 如果内核先于I O模块上电 那么I O引脚将不会产生不稳定的未知状态 反之 如果I O模块先于内核上电 由于此时内核不工作 I O输出缓冲器中的晶体管有可能打开 从而在输出引脚上产生不确定状态 对整个系统造成影响 为了避免这种情况的发生 VDD引脚上电应早于VDDIO引脚上电 或与之同时 以确保VDD引脚在VDDIO引脚达到0 7V之前先达到0 7V 一般芯片的上电顺序有要求的 先内核后外围 16 3 1 1电源电路 说明 如果读者计划给处理内核的供电引脚VDD加3 3V电压 就必须确定这3 3V还没有加给处理芯片 这和上面描述的是一样的 读者必须使用场效应晶体管开关来实现 17 3 1 1电源电路 另外 电压小于二极管压降的芯片输入引脚都应该先上电 没有电压引脚的芯片会在无意中产生一个内部p n节 这将产生一个不可预料的结果 对于F2833x芯片而言 如果1 8V 或1 9V 引脚落后于3 3V引脚上地 GPIO引脚的状态就不定直到1 8V引脚到达1V 而C281x芯片不需要加电顺序 下面简单描述加电的顺序 先让所有的3 3V电源引脚上电 VDDIO VDD3VFL VDDA1 VDDA2 VDDAIO VDDREFBG 然后调到1 8V 或1 9V VDD VDD1 引脚上电 1 8V或1 9V在VDDIO到达2 5V之后才能到达0 3V 这也确保复位信号从I O引脚传到I O缓冲中 主要是为了给在设备中的所有的模式提供复位电源 18 3 1 1电源电路 下电时 F2833x芯片也需要按照下面的关电顺序来进行 在电源关闭期间 芯片的复位在VDD到达1 5V之前应该被设置为低电平 最小时间为8 s 这样有助于片上的Flash逻辑复位优先于VDDIO VDD电压的下降 最好是采用芯片复位控制芯片或者是电压管理芯片来实现这个功能 低信号调整器对上电顺序非常方便 在加上外部附加芯片器件 就能够更好满足地加电顺序 19 3 1 1电源电路 三 具体方案实例考虑到F2833x采用3 3V和1 8V双电源供电 本系统采用数字模拟地分离设计 电路如图3 2所示 设计电源电路时需要特别注意散热和电容匹配问题 本次设计使用TPS767D301电源转换芯片 它带有使能端的3 3V和一个可调输出通道 每路输出最大电流可达1A 5V输入电源经过TPS676D301后经滤波器输出CPU内核电源 VDD 1 9V I O电源 VDDIO 3 3V以及Flash程序电源 VDD3VFL 3 3V 20 3 1 1电源电路 图3 2TMS320F28xx F28xxx电源电路图 21 TPS767D301芯片 提供一路稳定的3 3伏电压 一路可调的1 5 5 5V电压TPS767D318芯片 提供两路稳定的电压 3 3V和1 8V 22 3 1 1电源电路 由于模拟电路会引入各种高频干扰信号 会对数字电源产生干扰 所以在设计中应对信号滤波处理 模拟电源与数字电源要进行隔离 在设计中通常使用磁珠作为隔离器件 磁珠全名为铁氧体磁珠滤波器 它的特点在于对于高频信号抑制能力很强 对高频电流会产生很大的衰减 而在低频段对于电流几乎不提供阻抗 因此可以有效的抑制高频信号 如图3 3所示 本章设计选用BLM21P221SN的铁氧体磁珠作为数字电源和模拟电源的隔离器件 23 3 1 1电源电路 图3 3数字电源与模拟电源的隔离 24 3 1 2复位电路 为了保障系统的正常启动 F2833X最小系统一般需要加入复位电路 复位可以分为上电复位 手动复位 电源监测复位以及看门狗复位等 在考虑电路设计的时候 手动和上电复位主要考虑能够手动去抖 上电复位时间保证等方面 电源监测主要是监测系统电源 一旦系统电源超过设定的阈值 则使处理器复位 防止系统跑飞 看门狗复位主要是完成对系统软件程序的监测 一般采用固定时间触发看门狗的定时器方式 是看门狗一直处于计数状态 一旦系统软件出现异常而在看门狗计数周期内没有对其进行清零操作 则认为系统软件故障而产生复位信号使CPU复位 25 3 1 2复位电路 对于引脚的两个基本要求 1 加电期间 引脚必须在输入时钟稳定之后的tw RSL1 内保持低电平 这使得整个器件从一个已知的条件启动 2 断电期间 引脚必须至少在VDD达到1 5V之前的8 s内被下拉至低电平 这样做可以提高闪存可靠性 26 3 1 2复位电路 说明 在为器件加电之前 不应将VDDIO之上大于二极管压降 0 7V 的电压应用于任何数字引脚上 对于模拟引脚 这个值是比VDDA高0 7V的电压值 此外 VDDIO和VDDA之间的差距应一直在0 3V之内 应用于未加电器件的引脚上的电压会以一种无意的方式偏置内部p n接头并产生无法预料的结果 27 3 1 2复位电路 说明 另外 tw RSL1 要求 XRS必须在VDD达到1 5V后的1ms内为低电平 表3 3复位 XRS 序要求 28 3 1 2复位电路 图3 4加电复位 29 3 1 2复位电路 图3 5给出了上电复位和手动复位的电路图 电源和看门狗复位则在后续章节详述 复位电路的基本工作原理是 上电期间 一旦VDD电压超过1 1V 端将从不确定状态进入低电平状态 之后芯片将持续监测VDD电压 直到VDD电压超过芯片内部设定的阈值VT时 TPS3823 33的内部定时器将开始启动 经过td延迟后将重新拉倒高电平 完成整个上电复位过程 如果在定时器启动后 VDD的电压跌落到阈值电压VT以下 那么定时器将清零 继续监测VDD电压 手动复位清零时 出现低电平 也将变为低电平 手动复位按键S1可以直接进行一次复位 对于调试和测试十分方便 30 3 1 2复位电路 图3 5上电和手动复位电路图 31 3 1 3时钟电路 一 内部外部振荡器的选择F2833X系列的DSP提供了两种不同的产生时钟方案 利用电路板上的内部晶体振荡器或者利用外部时钟 外部输入时钟频率是在20Mhz 35Mhz范围 一般而言 对于时钟信号 为了获取最大的运行速度 一般选择发生概率最大的频率 使用内置振荡器时 只需要X1和X2引脚接入一个石英晶振 如图3 6所示 使用内置晶振时 F2833x的片内振荡器的输出频率只能工作在20 35MHz 通常选用精度较高的石英晶振 32 3 1 3时钟电路 图3 6使用内部晶振的时钟电路说明 30MHz外部石英晶振的典型技术规范如下 基本模式 并联谐振 CL 负载电容 12pF CL1 CL2 24pF C并联 6pF ESR范围 25至40 X2 102引脚 X1 104引脚 XCLKIN 105引脚 XCLKOUT 138引脚 33 3 1 3时钟电路 由于DSP芯片不是经常在晶体的频率下工作 所以如果系统中的其他设备需要同样的时钟 利用外部时钟是比较简单和流行的一种方法 如果片载振荡器未被使用 那么外部振荡器的接法可以是下面两种 一个3 3V外部振荡器可被直接接至XCLKIN引脚 X2引脚应被悬空 而X1引脚应在低电平时 这个情况下的逻辑高电平不用超过VDDIO 如图3 7 a 所示 外部时钟源操作模式 允许旁通内部振荡器 时钟由一个X1 104 或者XCLKIN 105 引脚上的外部时钟源输入生成 一个1 9V 100MHz器件时为1 8V 外部振荡器可以直接连接到X1引脚 X2引脚应被悬空 而XCLKIN引脚应在低电平时 这个情况下的逻辑高电平不应超过VDD 如图3 7 b 所示 34 3 1 3时钟电路 图3 7 a 3 3V外部振荡器时钟电路 b 1 9V外部振荡器时钟电路 当使用外部振荡器时 只需将外部振荡器产生的时钟脉冲输入到相应的引脚 外部振荡时钟脉冲通常由有源晶振产生 一般要求外部振荡器的脉冲要大于等于30MHz 35 3 1 3时钟电路 二 PLL的时钟模块设置图3 8给出了系统的时钟通道 时钟通道由OSC和PLL构成 与PLL配置相关的寄存器有两个 PLL状态寄存器PLLSTS和PLL控制寄存器PLLCR 两个寄存器中最关键的位域分别为2位的PLLSTS DIVSEL 和4位的PLLCR DIV PLLSTS DIVSEL 选择CPU时钟的分频系数 4 2 1 PLLCR DIV 选择CPU时钟的倍频系数 1 2 10 PLL有一个4位比率控制PLLCR DIV 来选择不同的CPU时钟速率 36 3 1 3时钟电路 二 PLL的时钟模块设置 图3 8OSC和PLL构成的时钟通道 37 3 1 3时钟电路 二 PLL的时钟模块设置通过设定PLLCR DIV 值可以对PLL的模式进行选择 0000为PLL被旁路 0001 1010为外部时钟倍频值 复位后缺省情况下 PLLSTS DIVSEL 被配置为 4 0 引导ROM将这个配置改为 2 在写入PLLCR前 PLLSTS DIVSEL 必须为0 而只有当PLLSTS PLLOCKS 1时才应被改变 具体的配置可以参考表3 4 38 OSCOFF 0 外部CLK信号输入PLL 默认 1 外部CLK信号未输入PLL 39 3 1 3时钟电路 二 PLL的时钟模块设置通过设定PLLCR DIV 值可以对PLL的模式进行选择 0000为PLL被旁路 0001 1010为外部时钟倍频值 缺省情况下 PLLSTS DIVSEL 被配置为 4 引导ROM将这个配置改为 2 在写入PLLCR前 PLLSTS DIVSEL 必须为0 而只有当PLLSTS PLLOCKS 1时才应被改变 具体的配置可以参考表3 4 40 3 1 3时钟电路 二 PLL的时钟模块设置 表3 4PLL的配置 41 晶体振荡器与PLL模块F2833x系列DSP可以通过外置晶体振荡器胡外部时钟信号提供时钟 并通过内部锁相环回路倍频后提供给系统 用户可以根据实际运行频率计算所需的倍频系数 并通过软件设置PLL的倍频系数 下图为片上外设时钟的产生 42 43 3 1 3时钟电路 二 PLL的时钟模块设置以配置150Mhz的时钟为例 系统初始化时 将PLLCR DIV 配置为1010 转化为十进制为10 PLLSTS DIVSEL 配置为2 那么在外部晶振时钟频率为30MHz时 SYSCLKOUT CLKIN 为150MHz 44 voidInitPll Uint16val Uint16divsel MakesurethePLLisnotrunninginlimpmodeif SysCtrlRegs PLLSTS bit MCLKSTS 0 Missingexternalclockhasbeendetected Replacethislinewithacalltoanappropriate SystemShutdown function asm ESTOP0 DIVSELMUSTbe0beforePLLCRcanbechangedfrom 0 x0000 Itissetto0byanexternalresetXRSn Thisputsusin1 4if SysCtrlRegs PLLSTS bit DIVSEL 0 EALLOW SysCtrlRegs PLLSTS bit DIVSEL 0 EDIS 45 OSCOFF 0 外部CLK信号输入PLL 默认 1 外部CLK信号未输入PLL 46 PLL初始化程序段 前面条件都满足后 可以改变PLLCR DIV if SysCtrlRegs PLLCR bit DIV val EALLOW 在设置PLLCR DIV 前 要禁用主振荡器检测逻辑 MissingclockdetectlogicSysCtrlRegs PLLSTS bit MCLKOFF 1 SysCtrlRegs PLLCR bit DIV div EDIS 等待PLL稳定且处于锁定状态 即PLLSTS LOCKS 置位 等待稳定的时间可能略长 需要禁用看门狗或者循环喂狗 屏蔽注释 禁用看门够DisableDog while SysCtrlRegs PLLSTS bit PLLLOCKS 1 屏蔽注释 喂狗 ServiceDog EALLOW SysCtrlRegs PLLSTS bit MCLKOFF 0 EDIS 47 PLL初始化程序段 如果需要分频1 2if divsel 1 divsel 2 EALLOW SysCtrlRegs PLLSTS bit DIVSEL divsel EDIS 注意 下面代码只有在PLL是旁路或者关闭模式时 才可被执行 其他模式禁止 倍频时一定要分频 不倍频时才允许不分频 如果需要切换分频到1 1 首先从默认1 4分频切换到1 2分频 让电源稳定 稳定所需要的时间依赖于系统运行速度 此处延时50us只是作为一个特例 稳定后 再切换到1 1if divsel 3 EALLOW SysCtrlRegs PLLSTS bit DIVSEL 2 DELAY US 50L SysCtrlRegs PLLSTS bit DIVSEL 3 EDIS 48 PLL初始化流程 根据流程图 大致可以描述PLL的初始化过程为 1 确保存在OSCCLK 系统能正常工作 即判断PLLSTS MCLKSTS 1 2 改变PLLCR DIV 前 确保PLLSTS DIVSEL 0 3 改变PLLCR DIV 前 禁用主振荡器故障检测逻辑模块 即PLLCR MCLKOFF 1 4 根据需要 改变PLLCR DIV 5 判断PLL是否稳定锁定 即PLLSTS PLLLOCKS 1 6 使能主振荡器故障检测逻辑模块 即PLLCR MCLKOFF 0 7 根据需要 改变PLLSTS DIVSEL 49 3 1 4调试接口 JTAG F2833x器件使用标准的IEEE1149 1JTAG接口 此外 器件支持实时运行模式 在处理器正在运行 执行代码并且处理中断时 可修改存储器内容 外设 和寄存器位置 用户也可以通过非时间关键代码进行单步操作 同时可在没有干扰的情况下启用即将被处理的时间关键中断 此器件在CPU的硬件内执行实时模式 这是F2833x器件的独特功能 无需软件监控 此外 还提供了特别分析硬件以实现硬件断点或者数据 地址观察点的设置并当一个匹配发生时生成不同的用户可选中断事件考虑到JATG下载口的抗干扰性 与DSP相连的端口一般采用上拉设计 由于多用于调试和仿真 JTAG的连接必须放在方便的位置 但距离数字信号控制器的引脚距离必须在6英寸之内 50 3 1 4调试接口 JTAG 图3 9JTAG标准接插件信号定义 51 3 1 4调试接口 JTAG 表3 5引脚JTAG标头信号的引脚描述 52 3 1 4调试接口 JTAG 图3 10显示了DSPMCU和JTAG接头之间针对单处理器配置的连接 如果JTAG接头和DSP之间的距离大于6英寸 那么仿真信号必须被缓冲 如果距离小于6英寸 通常无需缓冲 图3 10显示了较简单 无缓冲的情况 图3 10JTAG引脚的连接 小于6英寸 53 3 1 5模数转换电路A D电路设计 F2833x系列DSP的A D转换模块可处理的电压范围为0 3V 但实际使用中 待测电压可能是负电压 比如系统交流采样的情况下就不能直接将电压接入到A D输入口上 否则将损坏A D采样模块 与此同时为了得到更为纯净的输入信号 需要对信号进行滤波和抬高处理 本文介绍了一种经典电路 如图3 11所示 图3 11A D前端处理电路图 54 3 1 5模数转换电路A D电路设计 图3 11中 电流信号经过C68滤波后经R8变成电压信号 经过运算放大器U8A跟随电路进入中间的滤波电路 最后经过偏置电路将 2 5 2 5V的交流信号偏置成0 3V范围内 具体的设计说明可以参考A D章节 55 3 1 6串行通信端口电路设计 TMS320F2833xDSP有3个异步串行通信接口 SCI 模块 SCI模块支持CPU与其它异步外设之间的使用标准非归零码 NRZ 格式的数字通信 SCI接收器和发射器是双缓冲的 并且它们都有其自身独立的使能和中断位 两个器件都可独立或者同时地运行在全双工模式 图3 12和图3 13给出了经典的CAN电路和RS232设计 56 3 1 6串行通信端口电路设计 图3 12经典的CAN电路图 57 3 1 6串行通信端口电路设计 图3 13经典RS 232电路图 58 3 1 7PCB布局布线及硬件调试 一 板子层数与分割板子层数多是针对信号层而言 对于简单的且对于成本控制比较严格的场合可以使用单层板或者双层板 当板上器件较多时 信号与电源走线较为复杂 且对电磁兼容性要求较高时可以使用多层板 现在普遍使用的一种设计方法就是在普通的双层板中内嵌两层铜模 这两层铜模分别用来布置系统的电源与地 即通常所说的四层板 事实上 这个四层板包括的是两个信号层 一个电源层以及一个地层 59 3 1 7PCB布局布线及硬件调试 二 信号探测点为了便于测试 需要将一些重要的信号点引出 XCLKOUT测试点应紧靠芯片引脚DGND数字低 地与示波器相连AGND模拟地3 3V1 8V跳线和拨码开关旁路电容电源供电时钟振荡器 60 3 1 7PCB布局布线及硬件调试 三 硬件调试方法通常对于系统硬件的调试是较为复杂的 需要借助各种仪器通过不同的方法来查找出现问题的可能原因 本文介绍一些常用的方法 系统电源与复位信号的监测完成硬件系统的设计后 一般要对硬件进行检测和调试 61 3 1 7PCB布局布线及硬件调试 首先要进行检测检测的是电源系统和复位电路 电源信号可能存在的故障有 短路故障 过压欠压以及电压的波动 首先在系统上电前 可以用万用表对电源和地之间进行测量看是否有短路情况出现 如果出现短路情况 应检测是否有将相邻的电源与地连接在一起 这将直接导致DSP芯片烧毁 当出现没有电压时应检测是否有虚焊 漏焊或者芯片的损坏出现 电压过低时 检测是否出现过载现象 电压干扰主要检测是否是布线问题 对于复位信号的检测主要是检测其边沿跳变是否满足要求 以及信号的纯净度 初次上电时可以用手触摸DSP看是否有过热发烫的情况出现 如果出现过热 应马上停电进行检查 62 3 1 7PCB布局布线及硬件调试 对于信号的检测主要包括信号的电平状态以及时序是否有问题 借助于示波器 我们可以迅速检测出电平状态的问题 此类错误多由于芯片的损坏以及虚焊漏焊的出现 检测时可以根据信号源的流动逐次进行检测 可以从信号的输入点开始检测 也可以从信号的输出点开始检测 利用信号的两个点之间状态不同时可以判断信号的正确还是错误 63 3 1 7PCB布局布线及硬件调试 对于时序的检测较为困难 检测此类信号问题时 一般要借助多通道的示波器 同时检测不同点的信号 比较计算信号的延迟进行判断 检查时要采用同步信号对比 否则容易被误导 64 3 2TMS320F2833x软件平台和编程介绍 该部分主要介绍CCS的操作环境和常用的操作 详细的介绍COFF这一概念 对编译器和链接器的选项也进行了说明 给出了调试中常用的一些操作说明 具有较强的工程应用意义 详细的说明了CMD的内容 最后介绍了F2833x新的亮点 FPU浮点库 65 3 2 1CCS5 5简介 CCS包括如下各个部分 CCS代码生成工具 CCS集成开发环境IDE DSP BIOS控件程序 RTDX控件 主机接口和API CCS代码生成工具中需要理解的是C编译器 Ccompiler 汇编器 assembler 和链接器 linker C编译器是将C语言形式程序代码转成汇编语言源代码 汇编器是将汇编语言文件翻译成CPU可执行的机器语言的目标文件 链接器就是将多个目标文件组成单个可执行的目标文件 它一边创建可执行文件 一边完成重定位以及决定外部参考 链接器的输入是可重定位的目标文件和目标库文件 66 3 2 1CCS5 5简介 链接器的作用 1 根据链接命令文件 cmd文件 将一个或多个COFF文件链接起来 生成存储器映象文件 map 和可执行的输出文件 out文件 2 将段定位于实际系统的存储器中 给段 符号指定实际地址 3 解决输入文件之间未定义的外部符号引用 CCS集成开发环境IDE 它具有允许编辑 编译和调试DSP目标程序等功能 67 3 2 1CCS5 5简介 编辑源程序 CCS允许编辑C源程序和汇编语言源程序 同样可以在C语句显示汇编指令的方式来查看C源程序 68 CCS5 5集成开发环境 一 CCS5 5软件的安装 首先我们需要来安装TIDSP的软件开发环境CCS CodeComposerStudio 推荐使用CCS5 5版本 XDS100V2仿真器也只能适用于CCS4 0及以上版本的开发环境 XDS100V3仿真器只适用于CCS5 0及以上版本的开发环境 注意 安装前先关闭杀毒软件和360 电脑管家等安全防护软件 否则点击安装程序会出现警告 强行安装会出现文件丢失 双击ccs setup 5 5 0 00077 exe文件 出现如下图1 1所示界面 注意 路径不可以有中文 69 CCS5 5集成开发环境 根据自己的需求选择所要安装的内容和选择仿真设备驱动类型 这里选择 SelectAll 然后点击 Next 70 CCS5 5集成开发环境 二 CCS与仿真器的连接 由于XDS100V3仿真器的驱动已经做到了CCSV5 5中了 所以当用户安装CCSV5 5版本的软件之后 仿真器的驱动就已经安装好了 接下来 用户只需要将仿真器的USB与PC机的USB接口连接即可 驱动也是自动识别安装的 当提示驱动安装完毕而且可以使用后 用户就可以使用仿真器对目标板进行仿真操作 下面为大家说明如何使用XDS100V3对目标板进行仿真 71 CCS5 5集成开发环境 1 定义工作区目录CCSv5 5首先要求的是定义一个工作区 即用于保存开发过程中用到的所有元素 项目和指向项目的链接 可能还有源代码 的目录 默认情况下 会在C Users Documents或C DocumentsandSettings MyDocuments目录下创建工作区 但可以任意选择其位置 每次执行CCSv6都会要求工作区目录 如果计划对所有项目使用一个目录 只需选中 Usethisasthedefaultanddonotaskagain 默认使用此目录且不再询问 选项 如下图所示 72 CCS5 5集成开发环境 更改工作区目录详见下图2 1 2 在工具栏中点击 File SwitchWorkspace Others 然后自己重新定义 注意 目录不可以有中文 73 CCS5 5集成开发环境 2 建立目标板配置环境 在CCSv5 5版本环境中 也需要建立仿真配置环境 在工具栏中点击 File New TargetConfigurationFile 如下图所示 74 CCS5 5集成开发环境 为此配置命名 f28335xds100v3 ccxml 可自行命名 点击 Finsh 75 CCS5 5集成开发环境 在 connection 调试器类型 一栏中选择 TexasInstrumentsXDS100v2USBEmulator 或 TexasInstrumentsXDS100v3USBEmulator Device 芯片类型 一栏中选择 TMS320F28335 76 CCS5 5集成开发环境 如果使用默认的GEL文件 那么请点击 Save 即可 如果使用自己的GEL文件 那么请点击蓝色字体的 TargetConfiguration 出现以下界面 点中C28xx 在右面的initializationscript中选择自己的GEL文件 之后点击 Save 到目前为止 此配置环境建立完毕 77 CCS5 5集成开发环境 3 连接目标板 找到工具栏的 View Targetconfigurations 按钮并单击切换出配置界面 然后在配置界面中右键点击配置文件选择 SetasDefault 将刚刚建立的配置文件设置为默认状态 启动调试 右击选择已配置的项目的 LaunchSelectedConfiguration 78 CCS5 5集成开发环境 当启动成功后 在工具栏中点击 Run ConnectTarget 即可连接目标板 79 CCS5 5集成开发环境 出现下图所示的界面即表明连接成功 接下去 用户可以自行仿真实验 80 CCS5 5集成开发环境 三 创建CCS5 5工程 1 创建工程 欢迎屏幕关闭之后 将会显示下面的工作区 此时可以创建新项目 转到菜单 File New CCSProject 文件 新建 CCS项目 81 CCS5 5集成开发环境 在 ProjectName 项目名称 字段中 键入新项目的名称 若选中 Usedefaultlocation 使用默认位置 选项 默认启用 将会在工作区文件夹中创建项目 取消选中该选项可以选择一个新位置 使用 Browse 浏览 按钮 将项目命名为 Sinewave 在 Target 菜单中选择要使用的芯片类型 在 Connetion 里选择调试器 单击 Finish 完成 创建项目 82 CCS5 5集成开发环境 要为项目创建文件 请在 C C Projects C C 项目 路径 工具栏Window ShowView Other下的C C C C Projects 视图中右键单击项目名称 并选择 New SourceFile 新建 源文件 在打开的文本框中 键入包含与源代码类型对应的有效扩展名 c C cpp c asm s64 s55等 的文件名称 单击 Finish 完成 要向项目添加现有源文件 请在 C C Projects C C 项目 选项卡中右键单击项目名称 并选择 AddFilestoProject 将文件添加到项目 将源文件复制到项目目录 也可以选择 LinkFilestoProject 将文件链接到项目 来创建文件引用 这样可以将文件保留在其原始目录中 如果源代码将文件包含在非常特定的目录结构中 则这是十分必要的 83 CCS5 5集成开发环境 2 生成项目 在创建了项目并且添加或创建了所有文件之后 需要生成项目 只需转到菜单 Project BuildActiveProject 项目 生成活动项目 RebuildActiveProject 重新生成活动项目 选项可重新生成所有源文件和引用的项目 不过如果项目较大 这可能是一个漫长的过程 注意 如果遇到生成错误 而且没有创建可执行文件 屏幕底部的控制台窗口将会显示一条错误或警告消息 并且不会启动调试会话 84 四 工程导入 1 CCS3 3工程的导入在 C C Projects C C 项目 路径 工具栏Window ShowView Other下的C C C C Projects 即 CCSEdit 视图下 单击工具栏的 Project ImportLegacyCCSv3 3Projects 工程 导入CCS3 3工程 85 CCS5 5集成开发环境 86 CCS5 5集成开发环境 如果出现下图的警告 点击 OK 忽略警告 87 CCS5 5集成开发环境 这样CCS3 3的工程就已经导入完成了 下面就是设置导入后工程的属性 路径 工具栏 Window ShowView ProjectExplorer 切换出界面后右击工程选择最后一项Properties 88 CCS5 5集成开发环境 属性编辑需要设置两种属性 一种是修改头文件路径 这里我们把路径修改成绝对路径 见下图所示操作 89 CCS5 5集成开发环境 然后重新添加CCS5 5的头文件路径点击 按钮 在弹出的窗口中点击 Workspace 按钮 如下图所示 在弹出的窗口中将导入的工程展开 选中 Include 文件夹 再单击 OK 即可完成添加头文件路径 如下图所示 添加完成后 在原来的窗口也点击 OK 完成添加 90 CCS5 5集成开发环境 头文件路径添加后 还要再设置个属性 最后属性设置完成 右击工程选择 BuildProject 进行编译 编译完成后 整个导入过程就全部结束 91 CCS5 5集成开发环境 2 CCS高版本工程的导入 由于例程虽然已经是CCS3 3以上的版本 但不可以直接拷贝到 workspace 工作区间 使用 还是需要导入到工作区间才可以使用 下面将介绍如何导入CCS高版本的工程 在 C C Projects C C 项目 路径 工具栏Window ShowView Other下的C C C C Projects 即 CCSEdit 视图下 单击工具栏的 Project ImportCCSProjects 工程 导入CCS工程 92 CCS5 5集成开发环境 在弹出的窗口中作如下操作 注意 如果操作过程中出现和CCS3 3导入时一样的警告时 点击 OK 忽略 完成后 右击工程选择 BuildProject 进行编译 编译完成后 整个导入过程就全部结束 93 CCS5 5集成开发环境 五 CCS5 5的仿真与烧写 首先照第二章所做的说明 建立一个TMS320F28335芯片和XDS100V2 或者XDS100V3 的配置文件 启动并连接上 然后将视图切换到 CCSEdit 下 将导入的工程的CMD文件从 28335 cmd 烧写所用CMD文件 替换成 28335 RAM lnk cmd 仿真所用CMD文件 注意 28335 cmd和28335 RAM lnk cmd两者只能选其一参与编译 否则编译器将无法识别具体的操作空间而出错 然后右击工程选择 BuildProject 进行编译 编译没有错误后会在Workspace 工作区间 的工程文件夹下的Debug文件夹里产生一个 out文件 加载这个 out 文件后即可进行仿真操作 94 CCS5 5集成开发环境 95 CCS5 5集成开发环境 CMD文件更改过后 将视图切换到 CCSDebug 视图下进行工程的加载 步骤 点击 工具栏Run Load LoadProgram 96 CCS5 5集成开发环境 在出现的对话框里进行如下图所示的操作 加载完成后点击运行 即可观察到开发板上的现象 97 CCS5 5集成开发环境 至此 仿真操作已进行完毕 98 CCS5 5集成开发环境 2 CCS5 5的烧写操作 在烧写之前 展开工程下的Debug文件 双击打开 map文件 出现如下图所示的内容 99 CCS5 5集成开发环境 图中蓝底色一行为密码区域使用情况 如果在used于unused一栏下分别为0和08表示密码区域未使用 否则密码区域可能已经被使用 不可以烧写 若强行烧写将导致芯片锁死 此时可以自己重新新建工程编译 CCS6 0的烧写操作与仿真操作一样 只不过将导入的工程的CMD文件从 28335 RAM lnk cmd 仿真所用CMD文件 替换成 28335 cmd 烧写所用CMD文件 注意 28335 cmd和28335 RAM lnk cmd两者只能选其一参与编译 否则编译器将无法识别具体的操作空间而出错 然后右击工程选择 BuildProject 进行编译 编译没有错误后会在Workspace 工作区间 的工程文件夹下的Debug文件夹里产生一个 out文件 加载这个 out 文件即可 不需要点击运行 100 六 CCS5 5中一些常见的功能按钮 CCS5 5中所有功能按钮都可以在工具栏中调出来 这里将一些比较常用的功能按钮拎出并加以介绍 常见的功能按钮可在工具栏中的 View Tools 和 Window ShowView 中调出来 如下图所示 101 CCS5 5集成开发环境 102 CCS5 5集成开发环境 1 加载代码调试器完成目标初始化之后 项目的输出文件 OUT将自动加载到活动目标 并且默认情况下代码将在main 函数处停止 注意 代码将自动写入MSP430 F28x和Stellaris设备闪存中 要配置闪存加载程序属性 请启动调试器并转到菜单 Tools On chipFlash 工具 片内闪存 CCSDebug 调试 视图包含每个芯片核的目标配置和调用堆栈 源代码视图显示了在main 处停止的程序 基本调试功能 运行 停止 步入 步出 复位 位于 CCSDebug 调试 视图的顶部栏中 Target 目标 菜单还有其他几种调试功能 注意 如果目标配置需要先运行脚本再加载代码 将打开 View Console 控制台 视图 这些脚本采用GEL 通用扩展语言 编写而成 在对包含复杂外部内存时序和电源配置的设备进行配置时尤其需要此类脚本 103 CCS5 5集成开发环境 2 监视变量和寄存器在程序加载时还会打开 Variables Expressions 和 Registers 视图 并显示本地和全局变量 104 CCS5 5集成开发环境 在出现的对话框里进行如下图所示的操作 加载完成后点击运行 即可观察到开发板上的现象 105 CCS5 5集成开发环境 3 反汇编以及源代码与汇编代码混合模式默认情况下不会打开反汇编视图 但是可通过转到菜单 View Disassembly 查看 反汇编 查看 106 CCS5 5集成开发环境 反汇编窗口中一个极其有用的功能是源代码与汇编代码混合模式查看器 如上面的屏幕截图所示 要使用此功能 只需在 Disassembly 反汇编 视图中右键单击并选择 ViewSource 查看源代码 107 CCS5 5集成开发环境 4 内存查看器 默认情况下不会打开内存视图 但是可通过转到菜单 View MemoryBrowser 查看 内存浏览 查看 通过此屏幕可访问一些有用的功能 内存可通过多种格式进行查看 可填充任意值 也可保存至PC主机中的二进制文件或从中加载 此外还可以查看所有变量和函数 而且每个内存位置都有上下文相关的信息框 108 CCS5 5集成开发环境 5 管理断点 作为任何调试器都会拥有的最基本功能 CCSv5 5中的断点添加了一系列选项 帮助增加调试进程的灵活性 109 CCS5 5集成开发环境 硬件断点可从IDE直接进行设置 软件断点仅受到设备可用内存的限制 软件断点可设置为无条件或有条件停止 除了停止目标之外 软件断点还可执行其他功能 文件I O传输 屏幕更新等 要设置断点 只需在源代码或反汇编视图中双击代码行即可 硬件或软件断点的图标会指示其状态和放置位置 注意 在优化代码中 有时无法将断点设置到C源代码中确切的某一行 这是因为优化器可能会将代码紧缩起来 从而影响汇编指令和C源代码之间的相关性 110 CCS5 5集成开发环境环境 所有断点 软件 硬件 已启用 已禁用 都可在下图断点查看器中看到 要配置断点 只需右键单击蓝点 或者在断点视图中右键单击并选择 BreakpointProperties 断点属性 使用 Action 操作 可以设置断点的行为 例如保持停止 更新一个或所有调试器视图 从文件中读取数据或将数据写入其中 激活或停用断点组等 使用 SkipCount 跳过计数 可以设置执行断点操作之前通过的数目 使用 Group 分组 可以对断点进行分组以进行高级控制 111 CCS5 5集成开发环境 6 图形显示工具CCSv5 5中提供了一个高级图形和图像可视化工具 它可通过图形形式显示数组 并且可采用多种格式 要添加图形 只需转到菜单 Tools Graph 工具 图形 然后从各种显示选项中选择一个 基于时间的图形 SingleTime 单曲线图 和 DualTime 双曲线图 基于频率的图形 所有FFT选项 图形窗口中的顶部工具栏可控制多种功能 例如更新速率 冻结 连续 目标停止时或手动 缩放 配置属性等 默认情况下 图形窗口会在目标停止时立即更新 使用自动缩放并以样本数显示X轴 以整数值显示Y轴 所有这些选项都可进行设置 注意 请记住 图形更新时所传输的数据量可能会影响目标硬件的实时操作 112 CCS5 5集成开发环境 下面的过程显示了包含正弦波发生器输出内容的图形 在源代码窗口中 右键单击断点蓝点 已在上一部分设置 并选择 BreakpointProperties 断点属性 在 Action 操作 属性中 单击该属性值并选择 RefreshAllWindows 刷新所有窗口 这样将刷新所有窗口 而不是将程序完全停止在该点 变量output 包含16个正弦波发生器输出样本 因此整个缓冲区必须立即显示在图形窗口中 单击 Tools Graph SingleTime 工具 图形 单曲线图 然后将选项配置 113 CCS5 5集成开发环境 屏幕底部应该出现一个图形窗口 如果需要 可通过单击按钮更改图形属性 单击 Run Resume 目标 运行 该图形应该以16个样本为一组分批更新 要查看output数组的实际值 请单击 Watch 监视 选项卡 应当在屏幕右上角部分 然后单击 New 新建 键入output并展开此数组以显示其中的所有值 这些值以16位带符号整数输出 因此可通过调整Q值使其标准化 在 Watch 监视 窗口中选择所有值 右键单击并选择 Q values Q value 15 Q值 Q值 15 如下图所示 114 CCS5 5集成开发环境 7 图像显示工具要显示图像 只需转到菜单 Tools Image 工具 图像 屏幕底部将打开两个视图 Image 图像 和 Properties 属性 CCSv6显示的信息既可以是来自PC主机中的文件 也可以是目标开发板中加载的图像 在属性页面中 只需将 Imagesource 图像源 选项设置为 File 文件 或 ConnectedDevice 连接的设备 即可 与图形查看器类似 需要设置其他所有属性才能使显示内容有意义 彩色障板 线条尺寸和数据宽度等几种选项会影响图像的正确显示 115 CCS5 5集成开发环境 要显示加载至目标的图像 请执行以下操作 转到菜单 View MemoryBroswer 查看 内存 打开内存视图 在地址框中键入有效的目标地址 0 xC0000000 将图像文件加载至0 xC0000000 单击内存操作图标旁边的三角形 然后单击 Load 加载 浏览至下面的目
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五三方借款及保证协议
- 临时工程合同样本
- 个人木炭售卖合同样本
- 劳动派遣用工合同范例
- 亲子超市采购合同样本
- 专利权质押合同二零二五年
- 二零二五公司自然人借款合同
- 个人购车借款合同样本
- 统编版语文四年级上册第五单元教学设计
- 中医馆改造合同标准文本
- T-CTSS 86-2024 原味茶饮料标准
- 南航社会招聘笔试题目
- 北师大版四年级下册小数乘法竖式计算200题及答案
- 燃料电池汽车讲解
- DL∕T 5161.17-2018 电气装置安装工程质量检验及评定规程 第17部分:电气照明装置施工质量检验
- 金蝉养殖注意事项及常见病虫害防治
- SL-T+62-2020水工建筑物水泥灌浆施工技术规范
- 外挂悬挑式花篮盘扣脚手架安全专项施工方案7.17
- CJT 120-2016 给水涂塑复合钢管
- DL-T5344-2018电力光纤通信工程验收规范
- 卢氏结构全文
评论
0/150
提交评论