【问题标题】:RTOS KEIL to GCC conversionRTOS KEIL 到 GCC 的转换
【发布时间】:2016-03-12 03:32:41
【问题描述】:

我在 KEIL 编译器下有一个 FreeRTOS 代码,一切正常。当我在 GCC 下将相同的代码转换为 CooCox 时,port.c 等中的 asm 代码只有变化。它不起作用。它在函数xPortStartScheduler() 的调试中循环,其中prvPortStartFirstTask() 转到Svc_Handler 并再次转到xPortStartScheduler() 等。我认为问题可能出在向量或启动文件中。

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

有人有想法吗?

【问题讨论】:

  • 问题已通过重写导入的 CooCox sturtup 的向量表解决,其中未定义“vPortSVCHandler”。

标签: gcc arm stm32 freertos


【解决方案1】:

通过重写未定义“vPortSVCHandler”的导入 CooCox sturtup 的向量表解决了问题。 – 硬件开发 Cz

【讨论】:

    【解决方案2】:

    我是 freeRTOS 的新手,但您可以通过将 CMSIS 引导组件添加到项目中来在 CooCox 中找到启动文件。 View->Repository 并添加 CMSIS 启动组件以可视化 cmsis_boot/startup 目录中的启动文件。

    【讨论】:

    • 是的,我知道,但是当我使用原始 CooCox 启动文件时,代码会以 Hard_Fault_Handler 错误结束。因为它我正在使用 KEIL 为 GCC 重写的汇编代码。
    猜你喜欢
    • 2016-12-26
    • 2010-11-16
    • 2016-09-08
    • 2016-02-18
    • 2023-01-12
    • 1970-01-01
    • 2015-10-13
    • 2021-06-15
    • 1970-01-01
    相关资源
    最近更新 更多