2017-01-04 5 views
0

Открываю панель для поиска stm32f4. На данный момент я могу использовать светодиоды, кнопки и общаться через последовательный порт. Теперь я пытаюсь использовать библиотеку Gmp на этой доске. Я строю рычажного NONE-EABI набор инструментов, следуя этим инструкциям: https://blog.tan-ce.com/gcc-bare-metal/Запуск Gmp на панели обнаружения Stm32f4

настроить ГМФ со следующими параметрами: ./configure CC = рычажного ни-EABI-GCC CFLAGS = "- nostartfiles --specs = nosys .specs -g»--host = рука-ни-EABI повреждают сборки

Мой проект компилируется и без какого-либо вопроса, но когда я пытаюсь инициализацию в mpz_t на доске с помощью следующего кода:

mpz_t a; 
mpz_init_set_str(a, "31", 10); 

Я попадаю в HardFault_Handler(), мой arm-none-eabi-gdb дает я:

(gdb) bt 
#0 HardFault_Handler() at ./src/stm32f4xx_it.c:34 
#1 <signal handler called> 
#2 0x08016ade in __gmpn_fft_best_k (n=134358201, sqr=134358201) at mul_fft.c:151 
#3 0x0801816e in __gmpn_mul_fft (op=0x80006f5 <HardFault_Handler>, pl=134219497, n=0x8022471 <Reset_Handler>, nl=537001984, m=0x80224b9 <WWDG_IRQHandler>, ml=134358201, k=134358201) at mul_fft.c:870 
Backtrace stopped: previous frame inner to this frame (corrupt stack?) 

Если кто-то уже запустить ГМП на микроконтроллере Я очень заинтересован в том, чтобы сделать это!

ответ

0

Я, наконец, нашел решение, тип коры должен быть указан. Для stm32f4, добавьте -mcpu = cortex-m4 в CFLAGS, решите проблему.

Я использую набор инструментов доступны здесь: arm-none-eabi toolchain

Команда вся конфигурация: ./configure CC = рычажного ни-EABI-GCC CFLAGS = "- nostartfiles --specs = nosys.specs -mcpu = cortex-m4 "--host = arm-none-eabi --disable-assembly --prefix = your-bare-metal-gmp-location

где« ваш-голый металл-gmp-location »- это установка (вы не должны устанавливать голую металлическую библиотеку в классическом/usr/local).

Смежные вопросы