TI中文支持网
TI专业的中文技术问题搜集分享网站

TMDX570LC43HDK烧录程序出现.out问题

跑一个HAL里的adc_example工程,笔记本已编译成功(但是笔记本连板子无反应,所以没法用),到台式机编译的时候出现“XXX(工程文件名).out"文件“not built”。

请问怎么回事,完全一样的代码一样的配置一样的操作。

Fan Yin:

error #10234-D: unresolved symbols remainerror #10010: errors encountered during linking; "adc_3301.out" not built

/** @example example_adcDisplay.c*   This is an example which describes the steps to create an example application which*   configures ADC to start conversion ona GIO trigger and display it over an uart .*   The digital value can be viewed on a pc terminal with the uart configures @ 9600*   no parity ,2 stop bits.***   @b Step @b 1:**   Create a new project.**   Navigate: -> File -> New -> Project**   @image html example_createProject.JPG "Figure: Create a new Project"**   @b Step @b 2:**   Configure driver code generation:*   – Enable GIO driver*   – Enable SCI driver*   – Enable ADC driver*   – Disable others**   Navigate: -> TMS570LCxx /RM5x -> Enable Drivers**   @image html adcDisplay_enabledriver.JPG "Figure: SCI Enable Driver"***   @b Step @b 3:**   Navigate: -> TMS570LCxx /RM5x -> ADC**   Configure ADC General :**   @image html adcDisplay1.JPG "Figure: ADC General Configuration"***   @b Step @b 4:**   Configure ADC Group1 :**   – Configure ADC Group 1 with "Hardware trigger" source as "GIOB0" at "Rising edge"*   – Enable ADC1 Group 1 channel selection Pin 0 and Pin 1**   @image html adcDisplay2.JPG "Figure: ADC Group Configuration"**   @b Step @b 5:**   Configure SCI:*   – Configure SCI baudrate as 9600**   Navigate: -> TMS570LCxx /RM5x -> ADC**   @image html sci_uart1.JPG "Figure: SCI Configuration"**   @b Step @b 6:**   Copy the source code below into your sys_main.c or replace sys_main.c with this file.**   The example file can also be found in the examples folder: ../HALCoGen/examples**   @note HALCoGen generates an empty main function in sys_main.c,*         please make sure that you link in the right main function or copy the source into the user code sections of this file.***//* USER CODE BEGIN (0) *//* USER CODE END *//* Include Files */#include "HL_sys_common.h"#include "HL_system.h"/* USER CODE BEGIN (1) */#include "HL_esm.h"#include "HL_adc.h"#include "HL_sci.h"#include "HL_gio.h"#define  TSIZE1 12uint8  TEXT1[TSIZE1]= {'\r','\n','|','\t','C','H','.','I','D','=','0','x'};#define  TSIZE2 9uint8  TEXT2[TSIZE2]= {'\t','V','A','L','U','E','=','0','x'};adcData_t adc_data[2];void sciDisplayText(sciBASE_t *sci, uint8 *text, uint32 length);void sciDisplayData(sciBASE_t *sci, uint8 *text,uint32 length);void wait(uint32 time);/* USER CODE END *//** @fn void main(void)*   @brief Application main function*   @note This function is empty by default.**   This function is called after startup.*   The user can use this function to implement the application.*//* USER CODE BEGIN (2) *//* USER CODE END */void main(void){/* USER CODE BEGIN (3) */       uint32 ch_count=0;        uint32 id    =0;        uint32 value =0;        /* initialize gio     */        gioInit();        gioSetDirection(gioPORTB, 1);        /* initialize sci/sci-lin  : even parity , 2 stop bits */        sciInit();        /* initialize ADC  */        /* Group1 -> Channel 0 and 1                        */        /* HW trigger trigger source as GIOB  Pin 0         */        adcInit();        /* start adc conversion */        adcStartConversion(adcREG1,adcGROUP1);        while(1) /* … continue forever */        {            /* trigger using gio port b, pin 0  */            gioSetBit(gioPORTB, 0, 1);            /* … wait and read the conversion count */            while((adcIsConversionComplete(adcREG1,adcGROUP1))==0);            ch_count = adcGetData(adcREG1, adcGROUP1,&adc_data[0]);            ch_count = ch_count;            /* conversion results :                                       */            /* adc_data[0] -> should have conversions for Group1 channel1 */            /* adc_data[1] -> should have conversions for Group1 channel2 */            id    = adc_data[0].id;            value = adc_data[0].value;            gioSetBit(gioPORTB, 0, 0);            sciDisplayText(sciREG1,&TEXT1[0],TSIZE1);   /* send text 1 */            sciDisplayData(sciREG1,(uint8*)&id,4);    /* send data 1 */            sciDisplayText(sciREG1,&TEXT2[0],TSIZE2);   /* send text 2 */            sciDisplayData(sciREG1,(uint8*)&value,4); /* send data 2 */            id    = adc_data[1].id;            value = adc_data[1].value;            sciDisplayText(sciREG1,&TEXT1[0],TSIZE1);   /* send text 1 */            sciDisplayData(sciREG1,(uint8*)&id,4);    /* send data 1 */            sciDisplayText(sciREG1,&TEXT2[0],TSIZE2);   /* send text 2 */            sciDisplayData(sciREG1,(uint8*)&value,4); /* send data 2 */            wait(0xFFFFF);        };/* USER CODE END */}/* USER CODE BEGIN (4) */void sciDisplayData(sciBASE_t *sci, uint8 *text,uint32 length){    uint8 txt = 0;    uint8 txt1 = 0;#if ((__little_endian__ == 1) || (__LITTLE_ENDIAN__ == 1))text = text + (length -1);#endif    while(length–)    {#if ((__little_endian__ == 1) || (__LITTLE_ENDIAN__ == 1))        txt = *text–;#else        txt = *text++;#endif        txt1 = txt;        txt  &= ~(0xF0);        txt1 &= ~(0x0F);        txt1  =txt1>>4;        if(txt<=0x9)        {            txt +=0x30;        }        else if(txt > 0x9 && txt < 0xF)        {            txt +=0x37;        }        else        {            txt = 0x30;        }        if(txt1 <= 0x9)        {            txt1 +=0x30;        }        else if((txt1 > 0x9) && (txt1 <= 0xF))        {            txt1 +=0x37;        }        else        {            txt1 = 0x30;        }        while ((sciREG1->FLR & 0x4) == 4); /* wait until busy */        sciSendByte(sciREG1,txt1);      /* send out text   */        while ((sciREG1->FLR & 0x4) == 4); /* wait until busy */        sciSendByte(sciREG1,txt);      /* send out text   */    };}void sciDisplayText(sciBASE_t *sci, uint8 *text,uint32 length){    while(length–)    {        while ((sciREG1->FLR & 0x4) == 4); /* wait until busy */        sciSendByte(sciREG1,*text++);      /* send out text   */    };}void wait(uint32 time){    while(time){time–;};}/* USER CODE END */

Ken Wang:

回复 Fan Yin:

你的两行错误信息显示在你的程序里面有不能识别的字符。

你可以把你 的错误信息都贴出来看看,它会告诉你具体是哪个不能识别的。

谢谢

gaoyang9992006:

回复 Fan Yin:

这个问题比较简单,可能是头文件没有包含进来,如果包含进来了,看看软件配置,是不是把那个文件包含进来了,如果编译器找不到路径,就会出现这种情况,某个变量是在某个头文件里的。建议把所有的相关头文件放到项目文件里。

Fan Yin:

回复 Ken Wang:

肯定不是您说的这个原因。。我怀疑是操作系统问题,因为我在XP机子里就出现这个问题,在win7系统运行同样的程序同样的配置同样的操作就能顺利编译

不过也没事了,我在第三台电脑调试成功了(一把泪,这板子和软件太娇贵了,下个程序要半年)

顺便说下,HAL例程里的adc_example,自动生成的start什么什么.c文件有bug,第79行需要注释掉end if才能编译通过。

Ken Wang:

回复 Fan Yin:

板子的调试器比较慢哈,XP的操作系统用的比较少,公司默认都是用Win7的环境。

谢谢

赞(0)
未经允许不得转载:TI中文支持网 » TMDX570LC43HDK烧录程序出现.out问题
分享到: 更多 (0)