首页 > 电子

编码器出现c语言错误

FFmepgH264编码器中,有一些很精妙的C语言写法,对于我这个15年C程序员来说,看到这些代码,都感觉自己不会写C程序了。1.defineADDPX_DSP(depth)c-u003eh264_add_pixels4_clear=FUNC(ff_h264_add_pixels4,depth);c-u003eh264_add_pixels8_clear=FUNC(ff_h264_add_pixels8。

1、给我一篇完整的dsp程序设计

以下程序采用TMS320VC5416芯片,运行环境ccs2.0这是主程序(c语言的)#includestdio.h/*#includemmregs.h*/#defineimr0x0000#defineifr0x0001#definetcr0x0026#defineprd0x0025#definepmst0x001dioportunsignedport8001;interruptvoidtimer();/*externvoidinitial();externvoidporta();externvoidportb();*/intflag0;inti;interruptvoidtimer(){*(int*)0x300*(int*)0x300 1;if(*(int*)0x3000x3E8){*(int*)0x3000;*(int*)0x302*(int*)0x302 1;if(flag0){flag1;i0x5555;port8001i;}else{flag0;i0xaaaa;port8001i。

2、dsp死掉重启后还是不行

可能是堆栈溢出、数组溢出、访问指向空地址的指针未声明的函数调用跑飞等原因。1、堆栈溢出:以TICCS3.3为例,程序运行的堆与栈的空间大小都是由软件设计师自己定义分配大小的。一般出现问题就是为DSP软件运行设置的堆或栈的空间太小,而导致程序不能正常运行。堆或栈空间太小编译生成out文件时,是不会报错的。TIccs3.3中StackSize是0x400(即默认的配置),HeapSize是0x200(即默认配置)。

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

保存到:

相关文章

Top