Я пытаюсь восстановить проект, который я был вынужден отложить на задний план несколько лет назад, когда M68HC12 был действующим. Я вложил 1000 долларов в создание прототипов, поэтому не хочу начинать с нового чипа, поскольку он является концептуальным проектом.
Попытка загрузить копию m6811-elf-gcc для нового ноутбука DevХорошо, но патчи binutils для веб-сайта 68HC11 404-х и нигде больше не найдены, поэтому я просто скопировал двоичные файлы из резервной копии предыдущего ноутбука dev.
Я использую SuSE linux LEAP 15.0. gcc 7.4.1 и как 2.31.1.20180828-lp150.5.3.
Я продолжал получать 'as: нераспознанный параметр' -m68hc12 '', поэтому я скопировал m6811-elf-as из резервной копии и поместил его в путь. Я все еще получаю ту же ошибку от , что и .
Расшифровывая вывод команды make, я вижу, что она вызывает версию m6811 как:
make -n дает (частично)
но когда я вручную набираю ту же строку, что и make, говорит, что он генерирует, он отлично работает с исходным кодом cc без ошибки «as: unrecognized option» -m68hc12 ».
Таким образом, make говорит, что он выполняет эту строку и получает ошибки, но сама строка этого не делает, когда вводится вручную.
Есть идеи?
любая помощь очень ценится!
Найджел Джонсон
обновление 15 октября: я согласен с тем, что вы говорите, но я не могу понять, как он может вывести m6811-elf-gcc с опцией -n и действительно вызывать как!
Вот вывод make:
T430:/home/nigel/Project - RPT # make
m6811-elf-gcc -m68hc12 -mshort -g -O3 -fno-ident -fno-common -fomit-frame-
pointer -mrelax -mlong-calls -msoft-reg-count=0 -Wall -c -o main.o
main.c
main.c:102: warning: return type defaults to `int'
main.c: In function `main':
main.c:133: warning: implicit declaration of function `atdinit'
main.c:149: warning: control reaches end of non-void function
as: unrecognized option '-m68hc12'
make: *** [<builtin>: main.o] Error 1
T430:/home/nigel/Project - RPT #
Вот make -n:
T430:/home/nigel/Project - RPT # make -n
m6811-elf-gcc -m68hc12 -mshort -g -O3 -fno-ident -fno-common -fomit-frame-pointer -mrelax -mlong-calls -msoft-reg-count=0 -Wall -c -o main.o main.c
m6811-elf-gcc -m68hc12 -mshort -g -O3 -fno-ident -fno-common -fomit-frame-pointer -mrelax -mlong-calls -msoft-reg-count=0 -Wall -c -o tasks.o tasks.c
m6811-elf-gcc -m68hc12 -mshort -g -O3 -fno-ident -fno-common -fomit-frame-pointer -mrelax -mlong-calls -msoft-reg-count=0 -Wall -c -o dtmf.o dtmf.c
m6811-elf-ld -o mcx12.elf -mm68hc12elfb -defsym vectors_addr=0xff80 --relax -L/usr/lib/gcc-lib/m6811-elf/3.3.6-m68hc1x-20060122/m68hc12/mlong-calls/
crt0.o mcx12.o main.o tasks.o dtmf.o -lgcc
m6811-elf-objcopy -O srec --srec-len=32 --change-section-lma .text+0xF0000 --change-section-lma .rodata+0xF0000 --change-section-lma .data+0xF0000 --change-section-lma .vectors+0xF0000 mcx12.elf mcx12.s19
m6811-elf-objdump -S -D mcx12.elf>mcx12.dis
m6811-elf-size mcx12.elf
T430:/home/nigel/Project - RPT #
и мои команды без ошибок для выводаНебольшой файл ассемблера:
T430:/home/nigel/Project - RPT # m6811-elf-as crt0.s -m68hc12
T430:/home/nigel/Project - RPT # m6811-elf-as crt0.s -m68hc12
Обновление 2019-10-18:
ОК, добавил, что в make-файл, и теперь make-файл говорит:
m6811-elf-gcc -v -m68hc12 -mshort -g -O3 -fno-ident -fno-common -fomit-frame-pointer -mrelax -mlong-calls -msoft-reg-count=0 -Wall -c -o main.o main.c
m6811-elf-gcc -v -m68hc12 -mshort -g -O3 -fno-ident -fno-common -fomit-frame-pointer -mrelax -mlong-calls -msoft-reg-count=0 -Wall -c -o tasks.o tasks.c
m6811-elf-gcc -v -m68hc12 -mshort -g -O3 -fno-ident -fno-common -fomit-frame-pointer -mrelax -mlong-calls -msoft-reg-count=0 -Wall -c -o dtmf.o dtmf.c
m6811-elf-ld -o mcx12.elf -mm68hc12elfb -defsym vectors_addr=0xff80 --relax -L/usr/lib/gcc-lib/m6811-elf/3.3.6-m68hc1x-20060122/m68hc12/mlong-calls/ crt0.o mcx12.o main.o tasks.o dtmf.o -lgcc
m6811-elf-objcopy -O srec --srec-len=32 --change-section-lma .text+0xF0000 --change-section-lma .rodata+0xF0000 --change-section-lma .data+0xF0000 --change-section-lma .vectors+0xF0000 mcx12.elf mcx12.s19
m6811-elf-objdump -S -D mcx12.elf>mcx12.dis
m6811-elf-size mcx12.elf
T430:/home/nigel/Project - RPT #
НО:вывод make теперь говорит:
make
m6811-elf-gcc -v -m68hc12 -mshort -g -O3 -fno-ident -fno-common -fomit-frame-pointer -mrelax -mlong-calls -msoft-reg-count=0 -Wall -c -o main.o main.c
Reading specs from /usr/lib/gcc-lib/m6811-elf/3.3.6-m68hc1x-20060122/specs
Reading specs from /usr/lib/gcc-lib/m6811-elf/specs
Configured with: ./configure --target=m6811-elf --program-prefix=m6811-elf- --enable-languages=c,c++,ada --prefix=/usr --host=i686-linux
Thread model: single
gcc version 3.3.6-m68hc1x-20060122 /usr/lib/gcc-lib/m6811-elf/3.3.6-m68hc1x-20060122/cc1 -quiet -v -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=6 -Dmc68hc1x -D__mc68hc1x__ -D__mc68hc1x -D__HAVE_SHORT_INT__ -D__INT__=16 -Dmc6812 -DMC6812 -Dmc68hc12 -D__USE_RTC__main.c -quiet -dumpbase main.c -m68hc12 -mshort -mrelax -mlong- calls -msoft-reg-count=0 -auxbase-strip main.o -g -O3 -Wall -version -fno-dent -fno-common -fomit-frame-pointer -o /tmp/cc0exwc0.s
GNU C version 3.3.6-9s12x-20120502 (m68hc11-elf)
compiled by GNU C version 4.5.1 20100924 (Red Hat 4.5.1-4).
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/lib/gcc-lib/m68hc11-elf/3.3.6-9s12x-20120502/include"
ignoring nonexistent directory "/usr/m68hc11-elf/sys-include"
#include "..." search starts here:
#include <...> search starts here: /usr/m68hc11-elf/include
End of search list.
main.c:102: warning: return type defaults to `int'
main.c: In function `main':
main.c:133: warning: implicit declaration of function `atdinit'
main.c:149: warning: control reaches end of non-void function
as -m68hc12 -mshort -mlong-double -o main.o /tmp/cc0exwc0.
as: unrecognized option '-m68hc12'
make: *** [<builtin>: main.o] Error 1
T430:/home/nigel/Project - RPT #
Я изучу эти несуществующие каталоги и посмотрю, что произойдет, если я скопирую их из резервной копии: -)