QuadMan 0 26 июня, 2020 Опубликовано 26 июня, 2020 · Жалоба Подскажите, кто знает. Пытаюсь запустить LEON3, бесплатную версию, которая без поддержки FPU. Как при компиляции простейшей программы в Eclipse указать, чтобы она собралась без поддержки FPU. Флаги -msoft-float для компилятора и линкера выставил. Подозреваю, что проблем в стандартной библиотеке, которая по-умолчанию с FPU... но как получить библитеку без FPU? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 8 27 июня, 2020 Опубликовано 27 июня, 2020 · Жалоба если gcc + newlib от Гейслера, то они собраны для разных вариантов soft-float, flat, v8 и т.д. можно посмотреть там где установлен компилер в lib то есть должно выбирать нужные crt файлы и либу в зависимости от ключей (-msoft-float). когда я собирал (давно еще без llvm), то по умолчанию было soft-float почему думаете, что hard-float используется? попробуйте простую (без printf) программу Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
QuadMan 0 29 июня, 2020 Опубликовано 29 июня, 2020 · Жалоба Программа самая простая: int main(void) { volatile char i = 0; while (1) { i++; } return 0; } Опции компилятора: -c -fmessage-length=0 -qbsp=leon3 -qnano -msoft-float Опции линковщика: -qbsp=leon3 -qnano -msoft-float Подключаю библиотеки gcc, bcc из директории \lib\gcc\sparc-gaisler-elf\7.2.0\leon3\soft. Из других тоже пробовал, где soft прописано. Ничего не получается. Может нужно какие-то из флагов -nostartfiles, -nodefaultlibs, -nostdlib использовать? При попытке запуска отладки такой программы GRMON пишет ERROR! FPU not found Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 8 29 июня, 2020 Опубликовано 29 июня, 2020 · Жалоба посмотрите objdump-ом, где fpu используется. тут вообще, без всяких флагов должно быть без FPU скорее всего в старт файлах crt*.o (не тот файл берет gcc) у Гейслера должны быть примеры простого crt* - скорее всего в тестах железа (да и в исходниках libc/gcc они наверняка есть - ассемблер *.S) - слинкуйте с -nostartfiles -nostdlib с понятным crt*) без инициализации (crt) C код не будет работать, но попробуйте добиться понятного вывода objdump-а, что там нет лишнего/непонятного еще раз обращу внимания - посмотрите на тесты железа в grlib - там все было (с makefile и правильными ключами) upd: а пускаете без симуляции, сразу в железке? по-моему, не лучший подход. посмотрите ключи GRMON-a - может что-то типа -ni или про FPU. сейчас у него GRMON2|3 я еще GRMON просто использовал Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
QuadMan 0 3 июля, 2020 Опубликовано 3 июля, 2020 · Жалоба В итоге немного разобрался. Программа, действительно, компилируется корректно и без FPU. Никаких дополнительных библиотек не требует. Через grmon удалось загрузить elf-файл и запустить его - все работает. Ошибка возникает только при попытке начать отладку через eclipse. Отлаживаемся через UART пока. Не подскажете, в чем здесь может быть проблема? И вообще, через что проще программу отлаживать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 8 3 июля, 2020 Опубликовано 3 июля, 2020 · Жалоба grmon весьма удобный тул. что делает эклипс - не знаю, разбирайтесь. по-моему он должен запустить тот же самый grmon в режиме gdb сервера и работать с ним. может какой-нибудь антивирус гадит на межпроцесное взаимодействие? у меня вчера пол дня ушло на понимание, что avast убивает отладку в латисовском ревиале у Гейслера также был grmon с gui - попробуйте его запустить ------------------- по поводу хардварных отладочных интерфейсов - какой используете jtag, uart? проверьте, что эклипс правильные ключи использует / выбирает интерфейс правильно мне удавалось запускать отладку и из эклипса, но как-то всегда это вызывало некоторые трудности и особого преимущества перед grmon-ом из командной строки не видел Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
QuadMan 0 6 июля, 2020 Опубликовано 6 июля, 2020 · Жалоба Продолжаю разбираться... может поможете. Итак, запускаю GRMON с опцией GDB, все нормально - Started GDB service on port 2222. Далее запускаю вручную sparc-gaisler-elf-gdb: выдаю команды: 1. file t4.elf - загружаю программу 2. dir C:/opt/bcc-2.1.1/src/libbcc/shared/trap - добавляю правильной путь для поиска файла trap_table_mvt.S (иначе он его ищет по /opt/bcc-2.1.1-gcc/src/libbcc/shared/trap/trap_table_mvt.S: No such file or directory - и естественно не находит) 3. target extended-remote localhost:2222 - при выдаче этой команды на подключение к GRMON - в окне GRMON выдается сообщение ERROR! FPU not found. C:\opt\bcc-2.1.1\bin>sparc-gaisler-elf-gdb GNU gdb (GDB) 8.2.1 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "--host=x86_64-w64-mingw32 --target=sparc-gaisler-elf". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word". (gdb) file t4.elf Reading symbols from t4.elf...done. (gdb) dir C:/opt/bcc-2.1.1/src/libbcc/shared/trap Source directories searched: C:/opt/bcc-2.1.1/src/libbcc/shared/trap;$cdir;$cwd (gdb) target extended-remote localhost:2222 Remote debugging using localhost:2222 __bcc_entry_point () at /opt/bcc-2.1.1-gcc/src/libbcc/shared/trap/trap_table_mvt.S:82 82 RESET_TRAP(__bcc_trap_reset_mvt); ! 00 reset (gdb) GRMON debug monitor v3.2.2 64-bit eval version Copyright (C) 2020 Cobham Gaisler - All rights reserved. For latest updates, go to http://www.gaisler.com/ Comments or bug-reports to support@gaisler.com This eval version will expire on 28/09/2020 Started GDB service on port 2222. GRLIB build version: 4251 Detected frequency: 24.0 MHz Component Vendor LEON3 SPARC V8 Processor Cobham Gaisler AHB Debug UART Cobham Gaisler JTAG Debug Link Cobham Gaisler AHB/APB Bridge Cobham Gaisler LEON3 Debug Support Unit Cobham Gaisler LEON2 Memory Controller European Space Agency Single-port AHB SRAM module Cobham Gaisler Generic UART Cobham Gaisler Multi-processor Interrupt Ctrl. Cobham Gaisler Modular Timer Unit Cobham Gaisler General Purpose I/O port Cobham Gaisler Use command 'info sys' to print a detailed report of attached cores ERROR! FPU not found Вот из-за чего в момент выдачи команды target ... может вылетать такая ошибка в GRMON? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 8 7 июля, 2020 Опубликовано 7 июля, 2020 · Жалоба мне удобнее было grmon с его родным интерфейсом, без gdb запускать - больше возможностей вот попробуйте в родном интерфейсе info sys сказать (как выше написано). может сконфигурено неправильно - то есть подписано в pnp пзу-шке, что есть FPU (не должно собраться, но вдруг) если уж такие проблемы с FPU - сделайте с FPU - для Альтеры/Ксайлинса Гейслер дает нетлист, когда разберетесь, уберете. но у меня никаких проблем с NO FPU конфигурацией не возникало Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться