Page 8 of 8

Re: Не могу скомпилировать прошивку из исходников

Posted: 03 Jan 2016, 20:14
by yoric
При попытке скомпилировать прошивку из репозитория с опцией -DFUEL_INJECT компилятором IAR получаю следующую ошибку:

Code: Select all

"C:\Program Files (x86)\IAR Systems\Embedded Workbench 7.3/avr/bin/iccavr.exe" -
I "C:\Program Files (x86)\IAR Systems\Embedded Workbench 7.3/avr/inc/dlib" -I "C
:\Program Files (x86)\IAR Systems\Embedded Workbench 7.3/avr/inc" --cpu m644 -DR
EALTIME_TABLES -DTHERMISTOR_CS -DDIAGNOSTICS -DFUEL_PUMP -DREV9_BOARD -DSM_CONTR
OL -DSTROBOSCOPE -DUART_BINARY -DDWELL_CONTROL -DVREF_5V -DBL_BAUD_RATE=57600 -D
UNI_OUTPUT -DAIRTEMP_SENS -DFUEL_INJECT -DLITTLE_ENDIAN_DATA_FORMAT -DENABLE_BIT
_DEFINITIONS -ms -e --initializers_in_flash -s9 --lock_regs 1 --eeprom_size 2048
 --dlib_config "C:\Program Files (x86)\IAR Systems\Embedded Workbench 7.3/avr/li
b/dlib/dlAVR-3s-ec_mul-sf-n.h" sources/injector.c -o output/injector.r90 -lC ./o
utput --dependencies=m ./output

   IAR C/C++ Compiler V6.70.1.929 for Atmel AVR
   Copyright 1996-2015 IAR Systems AB.
   Standalone license - IAR Embedded Workbench for Atmel AVR

  static set_channels_2bnk(void)
         ^
"D:\SECU\secu_source\secu3app\sources\injector.c",171  Error[Pe260]: explicit
          type is missing ("int" assumed)

Errors: 1
Warnings: none
make: *** [output/injector.r90] Error 2
С этими же опциями компилятор GCC компилирует прошивку.

Re: Не могу скомпилировать прошивку из исходников

Posted: 03 Jan 2016, 20:55
by STC
Упущен тип возвращаемого значения (void). Исправлено.

Re: Не могу скомпилировать прошивку из исходников

Posted: 03 Jan 2016, 21:00
by darxfame
yoric wrote:При попытке скомпилировать прошивку из репозитория с опцией -DFUEL_INJECT компилятором IAR получаю следующую ошибку:

Code: Select all

"C:\Program Files (x86)\IAR Systems\Embedded Workbench 7.3/avr/bin/iccavr.exe" -
I "C:\Program Files (x86)\IAR Systems\Embedded Workbench 7.3/avr/inc/dlib" -I "C
:\Program Files (x86)\IAR Systems\Embedded Workbench 7.3/avr/inc" --cpu m644 -DR
EALTIME_TABLES -DTHERMISTOR_CS -DDIAGNOSTICS -DFUEL_PUMP -DREV9_BOARD -DSM_CONTR
OL -DSTROBOSCOPE -DUART_BINARY -DDWELL_CONTROL -DVREF_5V -DBL_BAUD_RATE=57600 -D
UNI_OUTPUT -DAIRTEMP_SENS -DFUEL_INJECT -DLITTLE_ENDIAN_DATA_FORMAT -DENABLE_BIT
_DEFINITIONS -ms -e --initializers_in_flash -s9 --lock_regs 1 --eeprom_size 2048
 --dlib_config "C:\Program Files (x86)\IAR Systems\Embedded Workbench 7.3/avr/li
b/dlib/dlAVR-3s-ec_mul-sf-n.h" sources/injector.c -o output/injector.r90 -lC ./o
utput --dependencies=m ./output

   IAR C/C++ Compiler V6.70.1.929 for Atmel AVR
   Copyright 1996-2015 IAR Systems AB.
   Standalone license - IAR Embedded Workbench for Atmel AVR

  static set_channels_2bnk(void)
         ^
"D:\SECU\secu_source\secu3app\sources\injector.c",171  Error[Pe260]: explicit
          type is missing ("int" assumed)

Errors: 1
Warnings: none
make: *** [output/injector.r90] Error 2
С этими же опциями компилятор GCC компилирует прошивку.
может не все необходимые пакеты для сборки в IAR положили?

Re: Алгоритм управления РХХ (клапан добавочного воздуха)

Posted: 17 Apr 2023, 14:22
by VizorSRF
Попытался вспомнить как компилировать, скачал GCC, установил, что-то забыл, makefile создаётся, но всё-равно с ошибкой
Снимок.PNG
В 80 строке Makefile_gcc не находится OBJ_DIRS?

P.S Создал папку OBJ_DIRS, далее компилятор не может создавать файлы в output :(

Re: Алгоритм управления РХХ (клапан добавочного воздуха)

Posted: 17 Apr 2023, 17:50
by STC
VizorSRF wrote: 17 Apr 2023, 14:22 Попытался вспомнить как компилировать, скачал GCC, установил, что-то забыл, makefile создаётся, но всё-равно с ошибкой
Снимок.PNG

В 80 строке Makefile_gcc не находится OBJ_DIRS?

P.S Создал папку OBJ_DIRS, далее компилятор не может создавать файлы в output :(
Нет, создавать папку не нужно. Это неправильно запускается компилятор или make.exe. Не могу сказать в чем причина.
Я сейчас собираю под linux, под Виндой давно не проверял. Проверь, Makefile должен создаваться.

Re: Алгоритм управления РХХ (клапан добавочного воздуха)

Posted: 17 Apr 2023, 19:08
by STC
Я проверил и нашел причину.
В самом верху файла Makefile_gcc или в Makefile (если он уже создался) замени ./output на output

Ему не нравится вот эта строчка:

Code: Select all

@mkdir -p $(OBJDIR)
Замени ее на:

Code: Select all

if not exist $(OBJDIR) mkdir $(OBJDIR)
Он почему-то перестал понимать опцию -p, а раньше понимал (раньше же работало у меня на Виндовс пока я на linux не перешел). Теперь перестал понимать.

И еще, чтобы корректно работал компилятор нужно чтобы в переменной Path были прописаны пути. Можно не трогать эту переменную в настройках Виндовс, а добавить к ней необходимые значения прямо перед запуском компиляции. Например так:

Code: Select all

set Path=%Path%;C:\avr-gcc-12.1.0-x86-windows\bin
set Path=%Path%;C:\avr-gcc-12.1.0-x86-windows\avr\bin
set Path=%Path%;C:\avr-gcc-12.1.0-x86-windows\avr\lib
C:\avr-gcc-12.1.0-x86-windows\bin\make.exe
Можно поместить эти строки в файл с расширением cmd чтобы каждый раз не набирать эти команды. Если ты запускаешь configure.bat, то можешь прописать эти строчки в нем - в самом верху. Кроме последней строчки (последняя строчка запускает make и подразумевается, что Makefile уже создан).
В папке avr-gcc-12.1.0-x86-windows у меня (у тебя может быть в другом месте) находится компилятор со своими потрохами (называется это все toolchain). Если ты устанавливал его при помощи скрипта, то он скорее всего уже все прописал сам в Path.

Вот тут тоже описано https://tinusaur.com/guides/avr-gcc-toolchain/