1

我正在尝试使用 Code Composer Studio 7 使用 XDS560v2 TRAVELER JTAG 仿真器连接到 OMAP5912 设备。当使用Connect Target连接到 C55x 设备时,它成功地停止在任意 RAM 点。在 ARM9 内核上使用Connect Target时,它总是停在 0xFFFF0000。现在,当我查看它的寄存器时,一切似乎都很好,我看到 LR 位于 SDARM 上已知的固件位置周围,例如 0x102B1AD4。但!当我访问 Code Composer Studio 7 的内存浏览器并查看 SDRAM 位置时,我只看到以下字节链“0x00009C46”。我试图在 CPU 内存和物理内存视图之间切换,但没有任何帮助。有人知道这里发生了什么吗?谢谢你。

4

1 回答 1

1

可能 Code Composer 7 中存在错误,所以我使用了自己的 .gel 文件,基于github 上的.gel 文件,它解决了问题。在 Code Composer 中选择“新目标配置”,然后添加 STM SDX560V2 Traveler 或其他。添加bypass of 8,添加arm9核心并附上这个.gel文件,最后添加c55xx核心。

StartUp()
{ }

OnTargetConnect()
{
    disable_watchdog_timer( );
    add_breakpoints();
}

OnHalt()
{
    // Add here your stuff
    GEL_TextOut("R0 %x R1 %x\n",,,,,R0, R1);
    GEL_MemorySave(0xCAFEBABE, 0, 96, "/tmp/memdump.bin",8,0);
    GEL_Go();
}

add_breakpoints()
{
    // Add here your breakpoint
    GEL_BreakPtAdd(0xCAFEBABE);
}

disable_watchdog_timer( )
{
    #define WD_CNTL_TIMER           *( unsigned short* )0xFFFEC800
    #define WD_LOAD_TIM             *( unsigned short* )0xFFFEC804
    #define WD_TIMER_MODE           *( unsigned short* )0xFFFEC808
    #define WDT_WWPS                *( unsigned int* )0xFFFEB034
    #define WDT_WSPR                *( unsigned int* )0xFFFEB048

    WD_TIMER_MODE = 0x00F5;         // Disable Watchdog Timer
    WD_TIMER_MODE = 0x00A0;

    WDT_WSPR = 0xAAAA;              // Disable 32KHz Watchdog
    while ( WDT_WWPS & 0x0010 );
    WDT_WSPR = 0x5555;
    while ( WDT_WWPS & 0x0010 );
}
于 2020-04-29T15:08:10.573 回答