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.

TMS320F280025C: 移植SYS/BIOS后 System_printf无法打印输出 且Task创建后过一会就卡死 是否有什么配置没完成的?有无官方移植成功的示例工程参考?

Part Number: TMS320F280025C


参考以下成功进行移植后 C代码如下:

[【TI C2000】F28002x移植SYS/BIOS并运行TI-RTOS及工程模板](blog.csdn.net/.../145650628)

/*
 *  ======== main.c ========
 */

/* BIOS/XDC Include Files. */
#include <xdc/std.h>
#include <xdc/cfg/global.h>
#include <xdc/runtime/IHeap.h>
#include <xdc/runtime/System.h>
#include <xdc/runtime/Error.h>
#include <xdc/runtime/Memory.h>
#include <ti/sysbios/BIOS.h>
#include <ti/sysbios/knl/Task.h>
#include <ti/sysbios/knl/Event.h>
#include <ti/sysbios/knl/Semaphore.h>
#include <ti/sysbios/knl/Clock.h>
#include <ti/sysbios/heaps/HeapBuf.h>
#include <ti/sysbios/heaps/HeapMem.h>
#include <ti/sysbios/knl/Event.h>
#include <ti/sysbios/family/c28/Hwi.h>

#include "device.h"
#include "driverlib.h"

#include <stdint.h>
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
#include <stdio.h>
#include <math.h>

//
// Globals
//

//
// Send data for SCI-A
//
uint16_t TX_Buf[2]={0xAA,0xBB};

//
// Received data for SCI-A
//
uint16_t RX_Buf[2]={0xFF,0xFF};
//
// Function Prototypes
//
void Init_GPIO(void)
{
    //
    // GPIO28 is the SCI Rx pin.
    //
    GPIO_setPinConfig(DEVICE_GPIO_CFG_SCIRXDA);
    GPIO_setDirectionMode(DEVICE_GPIO_PIN_SCIRXDA, GPIO_DIR_MODE_IN);
    GPIO_setPadConfig(DEVICE_GPIO_PIN_SCIRXDA, GPIO_PIN_TYPE_STD);
    GPIO_setQualificationMode(DEVICE_GPIO_PIN_SCIRXDA, GPIO_QUAL_ASYNC);

    //
    // GPIO29 is the SCI Tx pin.
    //
    GPIO_setPinConfig(DEVICE_GPIO_CFG_SCITXDA);
    GPIO_setDirectionMode(DEVICE_GPIO_PIN_SCITXDA, GPIO_DIR_MODE_OUT);
    GPIO_setPadConfig(DEVICE_GPIO_PIN_SCITXDA, GPIO_PIN_TYPE_STD);
    GPIO_setQualificationMode(DEVICE_GPIO_PIN_SCITXDA, GPIO_QUAL_ASYNC);

    //GPIO 31 34 Output
    GPIO_setPinConfig(GPIO_31_GPIO31);
    GPIO_setDirectionMode(31, GPIO_DIR_MODE_OUT);
    GPIO_setPadConfig(31, GPIO_PIN_TYPE_STD);
    GPIO_setQualificationMode(31, GPIO_QUAL_ASYNC);

    GPIO_setPinConfig(GPIO_34_GPIO34);
    GPIO_setDirectionMode(34, GPIO_DIR_MODE_OUT);
    GPIO_setPadConfig(34, GPIO_PIN_TYPE_STD);
    GPIO_setQualificationMode(34, GPIO_QUAL_ASYNC);

    GPIO_writePin(31,0);
    GPIO_writePin(34,1);
}

void Init_SCI(void)
{
    SCI_setConfig(SCIA_BASE, DEVICE_LSPCLK_FREQ, 115200, (SCI_CONFIG_WLEN_8 |
                                                        SCI_CONFIG_STOP_ONE |
                                                        SCI_CONFIG_PAR_NONE));
    SCI_enableModule(SCIA_BASE);
    SCI_enableTxModule(SCIA_BASE);
    SCI_enableRxModule(SCIA_BASE);
    SCI_resetChannels(SCIA_BASE);

    SCI_performSoftwareReset(SCIA_BASE);
}

void delay_ms(uint32_t ms)
{
    while(ms--)
    {
        DEVICE_DELAY_US(1000);
    }
}

/*
 *  ======== taskFxn ========
 */
void taskFxn(UArg a0, UArg a1)
{
    Init_GPIO();
    Init_SCI();

    SCI_writeCharArray(SCIA_BASE, TX_Buf, 2);
    while (1)
    {
        GPIO_togglePin(31);
        GPIO_togglePin(34);
//        SCI_readCharArray(SCIA_BASE, RX_Buf, 1);
        SCI_writeCharArray(SCIA_BASE, RX_Buf, 1);
    }
}

int main(void)
{
    Task_Params     taskParams;
    System_printf("enter main()\n");
    //
    // Initializes system control, device clock, and peripherals
    //
    Device_init();
    Device_initGPIO();

    //
    // Initializes PIE and clear PIE registers. Disables CPU interrupts.
    // and clear all CPU interrupt flags.
    //
    Interrupt_initModule();

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

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

    Task_Params_init(&taskParams);
    taskParams.priority = 3;
    Task_create(taskFxn,  &taskParams, NULL);

    BIOS_start();    /* does not return */
    return(0);
}


调试时 发现System_printf不能输出

且Task的循环在运行十次后就自动卡死

是否有什么配置没完成的?有无官方移植成功的示例工程参考?