Ti大神: 我用的芯片是AM3358,上层ARM核跑应用程序,底层PRU核跑控制外设的执行程序,他们之间用shareRAM共享数据。以前PRU内的程序用汇编指令写的,运行一直很顺利。现在改用C语言按照相同的思路重新写了PRU程序,编译后在PRU执行,偶尔会出现外设停止响应的问题(出错概率大约是10次出现1-2次问题吧),好像PRU的程序一直在等待什么,不再继续执行了。请教这是什么原因?我的汇编程序可以指定内存与寄存器操作,但是用C语言不能指定具体哪一个存储器存放放哪一个变量,只能用far 、near来分配。是不是这方面的原因?我该怎么办?谢谢!
yongqing wang:
外设停止响应,是否有可能初始化的问题?
Shine:
试试加大heap, stack size。
user5287569:
回复 yongqing wang:
估计初始化问题不大。因为汇编一直就没有出现过问题,而C语言编译出来的程序只有偶尔(十次大概有一次吧)会出现问题。如果是初始化问题那么每次都应该会出问题。
user5287569:
回复 Shine:
我的上层进程给PRU传送数据的buffer大小设置的是1024 ,C语言编译器设置的stack size是256,会不会是这里有问题?
user5287569:
回复 user5287569:
我查看了一下:我目前设置的是:–stack_size=0x100,–heap_size=0x100这是不是太小了,造成堵车啦?根据经验,一般应该设置多大比较合适?
user5287569:
回复 Shine:
heap size从0x100加大到0x300,stack size从0x100加大到0x400,在运行了31个小时后又停止响应了。以前是运行17个小时停止响应的。问题还是没有解决啊!!!
yongqing wang:
回复 user5287569:
这个有点像什么溢出了,没有及时释放
user5946192:
不知道 怎么用 pru 老哥 有啥 使用手册 跪求啊
灰小子:
回复 user5946192:
讲解的最清楚的就是官网提供的数据手册了www.ti.com.cn/…/spruh73p.pdf