器件型号: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:目标`全部'不会由于错误而重制。
****构建完成****