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.

prinf下载到28335的FLASH中,不能打印

仿真下可以28335的串口可以打印数据,但是下载到程序中串口Printf不能打印数据

  • 下载到flash,cmd文件有是否更改为flash的?

    使用console可以输出数据吗?

  • 仿真的时候也是用28335.cmd,下载的时候也是28335.cmd,

  • int myprintf1(const char *fmt,...)
    {
    int i = 0;
    va_list args;
    unsigned int n;
    char buffer[128];
    va_start(args,fmt);
    n = vsprintf(buffer,fmt,args);
    for(i = 0;i < n;i ++)
    {
    SendChar(buffer[i]);//通过串口发送字符
    }
    va_end(args);
    return n;
    }
    int SendChar (int ch)
    {
    SciaRegs.SCITXBUF = ch;
    while(SciaRegs.SCICTL2.bit.TXRDY==0);
    //while (SciaRegs.SCIFFTX.bit.TXFFST != 0) {}
    //SciaRegs.SCITXBUF=ch;
    return ch;
    }打印程序

    CMD

    PAGE 0: /* Program Memory */
    /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for data allocation */

    ZONE6 : origin = 0x100000, length = 0x100000 /* on-chip RAM block L1 */
    ZONE7 : origin = 0x200000, length = 0x100000 /* on-chip RAM block L1 */
    RAML0 : origin = 0x008000, length = 0x001000 /* on-chip RAM block L0 */
    RAML1 : origin = 0x009000, length = 0x001000 /* on-chip RAM block L1 */
    RAML2 : origin = 0x00A000, length = 0x001000 /* on-chip RAM block L2 */
    RAML3 : origin = 0x00B000, length = 0x001000 /* on-chip RAM block L3 */
    FLASHH : origin = 0x300000, length = 0x008000 /* on-chip FLASH */
    FLASHG : origin = 0x308000, length = 0x008000 /* on-chip FLASH */
    FLASHF : origin = 0x310000, length = 0x008000 /* on-chip FLASH */
    FLASHE : origin = 0x318000, length = 0x008000 /* on-chip FLASH */
    FLASHD : origin = 0x320000, length = 0x008000 /* on-chip FLASH */
    FLASHC : origin = 0x328000, length = 0x008000 /* on-chip FLASH */
    FLASHB : origin = 0x330000, length = 0x008000 /* on-chip FLASH */
    FLASHA : origin = 0x338000, length = 0x007F80 /* on-chip FLASH */
    CSM_RSVD : origin = 0x33FF80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */
    BEGIN : origin = 0x33FFF6, length = 0x000002 /* Part of FLASHA. Used for "boot to Flash" bootloader mode. */
    CSM_PWL : origin = 0x33FFF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */
    OTP : origin = 0x380400, length = 0x000400 /* on-chip OTP */
    ADC_CAL : origin = 0x380080, length = 0x000009 /* ADC_cal function in Reserved memory */

    IQTABLES : origin = 0x3FE000, length = 0x000b50 /* IQ Math Tables in Boot ROM */
    IQTABLES2 : origin = 0x3FEB50, length = 0x00008c /* IQ Math Tables in Boot ROM */
    FPUTABLES : origin = 0x3FEBDC, length = 0x0006A0 /* FPU Tables in Boot ROM */
    ROM : origin = 0x3FF27C, length = 0x000D44 /* Boot ROM */
    RESET : origin = 0x3FFFC0, length = 0x000002 /* part of boot ROM */
    VECTORS : origin = 0x3FFFC2, length = 0x00003E /* part of boot ROM */


    PAGE 1 : /* Data Memory */
    /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE0 for program allocation */
    /* Registers remain on PAGE1 */


    BOOT_RSVD : origin = 0x000000, length = 0x000050 /* Part of M0, BOOT rom will use this for stack */
    RAMM0 : origin = 0x000050, length = 0x0003B0 /* on-chip RAM block M0 */
    RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */
    RAML4 : origin = 0x00C000, length = 0x001000 /* on-chip RAM block L1 */
    RAML5 : origin = 0x00D000, length = 0x001000 /* on-chip RAM block L1 */

    // RAML6 : origin = 0x00E000, length = 0x001000 /* on-chip RAM block L1 */
    // RAML7 : origin = 0x00F000, length = 0x001000 /* on-chip RAM block L1 */
    RAMH :origin = 0x00E000, length = 0x002000 /* on-chip RAM block L1 */
    ZONE0 : origin = 0x004000, length = 0x001000 /* on-chip RAM block L1 */
    }

    /* Allocate sections to memory blocks.
    Note:
    codestart user defined section in DSP28_CodeStartBranch.asm used to redirect code
    execution when booting to flash
    ramfuncs user defined section to store functions that will be copied from Flash into RAM
    */
    SECTIONS
    {

    /* Allocate program areas: */
    .cinit : > FLASHB PAGE = 0
    .pinit : > FLASHB, PAGE = 0
    .text : > FLASHB PAGE = 0
    codestart : > BEGIN PAGE = 0
    ramfuncs : > FLASHB PAGE = 0

    csmpasswds : > CSM_PWL PAGE = 0
    csm_rsvd : > CSM_RSVD PAGE = 0

    /* Allocate uninitalized data sections: */
    .stack : > RAMM1 PAGE = 1
    .ebss : > RAML5 PAGE = 1
    .esysmem : > RAMM1 PAGE = 1
    .sysmem : > RAML4 PAGE = 1
    /* Initalized sections go in Flash */
    /* For SDFlash to program these, they must be allocated to page 0 */
    .econst : > FLASHB PAGE = 0
    .switch : > FLASHB PAGE = 0

    /* Allocate IQ math areas: */
    IQmathTables : > IQTABLES, PAGE = 0, TYPE = NOLOAD
    IQmathTables2 : > IQTABLES2, PAGE = 0, TYPE = NOLOAD
    FPUmathTables : > FPUTABLES, PAGE = 0, TYPE = NOLOAD

    .reset : > RESET, PAGE = 0, TYPE = DSECT
    vectors : > VECTORS PAGE = 0, TYPE = DSECT

    /* Allocate ADC_cal function (pre-programmed by factory into TI reserved memory) */
    .adc_cal : load = ADC_CAL, PAGE = 0, TYPE = NOLOAD

    }

  • 仿真应该是借助仿真器的一路串口打出的。烧写完肯定不能打印

  • 仿真应该是借助仿真器的一路串口打出的。烧写完肯定不能打印

  • 不是我呀,我从DSP引出来一路串口,作为调试用