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.

6678 加载程序问题

Other Parts Discussed in Thread: TMS320C6678

您好,

自己做的板子,芯片TMS320C6678,板子上电时FPGA给DSP复位,之后连接仿真器加载程序时出现:6678.out Does not match the target endianness, not loaded. Check project build options and target configuration file (ccxml).

请问这是什么原因呢?

谢谢

  • 你好,程序编译时使用的大小端模式要和板子硬件调节的大小端模式匹配。

  • 您好,谢谢您的回复,请问我该如何查看板子硬件调节的大小端模式呢?目前程序编译使用的是小端模式出现这个状况,是不是我需要改成大端模式,相应的cmd也得改成适合大端的?

    谢谢

  • 芯片的大小端模式,在芯片的固定配置引脚确定的,可以参考datasheet。

    可以在编译程序时候,设置程序的大小端模式,CMD文件不会影响大小端。

  • 请看下面文档的74页:

    Table 3-1 TMS320C6678 Device Configuration Pins

  • 您好,我将程序编译改为大端模式,连接时处于running状态,又出现如下错误:

    C66xx_0: Trouble Reading Register ControlRegisters_CSR: (Error -1178 @ 0x41) Device functional clock appears to be off. Power-cycle the board. If error persists, confirm configuration and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.1.232.0)
    C66xx_0: Trouble Halting Target CPU: (Error -1202 @ 0x0) Device core is hung. The debugger will attempt to force the device to a ready state to recover debug control. Your application's state will be corrupt. You should have limited access to memory and registers, but you may need to reset the device to debug further. (Emulation package 5.1.232.0)

    谢谢!

  • 您好,很抱歉一再打扰您

    如果是硬件方面的问题,我该从哪几方面着手找出错误的原因呢,初次接触这方面,期待您的答复

    谢谢

  • HI,

    我导入ti的gel文件只出现如下信息:

    C66xx_0: GEL Output: Setup_Memory_Map...
    C66xx_0: GEL Output: Setup_Memory_Map... Done.
    C66xx_0: GEL Output:
    Connecting Target...
    C66xx_0: GEL Output: DSP core #0
    C66xx_0: GEL Output: No initialization performed since bootmode = 0x0000000C
    C66xx_0: GEL Output: You can manually initialize with GlobalDefaultSetup
    C66xx_0: GEL Output: Invalidate All Cache...
    C66xx_0: GEL Output: Invalidate All Cache... Done.
    C66xx_0: GEL Output: GEL Reset...
    C66xx_0: GEL Output: GEL Reset... Done.
    C66xx_0: GEL Output: Disable all EDMA3 interrupts and events.

    之前加载程序完成时都是处于running状态,通过修改编译选项,程序加载完如下状态:

    继续单步运行,又是一直处于running状态,暂停便出现如下错误:C66xx_0: Trouble Halting Target CPU: (Error -1202 @ 0x0) Device core is hung. The debugger will attempt to force the device to a ready state to recover debug control. Your application's state will be corrupt. You should have limited access to memory and registers, but you may need to reset the device to debug further. (Emulation package 5.1.232.0) 

    求教:这块板子无法加载调试程序是哪些环节可能出现问题呢,我该如何找出问题的所在

    谢谢!!!!!

  • 您好,目前来看,大小端的配置是没有问题的。应该是仿真器和板子直接的连接出现了问题。

  • 首先我建议你不要加载EVM板提供的GEL文件,也不要添加程序,仅仅在targetconfiguration中选择芯片型号,直接连接仿真器试试看,查看连接出现的错误提示

  • 先确保仿真器和板子的连接OK,

    然后可以用最简单的例程,CCS中提供的有,来下载到芯片内,调试运行。

  • Titan ,您好

    按照您说的,连接仿真器没有问题,如下图:

  • Titan,您好,

    我并没有在ccsv5安装目录下找到例程,请问具体在哪个目录下呢

    谢谢

  • 这样看来,可能程序有问题。你可以加载程序后,先不要让程序运行,然后使用CCS的调试选项跳转到main函数开头,这时再单步运行,看看运行到哪一步出的问题

  • 使用CCS建立工程的时候,该页面下提供有例程选项的,请检查一下

  • Titan ,您好,

    加载程序后,就一直处于running状态,通过以下改变:去掉 on a program load or restart 

    程序加载后如下图:

    再执行go main,如下图:

    程序一直running,无法跳转到main

    点击暂停,变出现如下错误:

    程序依然处于running状态

    谢谢您的耐心解答!!!

  • Titan ,您好

    我在ccs建立工程时选择helloworld例程,进行调试时出现如下错误:

    谢谢!

  • helloworld例程这个工程加载出现的错误,需要重启CCS来解决。这个工程应该可以正常加载运行的,你试试。

    你的上一个工程是哪里来的,工程可能是有问题的

  • Titan,您好

    通过添加cmd文件,helloworld例程可以加载,如下图:

    没有打印helloworld,这应该是ccs设置的问题吧,由此看来我的程序没法调试不是硬件的问题吧,我再试试论坛提供的例程试试,非常感谢您

  • 可以确定不是硬件的问题。

    没有打印helloworld,也不是大问题,一般在单步时候,就会显示打印信息。

  • 非常感谢Titan 的耐心解答!!!!!

  • 您好,我之前也遇到过这个问题,但是我发现当我将cmd文件中将数据都放入DDR中,并且在target configuration中将gel文件加载进去就没有这个问题了。或者是在cmd文件中将数据都放入L2SRAM中也可以。

  • 你好,问题就出在有数据分配在DDR,而DDR没有初始化

  • 你好,我也遇到了同样的问题

    1. 使用TI提供的测试网口的例子.gel文件按自己要求修改过了,调试后也可以正常运行到最后一句打印,然后就没有任何输出,也没有错误,核0还是running状态,就是无法跳转到main函数. 手动停止程序运行会出现下面问题

    C66xx_0: Trouble Halting Target CPU: (Error -1202 @ 0x0) Device core is hung. The debugger will attempt to force the device to a ready state to recover debug control. Your application's state will be corrupt. You should have limited access to memory and registers, but you may need to reset the device to debug further. (Emulation package 5.1.232.0)

    2. 经常一开始调试就会遇到下面错误

    C66xx_0: GEL Output: Setup_Memory_Map...
    C66xx_0: GEL Output: Setup_Memory_Map... Done.
    C66xx_0: Error connecting to the target: (Error -1144 @ 0x0) Device core is hung. The debugger attempted to recover debug control, but was unsuccessful. Power-cycle the board. If error persists, confirm configuration and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.0.747.0)

    第二个问题使得无法调试程序了,工作没法进行了,麻烦解答下,非常感激.

  • 问题1:你的网口没通吧,一些库函数通不过,比如 EVM_init(),在进入main函数之前先运行,这个函数不通,无法进入mian,暂停会出现错误。

    问题2:出现问题1,再调试应该就会出现问题2,板子重新上电复位DSP,不行再重启CCS试下

  • 你好, 今天调试hua->6678这个工程,一开始说是没有记载boot.c文件,手动加载后,程序还是无法跳转,在EVM_Init入口加了打印没有打印出来(如果可以platform_write也是输出在console窗口的吧)。

     d

    以上两个就是手动加载boot.c文件后的情况。

    上面的图继续点击运行后又没有反应了。断电后在重新调试就只输出到上面console框中的内容,核状态还是running。evm.cfg中存储器映射哪里只把DDR改为DDR3了,这样编译才可以过。编译选项里的general->linker command file是空的。

    麻烦给看下是什么原因导致的无法调转到mian函数,怎么解决,非常感激

  • 你把EVM_Init这个函数去掉试试,你的不是评估板,EVM_Init里这个函数pform_status = platform_init(&sFlags, &sConfig);不一定通过,这个函数封装在库里,通不过就是一直running。这个函数在cfg里创建的,你可以注释cfg里的,在main函数里调用,单步看看是什么样子

  • 你好,按照你说的在evm.cfg里面注释掉了 //Startup.lastFxns.$add('&EVM_init');  调试还是无法跳转到main;第二次又把后面的var tskNdkMainThread      = Task.create("&hpdspuaStart");的相关内容页注释掉了,还是同样的现象。能否指导下?方便的话用qq联系吧,方便点,我的是329354682。谢谢啦

  • 你好,你是调试HUA这个工程才出现这个情况吗,你试过最简单的helloworld吗?你的DDR通了没

  • 你好,只有hua的这个工程出现这个问题,其他工程加了gel文件也可以调到main函数。不知道什么原因?其他工程会经常遇到下面问题,不知道是否遇到?

    C66xx_0: Error connecting to the target: (Error -1143 @ 0x0) Device core was hung. The debugger has forced the device to a ready state and recovered debug control, but your application's state is now corrupt. You should have limited access to memory and registers, but you may need to reset the device to debug further. (Emulation package 5.0.747.0)

  • 请问如何查看datasheet?我的6670运行时出现如下问题:One or more sections of your program falls into a memory region that is not writable.  These regions will not actually be written to the target.  Check your linker configuration and/or memory map.

    不知道是不是cmd文件的问题,也不知道具体如何修改,求教!

  • 您好,我现在在调试DSP C66ak2e的helloworld程序。通过设置断点,发现程序运行到platform_init()处,就没有反应了。我尝试单步运行,但是提示找不到platform.c文件。我在他给的路径下发现所有的文件格式都是.pp格式的。现在不知道怎么办了,求指导~~谢谢

  • 找到了 多谢,但不懂大小端会影响什么