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.

求助,我的28035电路板系统无法正常运行



您好,我的28035程序使用了cfg文件进行bios配置,平台为ccs5,程序编译后烧入flash后无法正常运行,查看PC指针发现程序在 0x3ff8cd 0x3ff8ce这两个地址循环,而且提示No source available for "0x3ff8cd" ,经查资料发现这是bootrom里的地址,这部分程序应该是固化在bootrom里的吧,怎么会找不到呢。而且我无法正常进入实时模式,仿真器会提示

C28xx: Trouble Reading PC Register: (Error -1142 @ 0x0) Device blocked debug access because it is currently executing non-debuggable code. Choose 'Rude Retry' to disable polite mode and force the operation. (Emulation package 5.0.681.0)
C28xx: 7 other operation(s) were automatically canceled as a result

这个错误。基本已经排除硬件错误。我怀疑是芯片选择错误或cfg配置文件错误,但是查看各种配置选项目前没发现有什么异常。

真心请求您的帮助

  • 又重新看了下,我烧写程序后仿真器无法自动跳转到main(),这应该是系统无法正常工作的原因,哪位高手遇到过类似的问题帮忙解答一下为何会这样呢

  • yu li,

    程序中是否有包含code start 代码,另外需要配置F28035的启动方式为BOOT TO FLASH,设置GPIO34、37悬空或是上拉。

    当上电启动时,如果是boot  to flash,则会跳转到code start去执行,执行完之后就会跑到main.

    请参考置顶帖中的引导模式。

    Eric

  • 程序中包含了DSP2803x_CodeStartBranch.asm,我的GPIO34接的是一个LED,图附上了, 运行例程可以脱离仿真器正常跑的,但例程不是RTSC,不知道和这个有没有关系?

  • 我查看了EMU_BMODE = 0x0003,应该已经设置为boot to flash了,感觉是boot rom里的代码无法运行,请问有哪些原因会引发这个现象呢。

  • yuli,

    现在是程序在仿真模式下跑不到main吗,还是在单机跑(不连仿真器)的情况下跑不到main?

    EMU_BMODE只对仿真器模式由用。

    GPIO34/37只对单机跑有用,直接测引脚电平来判断。

    如果连接仿真器的情况,reset CPU后,restart一下,是否能够跑到main或code start处?

    程序中的CMD文件有没有检测一下,尤其是begin memory block和codestart段。

    Eric

  • 两种情况下都无法找到main,连接仿真器的情况,reset CPU+restart后,也无法跑到main或code start,reset cpu后会做如图提示

    cmd文件是由TI提供的更改的,我检查过没发现什么错误,附在下面了,麻烦帮忙看一下。

    MEMORY
    {
    PAGE 0: /* Program Memory */
    /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for data allocation */
    CSM_RSVD : origin = 0x3F7F80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */
    CSM_PWL_P0 : origin = 0x3F7FF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */

    IQTABLES : origin = 0x3FE000, length = 0x000B50 /* IQ Math Tables in Boot ROM */
    IQTABLES2 : origin = 0x3FEB50, length = 0x00008C /* IQ Math Tables in Boot ROM */
    IQTABLES3 : origin = 0x3FEBDC, length = 0x0000AA /* IQ Math 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 */

    }

    SECTIONS
    {

    /* Allocate program areas: */
    codestart : > BEGIN PAGE = 0


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

    IQmath : > FLASH PAGE = 0 /* Math Code */
    IQmathTables : > IQTABLES, PAGE = 0, TYPE = NOLOAD


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


    /*** User Defined Sections ***/
    paraSec :> FLASH, PAGE = 0
    ramfuncs : LOAD > FLASH, PAGE = 0 /*指定加载地址*/
    RUN > L23SARAM, PAGE = 0 /*指定运行地址*/
    LOAD_START(_RamfuncsLoadStart),
    LOAD_END(_RamfuncsLoadEnd),
    RUN_START(_RamfuncsRunStart)
    dLogSec :> L01SARAM, PAGE = 0  //用户段

    }

    其他的寄存器区域是由平台配置文件配置的,生成的linker.cmd主要内容如下:

    --symbol_map ___TI_STACK_BASE=__stack
    --symbol_map ___TI_STACK_SIZE=__STACK_SIZE
    --symbol_map ___TI_STATIC_BASE=___bss__
    --symbol_map __c_int00=_c_int00


    --args 0x0
    -heap 0x0
    -stack 0x200

    MEMORY
    {
    PAGE 0: L01SARAM (RWX) : org = 0x8000, len = 0xc00
    PAGE 1: PIEVECT (RWX) : org = 0xd00, len = 0x100
    PAGE 0: FLASH (RWX) : org = 0x3e8000, len = 0xff80
    PAGE 0: MSARAM (RWX) : org = 0x50, len = 0x7b0
    PAGE 0: BEGIN (RWX) : org = 0x3f7ff6, len = 0x2
    PAGE 0: L23SARAM (RWX) : org = 0x8c00, len = 0x1400
    PAGE 0: OTP (RWX) : org = 0x3d7800, len = 0x400
    }


  • 我也是这样的情况No source available for "0x0" ,有时候还会提示没有发现main

  • 你好!请问一下,你的问题解决了吗?我也遇到相同的问题。