Как скомпилировать функции C, которые начинаются с __asm ​​в arm-none-eabi? - PullRequest
1 голос
/ 26 мая 2019

Я пытаюсь скомпилировать этот код PTPD https://github.com/mpthompson/stm32_f4_ptpd.К сожалению, для этого требуется премиум-версия Keil.Поэтому я перевожу его на использование arm-none-eabi и Makefile.

Мне удалось заставить остальную часть программы компилироваться, кроме https://github.com/mpthompson/stm32_f4_ptpd/blob/master/libraries/RTX-v4.73/SRC/ARM/HAL_CM4.c.Пример проблемного места:

__asm void rt_set_PSP (U32 stack) {
        MSR     PSP,R0
        BX      LR
}

Этот файл завершается с:

../libraries/rtx-v4.73/SRC/ARM/HAL_CM4.c:50:7: error: expected '(' before 'void'
 __asm void rt_set_PSP (U32 stack) {
       ^~~~
../libraries/rtx-v4.73/SRC/ARM/HAL_CM4.c:72:20: error: stray '#' in program
         LSLS    R0,#31

Похоже, что он связан с компилятором (компилятор GNU не поддерживает этот синтаксис?) Или с некоторыми флагами, нопоиск в Google до сих пор не был плодотворным.

...