TI中文支持网
TI专业的中文技术问题搜集分享网站

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程序的局部变量的调试是准确的

Nancy Wang:

我这边测试之后再给您回复。

,

will huang:

非常感谢你们! 我觉得我的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如下

,

Nancy Wang:

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

,

will huang:

我查看了这份资料

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的程序遇到了难题?

,

will huang:

我又尝试了一下

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

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

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

,

Tony Tang:

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

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

赞(0)
未经允许不得转载:TI中文支持网 » CCS调试器 PRU 局部变量全错
分享到: 更多 (0)