我在mmwave sdk中原有的函数中创建一个局部变量并使用,或新建一个函数(仅返回一个整形值),都可以。但是,我把自己的代码放在函数uint32_t range_cfar(const uint16_t inp[], uint16_t out[], uint32_t len);中,然后注释掉mmwavelib_cfarCadB_SOGO(const uint16_t inp[restrict],uint16_t out[restrict], uint32_t len,uint16_t cfartype,uint32_t const1, uint32_t const2,uint32_t guardLen, uint32_t noiseLen)中原有的代码,并调用range_cfar函数。目的是用自己的函数替换函数原来的功能。但是运行却出错了。如下图:


左图是执行mmwavelib_cfarCadB_SOGO函数原有代码时的正常情况,右图是替换后运行出错的一些变量的状态。在调用range_cfar函数前,我先将Inp中的值赋值给selfinp数组,然后调用 range_cfar(selfinp, selfout, len),之后再把selfout数组中的值赋值给out。
出于一些原因, range_cfar函数也调用了自己编写的在同一个文件中的其他函数,逻辑上应该没有问题,之前在matlab上仿真是正常的。但不知道这对在AWR1642BOOST上运行有没有影响。
不知道问题出在哪了,请大佬指教!