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 создаётся, но всё-равно с ошибкой
В 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
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/