前言:想使用sprintf格式化单精度数到字符串中时,程序运行到sprintf函数后就会崩溃,因此进行了研究可使用如下方法修复:
1、检查TI编译器对于printf的支持是否开到full级别(默认为full,必须设置为full才可支持%f类型的格式化)
2、检查编译器分配的堆栈空间是否充足,大致需要开到0x400才能支持对浮点数的格式化
3、修改完编译器的堆栈空间支持后还需要修改项目分配的堆栈空间
找到cmd文件,我的文件名字是28002x_generic_flash_lnk.cmd,找到.stack的位置,为其分配一块足够0x400的区域,
由于我的RAMM1空间不足,我将其修改为RAMLS4567后即可正常运行sprintf了。
不过需要注意的是,将RAMM1换为RAMLS4567会导致程序性能的降低,最好还是给程序提供足够的RAM空间,让他能更加快速地运行