主题中讨论的其他部件:C2000WARE
工具/软件:TI C/C++编译器
大家好,
注意:这将是一个很长的帖子,因此请在阅读之前暂停并放松
我发布此查询是为了继续发布此处发布的问题(e2e.ti.com/support/microcontrollers/c2000/f/171/t/654370)65.437万),我认为该问题偏离了轨道。 如果 不是我,这也可能对许多其他人有用。
我从一开始就解释这个问题(见下文):
- 我正在处理一个代码,其中main函数在 循环中调用另一个函数'lorlineshape()',直到满足阈值条件。
- 函数 'lorlineshape()'从预定义的'.c'文件(HITRAN)导入一组数组
- 此算法在使用较小的数据集时工作非常顺利。 我已成功运行此算法,每个数组的大小为31 (来自HITRAN.c文件)。
- 在新的要求下,我需要这些HITRAN.c文件的数组的大小为460。所以函数 'lorlineshape()'导入一个更大的数据集,然后处理数据。 我也要改变一些常量来进行计算和理论上的改变,但这并没有改变 'lorlineshape()'的功能,我已经明确地检查了它。
- 这是一个测试程序,我已将此函数从循环中拉出,并尝试查看输出是否为correct.e2e.ti.com/.../ADC.main.c 。您将看到2134.5238 和DAC已初始化,但我希望它们不会干扰这里的功能。
- 以下是HITRAN.c文件 e2e.ti.com/.../6036.HITRAN.c
观察:请于 2018年1月24日上午9:05查看此 帖子 e2e.ti.com/support/microcontrollers/c2000/f/171/t/654370中65.437万中的帖子
我假设当程序进入函数 'lorlineshape()'时,程序没有从缺省链接文件中创建的扇区获得足够的内存,因此产生了垃圾结果。
我的问题:
谁能知道main函数何时调用 'lorlineshape()',那么在该函数中初始化/声明的变量会获得内存中的哪个空间?
当程序脱离功能时,这个空间是否释放? 由于我在原始程序的循环中调用此函数,那么每次调用该函数时,该函数是否会占用新的空间? 这是如何工作的? 是否有文档需要阅读或有人需要解释。
感谢病人一直阅读到最后
提前感谢您提供的任何帮助
此致,