dsp2812反复重启一般有什么原因造成呢?

dsp2812反复重启一般有什么原因造成呢?,第1张

如果只是一个dsp开发板的话

一般不会造成这样的情况

看到过dsp控制其他大功率设备时

干扰和一些脉冲会造成DSP复位电源不握芹稳

电压低于一定程度

造扮滚成DSP重启楼上说的很对

软件肯定也是会造成周期复位段缺毕的中断发送找不到服务程序个人没有验证过

汽车熄火后dsp功放过一会自动启动是因为车子熄火的时候,电源并没有随之关闭,车上的电器还都在继洞拦续工作,记录仪、充电器等,电源还在继续为他们供电,当然也包括车里的纳轮胡dsp功桐歼放。解决的办法就是关闭电源就可以。

可能是堆栈溢出、数组溢出、访问指向空地址的指针未声明的函数调用跑飞等原因。

1、堆栈溢出:以TI CCS3.3为例,程序运行的堆与栈的空间大小都是由软件设计师自己定义分配大小的。一般出现问题就是为DSP软件运行设置的堆或栈的空间太小,而导致程序不能正常运行。堆或栈空间太小编译生成out文件时,是不会报错的。TI ccs3.3中Stack Size是0x400(即默认的配置),Heap Size是0x200(即默认配置)。如果程序出现莫名的跑飞情况可以试试改改这两个参数值。

2、数组溢出:数组溢出就是定义数组的空间大小拍乎,而通过数组下表访问时,下标超过了数组的边界,这样可能改写其他地址的数据,造成程序跑飞。有可能是使用未初始化的变量作为下标方位数组(这种情况编译器通常会有warning提示);还有可能是通过计算关系计算下标,而在异常的情况下下标会越界(应用下标前对下标的范围进行判定,正常后再使用)。

3、访问指向空地址的指针:访问未初始化的空指针也可能出现DSP跑飞的情况;或者将指针作为函数参数传递时,指针未指向具体的地址,而在函数中使用,可能出现死机的情况(也可能不会,在ccs3.3下)。这些“指针未初始化”或“指返贺纯针未指向具体变量”的问题编译器不会提示错误,最多提示警告。而“指针未指向具体变量”作为函数参数传递,漏咐在VC2005中,编译时不会报错,但有警告,但是在debug状态下运行时直接就跑死了,也算是暴露问题了。

4、未声明的函数调用跑飞:在TI ccs3.3中一些函数没有显式声明,而直接调用可能达不到函数预期的效果或者就是跑飞。以前写过一个CCS环境下因printf函数跑飞的问题。其实未声明函数调用,在zynq的开发平台vivado的SDK中也出现过,编译不报错,运行就是达不到预期的效果。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12270054.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存