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/CC1310:CCS/CC1310

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/671814/ccs-cc1310-ccs-cc1310

器件型号:CC1310
Thread 中讨论的其他器件: SYSBIOS

工具/软件:Code Composer Studio

当我构建我的程序时、这个错误会出现、您能帮助我解决这个问题   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您向我们提供的信息很少、因此很难为您提供帮助。

    您需要提供什么类型的信息? 请参阅以下链接:
    software-dl.ti.com/.../ccs_support.html

    您的完整构建输出将非常有用。

    谢谢
    Ki
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    OS 主机的版本为 Windows 10 64位、CCS 的版本为
    7.4.0.00015


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

    "C:\\ti\\ccsv7\\utils\\bin\\gmake"-k -j 2 all -O

    update_version.sh version.h
    Makefile:197:目标"预编译"的配方失败
    Process_begin:CreateProcess (NULL、./update_version.sh ./version.h、...) 失败。
    制造(e=2):最有可读性的电子支票。

    gmaking[1]:[预编译]错误2 (忽略)

    '生成文件:"../easylink/EasyLink.c
    '调用:ARM 编译器'
    "c:/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.7.LTS/bin/armcl -mv7M3 --code_state=16 --float_support=vfplib -me -O4 --opt_for_speed=0 --include_path="C:/Users/berna/workspace_v7/sonde_fw /Users/berna/Desktop/Optomesure/Documentation/livraison/livraison/sonde/sonde --include_path="C:/ti/simplelink_cc13x0_sdk_1_60_00_21/kernel/tirtos/packages/ti/sysbios/posix --include_path="C:/easylink/EasyLink.c --include_path="C:/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.7.LTS/include --use_confirm_defination="ccs_code_board_export=ctrad_export_export_code.combote_board_code.combag_code.comprine_board_code_board_code.prisore_board_code_board_code_board_export=trad_code_board_code.prise_board_export_export=trad_code.prisorit_code_board.transcore_display_code_board.tran.tran_code_board.tran.transcen_code_board.tran_code_board.transcal=-code_board_code_board_export_code_board_export_code_board.trad_

    >>编译失败
    EasyLink/subdir_rules.mk:9:目标'EasyLink/EasyLink.obj 的配方失败
    "../easylink/EasyLink.c、第309行:错误#20:标识符"RF_EventCmdError"未定义
    "./easylink/EasyLink.c "、第445行:错误#20:标识符"RF_EventCmdError"未定义
    "./easylink/EasyLink.c "、第502行:错误#20:标识符"RF_EventCmdError"未定义
    "./easylink/EasyLink.c "、第589行:错误#20:标识符"RF_EventCmdError"未定义
    "../easylink/EasyLink.c、第687行:错误#20:标识符"RF_EventCmdError"未定义
    "./easylink/EasyLink.c "、第750行:错误#20:标识符"RF_EventCmdError"未定义
    "./easylink/EasyLink.c "、第815行:错误#20:标识符"RF_EventCmdError"未定义
    "./easylink/EasyLink.c "、第931行:错误#20:标识符"RF_EventCmdError"未定义
    "../easylink/EasyLink.c、第961行:错误#20:标识符"RF_EventCmdError"未定义
    9在编译"../easylink/EasyLink.c 时检测到错误。
    gmake.1]:***[EasyLink/EasyLink.obj]错误1.
    Makefile:163:目标“全部”的配方失败
    gmake[1]:不会由于错误而重做目标'main-build'。
    gmake:***[全部]错误2.

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

    [引用 user="Abdelkader ZAABOUBI"]"../easylink/EasyLink.c、第309行:错误#20:标识符"RF_EventCmdError"未定义
    "./easylink/EasyLink.c "、第445行:错误#20:标识符"RF_EventCmdError"未定义
    "./easylink/EasyLink.c "、第502行:错误#20:标识符"RF_EventCmdError"未定义
    "./easylink/EasyLink.c "、第589行:错误#20:标识符"RF_EventCmdError"未定义
    "../easylink/EasyLink.c、第687行:错误#20:标识符"RF_EventCmdError"未定义
    "./easylink/EasyLink.c "、第750行:错误#20:标识符"RF_EventCmdError"未定义
    "./easylink/EasyLink.c "、第815行:错误#20:标识符"RF_EventCmdError"未定义
    "./easylink/EasyLink.c "、第931行:错误#20:标识符"RF_EventCmdError"未定义
    "../easylink/EasyLink.c、第961行:错误#20:标识符"RF_EventCmdError"未定义[/quot]

    这是一条常见的错误消息。 有关更多说明、请参阅以下链接:

    https://e2e.ti.com/support/development_tools/code_composer_studio/f/81/t/568592

    因此、您需要包含定义 RF_EventCmdError 的头文件。  

    谢谢

    Ki

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的支持
    请告诉我如何包含 RF_EventCmdError 以及我可以在哪里更改它、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是我的代码:

    *==== rfEasyLinkTx.c ===
    *
    /* XDCtools 头文件*/
    #include
    #include
    #include
    #include

    /* BIOS 头文件*/
    #include
    #include
    #include

    /* TI-RTOS 头文件*/
    #include
    #include

    #include
    #include
    #include
    #include

    /*板头文件*/
    #include "Board.h"

    /* EasyLink API 头文件*/
    #include "EasyLink/EasyLink.h"


    #include "sc/scif.h"

    #include "version.h"
    #include "../sonde_gw_FW/sys_intf.h"

    #include
    #include

    #define RFEASINKTX_TASK_STACK_SIZE 1024
    #define RFEASINKTX_TASK_PRIORITY 2.

    #define RFEASINKTX_BURST_SIZE 1

    Task_Structt txTask;//不是静态的,因此可以在 ROV 中看到*/
    静态 Task_Params txTaskParams;
    静态 uint8_t txTaskStack[RFEASINKTX_TASK_STACK_SIZE];

    Task_StructsensorTask;//不是静态的,因此可以在 ROV 中看到*/
    静态 Task_Params sensorTaskParams;
    静态 uint8_t sensorTaskStack[RFEASINKTX_TASK_STACK_SIZE];


    静态 PIN_STATE 引脚状态;
    静态 PIN_Handle PIN_Handle;

    typedef 结构{
    uint8_t 原因;
    内部16_t TEMP_DEG_FRAC_8;
    uint8_t BAT_20mV;
    } opto_sonde_data_t;

    CONST int OPTOSONDE_BARD_TEMP_SENSOR_THRESHOLD = 1500 * 1000;// 1.5V
    //#define OPTOSONDE_DEMO_MODE 1.


    PIN_Config pinTable[]={
    PIN_ID (8)| PIN_INPUT_EN | PIN_PULLUP | PIN_迟滞、
    PIN_TERMINATE
    };

    void sleepAndReset (uint32_t sleep_time_s){

    //启用按钮中断唤醒
    PIN_setInterrupt (PIN_Handle、PIN_ID (8)| PIN_IRQ_NEGEDGE);

    uint32_t s = sleep_time_s;
    while (秒> 0)

    uint32_t SLEEP_s =秒> 2000? 2000:秒;
    Task_sleep ((sleep_s * 1000u * 1000)/ Clock_tickPeriod);
    secs --sleep_s;


    SysCtrlSystemReset();


    静态空 rfEasyLinkTxFnx (UArg0、UArgarg1)


    opto_sonde_data_t* optosonde_data =(opto_sonde_data_t*) arg0;
    // rtc_cmd_t* rtc_cmd = arg1;

    // EasyLink_init (EasyLink_Phy_625bpsLrm);
    // EasyLink_init (EasyLink_Phy_5kbpsSlLr);
    EasyLink_init (EasyLink_Phy_Custom);

    /*
    *如果您希望使用默认频率以外的频率、请使用
    *以下 API:
    * EasyLink_setFrequency (868000000);
    *

    /*将输出功率设置为12dBm */
    // EasyLink_setRfPwr (12);
    EasyLink_setRfPwr (10);

    EasyLink_TxPacket txPacket;

    //填充数据包数据
    uint8_t PAYLOAD_ptr = 0;
    //有效载荷版本
    txPacket.PAYLOAD[PAYLOAD_PTR++]=(uint8_t)(0x0);
    // src MAC
    EasyLink_getIeeAddr (&txPackage.PAYLOAD[PAYLOAD_PTR]);
    PAYLOAD_PTR += 8;

    //复制数据
    txPacket.PAYLOAD[PAYLOAD_PTR++]=(uint8_t)(optosonde_data->原因);
    txPacket.PAYLOAD[PAYLOAD_PTR++]=(uint8_t)(optosonde_data->temp_deg_FRAC_8 >> 8);
    txPacket.PAYLOAD[PAYLOAD_PTR++]=(uint8_t)(optosonde_data->temp_deg_FRAC_8);

    txPacket.PAYLOAD[PAYLOAD_PTR++]=(uint8_t)(optosonde_data->bat_20mV);

    //固件版本
    memcpy (&txPacket.PAYLOAD[PAYLOAD_PTR]、&version_hash、sizeof (version_hash));
    PAYLOAD_PTR += sizeof (version_hash);

    txPacket.len = PAYLOAD_PTR;
    txPacket.absTime = 0;
    txPacket.dstAddr[0]= OPTOSONDE_ADDR;

    EasyLink_Status 结果= EasyLink_transmit (&txPacket);

    if (结果=EasyLink_Status_Success)

    /*切换 LED1以指示 TX */
    // PIN_setOutputValue (pinHandle、Board_PIN_LED1、!PIN_getOutputValue (Board_PIN_LED1));

    其他

    /*切换 LED1和 LED2以指示错误*/
    // PIN_setOutputValue (pinHandle、Board_PIN_LED1、!PIN_getOutputValue (Board_PIN_LED1));
    // PIN_setOutputValue (pinHandle、Board_PIN_LED2、!PIN_getOutputValue (Board_PIN_LED2));


    //防止按钮重置过载
    if (optosonde_data->reason = optosonde_reason_button){
    Task_sleep (1000000 / Clock_tickPeriod);


    //将 RTC 设置为休眠状态
    #ifdef OPTOSONDE_DEMO_MODE
    uint32_t SLEEP_TIME_s = 30;
    #Elif OPTOSONDE_VITICODE
    uint32_t SLEEP_TIME_s = 10 * 60;
    其他
    uint32_t SLEEP_TIME_s = 1 * 3600;
    #endif

    sleepAndReset (SLEEP_TIME_s);


    void sendorTask_AlertCB()

    static opto_sonde_data_t optosonde_data;


    /*清除警报中断源*/
    scifClearAlertIntSource();

    /*仅处理定期事件警报*/
    if (scifGetAlertEvents ()&(1 << SCIF_ADCMEAS_TASK_ID))

    optosonde_data.reason = optosonde_reason_periodic;
    /*获取 SCE"输出"结构*/
    SCIF_ADCMEAS_OUTPSI_T* pOutput = scifGetTaskStruct( scif_ADCMEAS_TASK_ID、SCIF_STRUCT_OUTPUT );

    int32_t adcVal_uV[5];
    int i;
    对于(i = 0;i < 4;i++){
    adcVal_uV[i]= AUXADCValueToMicrovoltage (AUXADC_FIXED_REF_VOLTAGE_NORMAL、AUXADCstValueForGainAndOffset (pOutput->ntcraw[i]、AUXADCGetAdjustmentGain (AUXADC_REF_FIXED)、AUXADCGetAdjustmentOffset (AUXADC_REF_FIXED);固定)

    adcVal_uV[4]= 0;

    Int validMeasIdx;

    对于(validMeasIdx = 0;validMeasIdx < 4;validMeasIdx++){
    if (adcVal_uV[validMeasIdx]> OPTOSONDE_BARD_TEMP_SENSOR_THRESHOLD){
    if (validMeasIdx == 3){
    //传感器已死
    optosonde_data.reason = optosonde_reason_sensorfail;

    }否则{
    中断;



    const int32_t ptcR = adcVal_uV[validMeasIdx]/ pOutput->ntcIuA[validMeasIdx];

    const double ptcB25_100 = 3950;
    const double rinf = 0.1763226979;// rinf = R0 * exp (-B/T0)

    // T = B/ln (R / Rnuf)
    double ptcTemp = ptcB25_100 / log (ptcR / rinf)- 273.15;
    optosonde_data.temp_deg_FRAC_8 =(int16_t)(ptcTemp * 256);

    while (!AONBatMonNewBatteryMeasureReady())

    //等待
    Task_sleep (1000 * 1000 / Clock_tickPeriod);

    optosonde_data.bat_20mV =(AONBatMonBatteryVoltageGet ()* 390625)/ 2000000;
    AONBatMonDisable();

    if (PIN_getInputValue (IOID_8)=0){
    optosonde_data.reason = optosonde_reason_button;


    // Init Tx 任务
    Task_Params_init (&txTaskParams);
    TxTaskParams.STACKSIZE = RFEASYS LINKTX_TASK_STACK_SIZE;
    txTaskParams.priority = RFEASINKTX_TASK_priority + 1;
    txTaskParams.stack =&txTaskStack;
    txTaskParams.arg0 =(XDC_UArg) optosonde_data (&O);

    Task_construction (&txTask、rfEasyLinkTxFnx、&txTaskParams、NULL);


    其他

    //传感器失败
    压摆与复位(10 * 60);


    /*确认警报事件*/
    scifAckAlertEvents ();
    scifUninit();


    void sensorTask_fn (UArg0、UArgarg1)

    AONBatMonEnable();

    scifOsalInit();
    scifOsalRegisterTaskAlertCallback (sendorTask_AlertCB);
    scifInit (&scifDriverSetup);
    scifExecuteTasksOnceNbl (1 << SCIF_ADCMEAS_TASK_ID);


    void pinint (PIN_Handle handle、PIN_ID pinId){
    if (pinId = 8){
    //强制复位以触发测量和 TX
    SysCtrlSystemReset();



    /*
    *==== main ====
    *
    int opto_main (void)

    /*调用驱动程序初始化函数。 *
    Board_initGeneral();

    PIN_Handle = PIN_OPEN (&pinState、pinTable);

    PIN_registerIntCb (PIN_Handle、PinInt);

    //传感器任务
    Task_Params_init (&sensorTaskParams);
    TxTaskParams.STACKSIZE = RFEASYS LINKTX_TASK_STACK_SIZE;
    txTaskParams.priority = RFEASINKTX_TASK_priority;
    txTaskParams.stack = sensorTaskStack;
    txTaskParams.arg0 = 0;
    txTaskParams.arg1 = 0;

    Task_construction (&sensorTask、sensorTask_fn、&sensorTaskParams、NULL);


    /*启动 BIOS */
    BIOS_start();

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

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

    [引用 user="Abdelkader ZAABOUBI"]请向我展示如何包含 RF_EventCmdError 以及我可以在何处更改它[/引用]

    您知道它定义了哪个头文件吗? 如果是这样、您需要将头文件包含到使用它的源文件中。 如果您不知道哪个头文件、并且您正在使用 SDK 中的 TI 示例之一、那么器件论坛中的专家将会是最了解的。