This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RM48L952:在 RM48L952上使用 FreeRTOS

Guru**** 2130580 points
Other Parts Discussed in Thread: RM48L952, HALCOGEN
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/757353/rm48l952-using-freertos-on-rm48l952

器件型号:RM48L952
主题中讨论的其他器件: HALCOGEN

你好

我在产品开发中使用 RM48L952。

在开发过程中突然需要加入 FreeRTOS。

因此 、我使用 HalCoGen 生成 FreeRTOS 代码并添加我的驱动程序。

我指的 是这份报告。

www.ti.com/.../spna237.pdf

但有一个步骤我不知道如何执行、所以我没有执行这个步骤。

然后、我在我的驱动程序中添加了有关 FreeRTOS 代码的内容。 (操作系统任务.c、操作系统任务.h 等代码。)

我更改了关于 sys_vim.c 的文件、因为我要更改中断通道。

之后 、我使用非 FreeRTOS 函数、它可以处理所有内容。

但是 、当我使用 FreeRTOS 函数时 、它不起作用。

我不知道在该步骤中未执行的关系是否导致了这个问题。

您能告诉我如何解决该问题吗?

谢谢、此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Willy、

    如果您的 FreeRTOS 代码和 cmd 直接从 HALCoGen 为 RM48ls952ZWT 生成、则无需更改 cmd 文件。

    您对 sys_vim 所做的更改是什么?

    对于 FreeRTOS、必须为 SW 中断启用 VIM 通道21 (SSI)。 您是否在进行任何更改之前运行了代码?

    您说该函数不起作用。 真正的问题是什么? 代码是否停留在某个位置、或者您得到了中止...?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、QJ Wang

    感谢您的回答。

    我使用的 HalCoGen 版本是04.05.02。

    我最初使用的驱动程序代码来自用于 RM48L952ZWT 的 HalCoGen、它包含关于 RTI 代码。

    我正在使用 RM48L952ZWT HalCoGen 驱动程序代码开发、突然想加入 FreeRTOS。

    因此、我从 HalCoGen 为 RM48L950ZWT_FreeRTOS 生成 FreeRTOS 代码。

    然后、我添加关于 FreeRTOS 代码(像 os_tasks.c、os_tasks.h 等代码)、并在我的驱动程序中替换 sys_vim.c。

    由于代码与之前用于 RM48L952ZWT 的 HalCoGen 代码不同、我更换了 sys_vim.c

    代码中的差异是中断通道2和中断通道21。

    之后、我使用 sciSend 函数、它工作正常。

    但我使用关于 FreeRTOS 函数(如 xTaskCreate 或 vTaskStartScheduler)、但它的工作不正常。

    这些是我的 FreeRTOS 测试代码。

    它不会在我的终端上输出任何内容。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    首先,分别声明两个全局变量 xTask1Handle 和 xTask2Handle,其类型为 xTaskHandle 作为 vTask1()和 vTask2()的句柄。

    确保正确创建任务:

    if (xTaskCreate (vTask1、"任务1"、1000、NULL、1、&xTask1Handle)!= pdTRUE)

    /*无法创建任务*/
    while (1);


    请为 vTASK1和 vTASK2使用不同的优先级