This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/CCSTUDIO-C2000:Blinky 示例问题

Guru**** 2540720 points
Other Parts Discussed in Thread: CONTROLSUITE

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/596697/ccs-ccstudio-c2000-blinky-example-problem

器件型号:CCSTUDIO-C2000

工具/软件:Code Composer Studio

我是第一次使用 CCSV5、并希望运行闪烁示例。  当我尝试构建项目时、我遇到了一些错误。  

错误#10234-D:未解析的符号仍然存在
错误#10010:链接期间遇到错误;未生成"Blinky.out"

以下是程序和控制台输出  

 

//######################################################################################################################
//
//! addtogroup f2806x_example_list
//!

基于计时器的闪烁 LED (TIMEING_LED_BLINK)


//!
//! 此示例将 CPU Timer0配置为500毫秒的周期、并切换 GPIO34
//! 每个中断一次 LED 指示灯。 为了进行测试、本示例
//! 每次定时器发出中断时、计数器也会递增。
//!
//! b 监视\b 变量\n
//! - CpuTimer0.InterruptCount
//!
//! b 外部连接\n
//! 监控 GPIO34 LED 闪烁(持续500毫秒)和熄灭(持续500毫秒)
//! 2806x 控制卡。
//
//######################################################################################################################
//$TI 版本:F2806x C/C++头文件和外设示例 V150 $
//$Release Date:2015年6月16日$
//版权所有:版权所有(C) 2011-2015 Texas Instruments Incorporated -
// http://www.ti.com/ 保留所有权利$
//######################################################################################################################


#include "DSP28x_Project.h"//器件头文件和示例 include 文件

//此文件中找到的函数的原型语句。
_interrupt void CPU_timer0_ISR (void);

void main (void)

//步骤1. 初始化系统控制:
// PLL、安全装置、启用外设时钟
//此示例函数位于 F2806x_SYSCTRL.c 文件中。
InitSysCtrl();

//步骤2. 初始化 GPIO:
//此示例函数位于 F2806x_GPIO.c 文件和中
//说明了如何将 GPIO 设置为其默认状态。
// InitGpio();//针对此示例跳过


//步骤3. 清除所有中断并初始化 PIE 矢量表:
//禁用 CPU 中断
Dint;

//将 PIE 控制寄存器初始化为默认状态。
//默认状态为禁用所有 PIE 中断和标志
//被清除。
//此函数位于 F2806x_PIECTRL.c 文件中。
InitPieCtrl();

//禁用 CPU 中断并清除所有 CPU 中断标志:
IER = 0x0000;
IFR = 0x0000;

//使用指向 shell 中断的指针初始化 PIE 矢量表
//服务例程(ISR)。
//这将填充整个表,即使是中断也是如此
//在本例中未使用。 这对于调试很有用。
//可以在 F2806x_DefaultIsr.c 中找到 shell ISR 例程
//此函数可在 F2806x_PieVect.c 中找到
InitPieVectTable();

//此示例中使用的中断被重新映射到
//此文件中的 ISR 函数。
EALLOW;//这是写入 EALLOW 受保护寄存器所必需的
PieVectTable.TINT0 =&CPU_timer0_ISR;
EDIS;//这是禁止写入 EALLOW 受保护寄存器所必需的

//步骤4. 初始化器件外设。 该函数可以是
//可在 F2806x_CpuTimers.c 中找到
InitCpuTimer();//对于此示例,只初始化 CPU 计时器
//将 CPU 定时器0配置为每500毫秒中断一次:
// 80MHz CPU 频率,50毫秒周期(以 uSeconds 为单位)
ConfigCpuTimer (&CpuTimer0、80、50000);


//为了确保精确的时序,使用只写指令写入整个寄存器。 因此、如果有的话
配置位的//在 ConfigCpuTimer 和 InitCpuTimers (在 F2806x_CpuTimer.h 中)中更改、
//下面的设置也必须更新。

CpuTimer0Regs.TCR.ALL = 0x4001;//使用只写指令将 TSS 位设置为0

//步骤5. 特定于用户的代码、启用中断:

//将 GPIO34配置为 GPIO 输出引脚
EALLOW;
GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0;
GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1;
EDIS;

//启用连接到 CPU 定时器0的 CPU INT1:
IER |= M_INT1;

//在 PIE 中启用 TINT0:组1中断7
PieCtrlRegs.PIEIER1.bit.INTx7=1;

//启用全局中断和更高优先级的实时调试事件:
EINT;//启用全局中断 INTM
ERTM;//启用全局实时中断 DBGM

//步骤6. 空闲循环。 只需坐下来循环(可选):
for (;;);


_interrupt void CPU_timer0_ISR (void)

CpuTimer0.InterruptCount++;
GpioDataRegs.GPBTOGGLE.bit.GPIO34 = 1;//每500毫秒切换一次 GPIO34
//确认此中断以从组1接收更多中断
PieCtrlRegs.PIEACX.ALL = PIEACK_Group1;


//============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
//不再需要。
//============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

构建控制台文本  


****为项目 Blinky 构建配置调试****

C:\ti\ccsv5\utils\bin.gmake -k all
'建筑目标:Blinky.out'
'调用:C2000链接器'
"c:/ti/ccsv5/tools/compiler/c2000_6.2.0/bin/cl2000 /ti/controlSUITE/device_support/f2806x/v151/F2806x_headers/source /ti/controlSUITE/device_support/f2806x/v151/F2806x_common/source -v28 -ml -mt --cla_support=cla0 -float_support=fpu32 -vcu_support=vcu0 -g -diag_warning=225 -display_error_number -diag_wrap=off -z -m"Blinky .map"--vstack_size=0x300 -diag_warn="-exclus_ram_ram_isclo-display_ine-ine-ram_ram_clo-display_ram_ram_ram_clus.ine-ine-intrack_clude"-/ti/ccsv5/tools/compiler/c2000_6.2.0/lib /ti/ccsv5/tools/compiler/c2000_6.2.0/include -ine.clo-display_clo-display_ram_ram_ram_ram_ram_clo-display_clus.ine.clink_clo-display_lib_clude"-clo-ram_clo-ram_ram_ram_clo-ine.t_clo-ine.clo-ine.clink_clink_clo-

未定义的首次引用
符号
------ --------
_ConfigCpuTimer ./example_2806xLEDBlink.obj
_CpuTimer0 ./example_2806xLEDBlink.obj
_CpuTimer0Regs ./example_2806xLEDBlink.obj
_GpioCtrlRegs ./example_2806xLEDBlink.obj
_GpioDataRegs ./example_2806xLEDBlink.obj
InitCpuTimers ./example_2806xLEDBlink.obj
InitPieCtrl ./example_2806xLEDBlink.obj
InitPieVectTable ./example_2806xLEDBlink.obj
InitSysCtrl ./example_2806xLEDBlink.obj
_PieCtrlRegs ./example_2806xLEDBlink.obj
_PieVectTable ./example_2806xLEDBlink.obj

>>编译失败

错误#10234-D:未解析的符号仍然存在
错误#10010:链接期间遇到错误;未生成"Blinky.out"
gmake:***[Blinky.out]错误1.
gmake:目标`全部'不会由于错误而重制。

****构建完成****

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Javad、

    您如何以及从何处导入此示例代码?

    此致、
    Gautam
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Gautam、

    感谢您的回复
    我从导入了示例
    C:\ti\controlSUITE\device_support\f2806x\v151\F2806x_examples_ccsv5\timed_led_blink

    此外、我为 include 文件添加了以下路径、
    C:\ti\controlSUITE\device_support\f2806x\v150\F2806x_common\include
    C:\ti\controlSUITE\device_support\f2806x\v150\F2806x_headers\include

    我在下面的地址中阅读了 froum 讨论内容、但我不知道是否需要设置源文件路径、如果需要、我该怎么做?

    e2e.ti.com/.../1582193

    此致、
    Javad
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Javad、

    如果您只需从 controlSUITE 导入项目、则不必包含任何文件夹。 直接构建这些项目。 Project 选项卡-> Import CCS Project -> Browse and Import。

    此致、
    Gautam