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.

[参考译文] TMS320F28375S:TMS320F28375S

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1324094/tms320f28375s-tms320f28375s

器件型号:TMS320F28375S
主题中讨论的其他器件: SysConfig

团队、您好!

我将 CCS 12.6.0与 SysConfig 1.19.0配合使用。 我要在我的项目中使用 FreeRTOS。 我是该控制器的新手。 您能帮助我了解如何在 TMS320F28375S 中开始使用 FreeRTOS 吗?

我将 launchpad F28379D 投入使用。 我开始在 SysConfig 中配置 FreeRTOS、但它显示如下错误。

然后在我的 cmd 文件中进行一些更改。

现在、我可以构建我的项目了。 但我无法在调试时执行任务。 我的代码残桩、而不是深入任务内部。

//###########################################################################

//
// Included Files
//

#include "driverlib.h"
#include "board.h"
#include "FreeRTOS.h"
#include "c2000_freertos.h"
#include "FreeRTOSConfig.h"


//
// Globals
//


//
// Function Prototypes
//
void mcu_task1(void* pvParameters);

//
// Main
//
void main(void)
{

    //
    // Intialize device clock and peripherals
    //
    Device_init();

    //
    // Disable pin locks and enable internal pullups.
    //
    //Device_initGPIO(); //skipped for this example

    //
    // Initialize PIE and clear PIE registers. Disables CPU interrupts
    //
    Interrupt_initModule();

    //
    // Initialize the PIE vector table with pointers to the shell Interrupt
    // Service Routines (ISR).
    //
    Interrupt_initVectorTable();

    //
    // Initialize resources
    //
    Board_init();

    //
    // Enable Global Interrupt (INTM) and realtime interrupt (DBGM)
    //
    EINT;
    ERTM;

    FreeRTOS_init();

    for(;;)
    {

    }
}

void mcu_task1(void* pvParameters)
{
    GPIO_togglePin(19);
    vTaskDelay(500);
}

//
// End of file
//

我们将非常感谢您提供任何帮助。

谢谢。此致。

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

    尊敬的 Muzammil:

    通过查看代码、可以观察到以下几点:

    1) 1)使用 SysConfig 初始化任务时、您会注意到 c2000_freertos.c  文件中的#pragma DATA_SECTION (taskStack、".freertosStaticStack")。 这是必需的、因为在 C28x 器件中、堆栈指针只能访问存储器范围0x0000 - 0xFFFF。 因此、您需要在链接器命令文件中提供.freertosStaticStack 段、以确保分配处于此范围内。

    2)您的 MCU_task1()函数 没有在循环中执行。 所以、在任务首次运行且函数完成执行后、它将从函数返回并进入一个不可预计的状态。 如果这是所需的流程、则需要适当地删除任务以避免错误。

    这两个都可能是您所面临错误的原因。 请告诉我这是否有帮助。 如果这样无法解决问题、我可以查看您的项目并帮助进行进一步调试。

    谢谢。

    阿纳维

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

    您好、今天我们

    谢谢您的帮助。

    你提到的两个问题正是我所面临的(两者)。

    首先,我已经分配 RAMGS11,12,13,14给  freertosStaticStack。 (不在0x0000至0xFFFF 范围内)。

    其次、我忘记在我的任务中放置一个 while 循环。

    我的问题得到了解决。

    非常感谢。