Ardupilot Sik (прошивка для Si1000) ошибка установки - PullRequest
0 голосов
/ 25 февраля 2019

При запуске make install в папке с прошивкой https://github.com/ArduPilot/SiK/tree/8a690a28647ee6085e7dce456ab3963a350acb2d на OSX я получаю:

% build bootloader for hm_trp
obj/hm_trp/bootloader~hm_trp/bootloader.dep:1: *** missing separator.  Stop.
make: *** [build~bootloader~hm_trp] Error 2

Похоже, что это проблема форматирования Makefile, но я не смог заложить, можетруки на него.

При удалении каталога obj, созданного под прошивкой и работающего make install снова я сталкиваюсь с:

Ошибка в OSX

% build bootloader for hm_trp
CC bootloader/bootloader.c
bootloader/bootloader.c:102: error 158: overflow in implicit constant conversion
make[1]: *** [obj/hm_trp/bootloader~hm_trp/bootloader.rel] Error 1
make: *** [build~bootloader~hm_trp] Error 2

Подробная ошибка в OSX

% build bootloader for hm_trp
AS bootloader/crtstart.asm
cp bootloader/crtstart.asm .//obj/hm_trp/bootloader~hm_trp/crtstart.asm
sdas8051 -jloscp  .//obj/hm_trp/bootloader~hm_trp/crtstart.asm
(/bin/echo -n .//obj/hm_trp/bootloader~hm_trp/ && sdcc -mmcs51 -MM -DBL_VERSION=2 --model-small --no-xinit-opt --opt-code-size --Werror -DBOARD_hm_trp -I.//include -V bootloader/bootloader.c) > obj/hm_trp/bootloader~hm_trp/bootloader.dep
CC bootloader/bootloader.c
sdcc -mmcs51 -c -o obj/hm_trp/bootloader~hm_trp/bootloader.rel -DBL_VERSION=2 --model-small --no-xinit-opt --opt-code-size --Werror -DBOARD_hm_trp -I.//include -V bootloader/bootloader.c
+ /usr/local/bin/sdcpp -nostdinc -Wall -std=c11 -DBL_VERSION=2 -Werror -DBOARD_hm_trp -I.//include -obj-ext=.rel -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_SMALL -D__SDCC_FLOAT_REENT -D__SDCC=3_8_0 -D__SDCC_VERSION_MAJOR=3 -D__SDCC_VERSION_MINOR=8 -D__SDCC_VERSION_PATCH=0 -DSDCC=380 -D__SDCC_REVISION=10562 -D__SDCC_mcs51 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem /usr/local/bin/../share/sdcc/include/mcs51 -isystem /usr/local/share/sdcc/include/mcs51 -isystem /usr/local/bin/../share/sdcc/include -isystem /usr/local/share/sdcc/include  bootloader/bootloader.c 
bootloader/bootloader.c:102: error 158: overflow in implicit constant conversion
make[1]: *** [obj/hm_trp/bootloader~hm_trp/bootloader.rel] Error 1
make: *** [build~bootloader~hm_trp] Error 2

Я также пытался выполнить установку на linux, и она выдает:

Ошибка в Linux

% build bootloader for rfd900a
make[1]: Entering directory 'SiK/Firmware'
AS bootloader/crtstart.asm
CC bootloader/bootloader.c
bootloader/bootloader.c:102: error 158: overflow in implicit constant conversion
make[1]: *** [include/rules.mk:135: obj/rfd900a/bootloader~rfd900a/bootloader.rel] Error 1
make[1]: Leaving directory 'SiK/Firmware'
make: *** [Makefile:95: build~bootloader~rfd900a] Error 2

Подробная ошибка в Linux

% build bootloader for rfd900a
make[1]: Entering directory 'SiK/Firmware'
AS bootloader/crtstart.asm
cp bootloader/crtstart.asm .//obj/rfd900a/bootloader~rfd900a/crtstart.asm
sdas8051 -jloscp  .//obj/rfd900a/bootloader~rfd900a/crtstart.asm
(/bin/echo -n .//obj/rfd900a/bootloader~rfd900a/ && sdcc -mmcs51 -MM -DBL_VERSION=2 --model-small --no-xinit-opt --opt-code-size --Werror -DBOARD_rfd900a -I.//include -V bootloader/bootloader.c) > obj/rfd900a/bootloader~rfd900a/bootloader.dep
CC bootloader/bootloader.c
sdcc -mmcs51 -c -o obj/rfd900a/bootloader~rfd900a/bootloader.rel -DBL_VERSION=2 --model-small --no-xinit-opt --opt-code-size --Werror -DBOARD_rfd900a -I.//include -V bootloader/bootloader.c
+ /usr/bin/sdcpp -nostdinc -Wall -std=c11 -DBL_VERSION=2 -Werror -DBOARD_rfd900a -I.//include -obj-ext=.rel -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_SMALL -D__SDCC_FLOAT_REENT -D__SDCC=3_8_0 -D__SDCC_VERSION_MAJOR=3 -D__SDCC_VERSION_MINOR=8 -D__SDCC_VERSION_PATCH=0 -DSDCC=380 -D__SDCC_REVISION=10562 -D__SDCC_mcs51 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem /usr/bin/../share/sdcc/include/mcs51 -isystem /usr/share/sdcc/include/mcs51 -isystem /usr/bin/../share/sdcc/include -isystem /usr/share/sdcc/include  bootloader/bootloader.c 
bootloader/bootloader.c:102: error 158: overflow in implicit constant conversion
make[1]: *** [include/rules.mk:135: obj/rfd900a/bootloader~rfd900a/bootloader.rel] Error 1
make[1]: Leaving directory 'SiK/Firmware'
make: *** [Makefile:95: build~bootloader~rfd900a] Error 2

https://github.com/ArduPilot/SiK/blob/master/Firmware/bootloader/bootloader.c#L102

1 Ответ

0 голосов
/ 01 апреля 2019

Понижение SDCC решает проблемы.Чек https://github.com/ArduPilot/SiK/issues/50#issuecomment-467874478.

...