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.

CCS调试器 PRU 局部变量全错

Other Parts Discussed in Thread: PRU-SWPKG, TMS320C6748, OMAP-L138

我在使用C6748 PRU模块 

当我单步调试(Step Over)时,我注意到调试窗口中,全局变量的值和地址是准确的,但是局部变量的是错误的!

abc应该是值为1,地址为0x00000018@Data_Memory!

所有初始化已经在gel中完成(各种使能),测试代码如下所示

我之前用过CCS调试DSP的主处理器C67x,并没有这个问题

请问这里是哪里出了问题? 我该怎么做才能使得PRU程序的局部变量的调试是准确的

  • 我这边测试之后再给您回复。
  • 非常感谢你们! 我觉得我的memory map配置 和 cmd配置 可能也有利于找到问题 

    cmd如下

    -cr // RAM 模型
    -heap 0x100 // 堆
    -stack 0x020 // 栈

    MEMORY
    {
    PAGE 0:
    PRUIRAM: o = 0x00000000 l = 0x00001000 /* 4KB PRU 程序内存 */

    PAGE 1:
    PRUDRAM: o = 0x00000000 l = 0x00000200 /* 512B PRU 数据内存 */
    }

    SECTIONS
    {
    .text:_c_int00* > 0x00000000
    .text > PRUIRAM PAGE 0
    .stack > PRUDRAM PAGE 1
    .bss > PRUDRAM PAGE 1
    .cio > PRUDRAM PAGE 1
    .const > PRUDRAM PAGE 1
    .data > PRUDRAM PAGE 1
    .switch > PRUDRAM PAGE 1
    .sysmem > PRUDRAM PAGE 1
    .cinit > PRUDRAM PAGE 1
    .rodata > PRUDRAM PAGE 1
    .fardata > PRUDRAM PAGE 1 ALIGN 4
    .farbss > PRUDRAM PAGE 1
    .rofardata > PRUDRAM PAGE 1 ALIGN 4
    }

    memory map如下

  • 请问您是直接基于PRU建立的工程吗?我看了一下PRU的demo,都是从DSP/arm加载的PRU,请参考:
    www.ti.com/.../PRU-SWPKG
  • 我查看了这份资料

    PRU-SWPKG 是面向 AM335x, AM437x and AM57xx devices 的

    我的是TMS320C6748的PRU

    对应的 PRU Software support package (Windows) for OMAP-L138, C6748, C6746 - No longer maintained

    这个开发包提供的例程仍然是汇编语言

    我正在使用 C语言开发 ,并且是在调试模式下,DSP完成初始化后,手动地向PRU load program

    我并不是在DSP加载PRU这一步遇到问题,我是在PRU上调试PRU的程序遇到了难题?

  • 我又尝试了一下

    我从你所说的 PRU-SWPKG  04_00_00_00 包中 am335x 的例程 PRU_gpioToggle

    我在main函数中 加了一个局部变量 并且简单地更新它

    然而调试窗口仍然显示了错误的结果???

  • 建议把首贴的内容到e2e.ti.com英文论坛上发贴问一下,看上去是编译器或者CCS的问题。所以把PUR编译器版本,及CCS版本号在贴子里写清楚。让做PRU编译器的人进来看这个问题。

    或者先试试高版本的PRU C编译器,或换个CCS版本。