Ошибка IAR Workbench [Li005] при копировании файлов между примерами

У меня возникают следующие ошибки:

Ошибка [Li005]: нет определения для «Mfs_Uart_Init» [ссылка из C:\Users\rcorder1\Documents\IAR Embedded
Workbench\GPIO & ADC\arm\8.50.1\Cypress\s6j3200\S6J3260Evl\examples\adc12b\ single_irq_sw\TCFLASH
Debug\Obj\main.o]

Ошибка [Li005]: нет определения для «Mfs_Uart_Write» [ссылка из C:\Users\rcorder1\Documents\IAR Embedded
Workbench\GPIO & ADC\arm\8.50.1\Cypress\s6j3200\S6J3260Evl\examples\adc12b\ single_irq_sw\TCFLASH
Debug\Obj\main.o]

Ошибка [Li005]: нет определения для «Mfs_Uart_Read» [ссылка из C:\Users\rcorder1\Documents\IAR Embedded
Workbench\GPIO & ADC\arm\8.50.1\Cypress\s6j3200\S6J3260Evl\examples\adc12b\ single_irq_sw\TCFLASH
Debug\Obj\main.o]

Пытаюсь "объединить" примеры АЦП и UART для Cypress s6j3200

Использование Windows 10, IAR Arm 8.50.1

Журнал сборки:


Building configuration: single_irq_sw - TCFLASH Debug

Updating build tree...


Linking
ilinkarm.exe C:\Users\rcorder1\Documents\IAR Embedded Workbench\GPIO & ADC\arm\8.50.1\Cypress\s6j3200\
S6J3260Evl\examples\adc12b\single_irq_sw\TCFLASH Debug\Obj\adc12b.o C:\Users\rcorder1\Documents\IAR 
Embedded Workbench\GPIO & ADC\arm\8.50.1\Cypress\s6j3200\S6J3260Evl\examples\adc12b\single_irq_sw\
TCFLASH Debug\Obj\exceptions.o C:\Users\rcorder1\Documents\IAR Embedded Workbench\GPIO & ADC\arm\
8.50.1\Cypress\s6j3200\S6J3260Evl\examples\adc12b\single_irq_sw\TCFLASH Debug\Obj\flash_marker.o C:\
Users\rcorder1\Documents\IAR Embedded Workbench\GPIO & ADC\arm\8.50.1\Cypress\s6j3200\S6J3260Evl\
examples\adc12b\single_irq_sw\TCFLASH Debug\Obj\interrupts.o C:\Users\rcorder1\Documents\IAR Embedded 
Workbench\GPIO & ADC\arm\8.50.1\Cypress\s6j3200\S6J3260Evl\examples\adc12b\single_irq_sw\TCFLASH
Debug\Obj\main.o C:\Users\rcorder1\Documents\IAR Embedded Workbench\GPIO & ADC\arm\8.50.1\Cypress\
s6j3200\S6J3260Evl\examples\adc12b\single_irq_sw\TCFLASH Debug\Obj\mfs_uart.o C:\Users\rcorder1\
Documents\IAR Embedded Workbench\GPIO & ADC\arm\8.50.1\Cypress\s6j3200\S6J3260Evl\examples\adc12b\
single_irq_sw\TCFLASH Debug\Obj\pdl.o C:\Users\rcorder1\Documents\IAR Embedded Workbench\GPIO & ADC\
arm\8.50.1\Cypress\s6j3200\S6J3260Evl\examples\adc12b\single_irq_sw\TCFLASH Debug\Obj\port.o C:\Users\
rcorder1\Documents\IAR Embedded Workbench\GPIO & ADC\arm\8.50.1\Cypress\s6j3200\S6J3260Evl\examples\
adc12b\single_irq_sw\TCFLASH Debug\Obj\start.o C:\Users\rcorder1\Documents\IAR Embedded Workbench\
GPIO & ADC\arm\8.50.1\Cypress\s6j3200\S6J3260Evl\examples\adc12b\single_irq_sw\TCFLASH Debug\Obj\
startup.o C:\Users\rcorder1\Documents\IAR Embedded Workbench\GPIO & ADC\arm\8.50.1\Cypress\s6j3200\
S6J3260Evl\examples\adc12b\single_irq_sw\TCFLASH Debug\Obj\sysctrl.o C:\Users\rcorder1\Documents\IAR 
Embedded Workbench\GPIO & ADC\arm\8.50.1\Cypress\s6j3200\S6J3260Evl\examples\adc12b\single_irq_sw\
TCFLASH Debug\Obj\Traveo_template_version.o --no_out_extension -o C:\Users\rcorder1\Documents\IAR 
Embedded Workbench\GPIO & ADC\arm\8.50.1\Cypress\s6j3200\S6J3260Evl\examples\adc12b\single_irq_sw\
TCFLASH Debug\Exe\single_irq_sw.out --redirect _Printf=_PrintfFullNoMb
--redirect _Scanf=_ScanfFullNoMb --map 
C:\Users\rcorder1\Documents\IAR Embedded Workbench\GPIO & ADC\arm\8.50.1\Cypress\s6j3200\S6J3260Evl\
examples\adc12b\single_irq_sw\TCFLASH Debug\List\single_irq_sw.map
--config C:\Program Files (x86)\IAR 
Systems\Embedded Workbench 8.4\arm\config\linker\Cypress\s6j33xDx.icf
--semihosting --entry 

__iar_program_start --vfe --text_out locale


   IAR ELF Linker V8.50.1.245/W32 for ARM

   Copyright 2007-2020 IAR Systems AB.

Error[Li005]: no definition for "Mfs_Uart_Init" [referenced from C:\Users\rcorder1\Documents\IAR Embedded 
Workbench\GPIO & ADC\arm\8.50.1\Cypress\s6j3200\S6J3260Evl\examples\adc12b\single_irq_sw\TCFLASH
Debug\Obj\main.o]

Error[Li005]: no definition for "Mfs_Uart_Write" [referenced from C:\Users\rcorder1\Documents\IAR Embedded 
Workbench\GPIO & ADC\arm\8.50.1\Cypress\s6j3200\S6J3260Evl\examples\adc12b\single_irq_sw\TCFLASH
Debug\Obj\main.o]

Error[Li005]: no definition for "Mfs_Uart_Read" [referenced from C:\Users\rcorder1\Documents\IAR Embedded 
Workbench\GPIO & ADC\arm\8.50.1\Cypress\s6j3200\S6J3260Evl\examples\adc12b\single_irq_sw\TCFLASH
Debug\Obj\main.o]


  8'058 bytes of readonly  code memory
  1'214 bytes of readonly  data memory
  3'390 bytes of readwrite data memory


Errors: 3
Warnings: none


Link time:   0.08 (CPU)   0.06 (elapsed)
Error while running Linker


Total number of errors: 3
Total number of warnings: 0


Build failed.

person Roberto Cordero    schedule 13.03.2020    source источник
comment
обратитесь в службу поддержки IAR или Cypress.   -  person 0___________    schedule 13.03.2020
comment
Это ошибка компоновщика - вам не удалось связать объектный код с библиотекой, содержащей Mfs_Uart_Init. Вероятно, вы не добавили исходники в проект. Мало кто рискнет скачать ваш zip-архив. Информация должна быть включена в вопрос. Копирование и вставка текста журнала сборки из чистой сборки или перестроения всего, вероятно, будет достаточно для выявления проблемы. Он покажет все, что компилируется и компонуется, и, следовательно, чего не хватает.   -  person Clifford    schedule 14.03.2020
comment
спасибо, я обновлю вопрос и попробую то, что вы предлагаете   -  person Roberto Cordero    schedule 14.03.2020
comment
@RobertoCordero извините, мой комментарий должен был читать ... объектный код *или* библиотеку.....   -  person Clifford    schedule 15.03.2020
comment
Вопрос @Clifford отредактирован, включен журнал сборки   -  person Roberto Cordero    schedule 17.03.2020
comment
Обновление показывает только вызов компоновщика, а не компиляцию. Тем не менее, он включает в себя mfs_uart.o, где, я полагаю, вы ожидаете, что эти отсутствующие символы будут находиться? Возможные варианты: 1) вы использовали комбинацию компиляции C++ и C, и символы имеют компоновку C++, но в основном используется компоновка C, 2) это обратные вызовы, которые вы должны предоставить, 3) исходный код имеет условную компиляцию, которая не была встретился, в результате чего символы были опущены.   -  person Clifford    schedule 18.03.2020
comment
Я не собираюсь вступать в войну правок после того, как вы дважды откатили его, но предположу, что сообщения об ошибках легче читать моноширинным шрифтом, а разметка неуместна. Поскольку это происходит, сообщения повторяются в журнале сборки, поэтому, вероятно, это не нужно. Конечно, в разметке кода можно заключать текст в кавычки.   -  person Clifford    schedule 18.03.2020


Ответы (1)


Решение, которое я нашел, состояло в том, чтобы проверить файл pdl_user.h и убедиться, что в нем есть следующее:

#define PDL_PERIPHERAL_ENABLE_ADC12B  PDL_ON
#define PDL_PERIPHERAL_ENABLE_SYSCTRL PDL_ON
#define PDL_PERIPHERAL_ENABLE_UART0   PDL_ON
#define PDL_PERIPHERAL_ENABLE_PORT    PDL_ON
person Roberto Cordero    schedule 18.03.2020
comment
№ возможности 3 тогда? Вы должны принять свой собственный ответ, который я предлагаю. - person Clifford; 18.03.2020