Ich benutze Keil uvision5, um cmsis_os.c (Wrapper für mein FreeRTOS) zu kompilieren.Erstellungsfehler auf Keil uVision5 kompilieren FreeRTOS v8.1.2 mit cmsis
Ich erhalte diese diesen Fehler: .. \ Middlewares \ third_party \ FreeRTOS \ Source \ portable \ GCC \ ARM_CM4F \ portmacro.h (221): Fehler: # 18: expected a ")"
portmacro .h hat das:
portFORCE_INLINE static void vPortRaiseBASEPRI(void)
{
uint32_t ulNewBASEPRI;
__asm volatile
(
" mov %0, %1 \n" \
" msr basepri, %0 \n" \
" isb \n" \
" dsb \n" \
:"=r" (ulNewBASEPRI) : "i" (configMAX_SYSCALL_INTERRUPT_PRIORITY) <<<<<<<<<<< LINE WITH THE ERROR.
);
}
ARM ist STM32F417VG. FreeRTOS Quellcode ist V8.1.2
Wir haben gcc-basierten Quellcode für unsere ARM, die ich auf Keil IDE portieren muss. Ich habe ST CubeMx verwendet, um ein reines Keil-Projekt zu generieren. Dann fügte ich v8.1.2 FreeRTOS Quellcode, einschließlich cmsis_os.c und cmsis_os.h weil Keil CMSIS RTOS-Wrapper für Debugger usw.
_ „ich kann nicht ulNewBASEPRI überall finden kann.“ _ - Modulo gebrochen Formatierung, ist es genau dort erklärt, wie eine lokale Variable ... so oder so, das ist einig GCC-spezifische Syntax und Funktionalität, so Kompilieren es mit nicht-GCC wird bedeuten, es neu zu schreiben. FreeRTOS behauptet, die Keil-Tools direkt zu unterstützen. Warum müssen Sie sich also trotzdem mit der GCC-Version der Quellen herumschlagen? – Notlikethat