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版本。