RTOS KEIL到GCC的转换

RTOS KEIL到GCC的转换,gcc,arm,stm32,freertos,Gcc,Arm,Stm32,Freertos,我在KEIL编译器下有一个FreeRTOS代码,一切正常。当我在GCC下将相同的代码转换为CooCox时,其中只有port.c等中asm代码的更改。它不起作用。它在函数xPortStartScheduler()的debug中循环,其中prvportstartsfirsttask()转到Svc\u Handler,然后再转到xPortStartScheduler()等。我认为问题可能在向量或启动文件中的某个地方 在CooCox中,我找不到堆和堆栈初始化而不是Keil sturtup 有人有主意了吗

我在KEIL编译器下有一个FreeRTOS代码,一切正常。当我在GCC下将相同的代码转换为CooCox时,其中只有port.c等中asm代码的更改。它不起作用。它在函数
xPortStartScheduler()
的debug中循环,其中
prvportstartsfirsttask()
转到
Svc\u Handler
,然后再转到
xPortStartScheduler()
等。我认为问题可能在向量或启动文件中的某个地方

在CooCox中,我找不到堆和堆栈初始化而不是Keil sturtup


有人有主意了吗?

我是freeRTOS的新手,但是您可以通过向项目添加CMSIS引导组件在CooCox中找到启动文件。查看->存储库并添加CMSIS引导组件,以可视化CMSIS_引导/启动目录中的启动文件

通过重写导入的CooCox sturtup的向量表(其中未定义“vPortSVCHandler”)解决了该问题Hw dev Cz

是的,我知道这一点,但当我使用原始的CooCox启动文件时,代码以硬错误处理程序错误结束。因为我使用的是来自KEIL的用于GCC的重写汇编代码。通过重写导入的CooCox sturtup的向量表(其中未定义“vPortSVCHandler”),问题得到了解决。