跑一个HAL里的adc_example工程,笔记本已编译成功(但是笔记本连板子无反应,所以没法用),到台式机编译的时候出现“XXX(工程文件名).out"文件“not built”。
请问怎么回事,完全一样的代码一样的配置一样的操作。
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.
error #10234-D: unresolved symbols remain
error #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 12
uint8 TEXT1[TSIZE1]= {'\r','\n','|','\t','C','H','.','I','D','=','0','x'};
#define TSIZE2 9
uint8 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 */