采用ti官方的fft代码来进行傅里叶计算,在ram中能够正常运行,但是移植到flash中后会出现和运算错误,所有的运算结果都是NaN,请问是不是哪里出了问题?应该如何解决呢?
Seven Han:
RAM中运行正常,烧录flash中计算结果不正确,没有遇到过这样的问题,还是要检查下看是否存在非法计算,比如负数开偶次方,
http://www.cnblogs.com/dosrun/p/3908617.html
采用ti官方的fft代码来进行傅里叶计算,在ram中能够正常运行,但是移植到flash中后会出现和运算错误,所有的运算结果都是NaN,请问是不是哪里出了问题?应该如何解决呢?
yinfei feng:
回复 Seven Han:
问题解决了,将fft计算过程中用到的数组通过#pragma DATA_SECTION(RFFToutBuff,"RFFTdata2");复制在固定的ram位置,就解决了,具体的原因现在还尚不清楚。总之谢谢你的解答
采用ti官方的fft代码来进行傅里叶计算,在ram中能够正常运行,但是移植到flash中后会出现和运算错误,所有的运算结果都是NaN,请问是不是哪里出了问题?应该如何解决呢?
BO LIU18:
回复 yinfei feng:
原因一般是这段代码需要一个ram空间,默认代码和cmd的设置里是在ram里。当移植到flash时,除了需要把关键代码加载到指定的ram里,也需要在代码里指定那段应用函数的空间的位置,然后在cmd里分配。cmd里不指定的话,boot起来后,运行你的那段应用函数时就都不知道跑到哪儿了
采用ti官方的fft代码来进行傅里叶计算,在ram中能够正常运行,但是移植到flash中后会出现和运算错误,所有的运算结果都是NaN,请问是不是哪里出了问题?应该如何解决呢?
yinfei feng:
回复 BO LIU18:
你好,你的意思是不是代码运行时并不会自动在芯片的RAM 中分配函数的空间,这个空间需要自己定义?可是我程序中除了FFT部分,其他定义的数组都是可以使用的。
采用ti官方的fft代码来进行傅里叶计算,在ram中能够正常运行,但是移植到flash中后会出现和运算错误,所有的运算结果都是NaN,请问是不是哪里出了问题?应该如何解决呢?
yinfei feng:
回复 BO LIU18:
谢谢大神解答,明白了,这个是FFT的代码要求要有一个固定地址空间。
采用ti官方的fft代码来进行傅里叶计算,在ram中能够正常运行,但是移植到flash中后会出现和运算错误,所有的运算结果都是NaN,请问是不是哪里出了问题?应该如何解决呢?
user5196261:
回复 yinfei feng:
请问您是如何修改的?只是把cmd换成F28335.cmd并在cmd中定义段吗?