如何在arm-none-eabi中编译以__asm开头的C函数?

时间:2019-05-26 08:03:37

标签: c arm gnu stm32f4discovery

我正在尝试编译此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编译器不支持此语法?)或某些标志有关,但是到目前为止,谷歌搜索还不足够。

0 个答案:

没有答案