我在使用C6748 PRU模块
当我单步调试(Step Over)时,我注意到调试窗口中,全局变量的值和地址是准确的,但是局部变量的是错误的!
abc应该是值为1,地址为0x00000018@Data_Memory!
所有初始化已经在gel中完成(各种使能),测试代码如下所示
我之前用过CCS调试DSP的主处理器C67x,并没有这个问题
请问这里是哪里出了问题? 我该怎么做才能使得PRU程序的局部变量的调试是准确的?
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.
我在使用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-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函数中 加了一个局部变量 并且简单地更新它
然而调试窗口仍然显示了错误的结果???