芯片FLASH或者RAM不够了
有人推荐去启动文件里面更改heap 或者steak
不建议 堆栈改小了局部变量多了,函数嵌套过多容易堆栈逸出
尽量细节修改
没有link成功的话,map文件虽然会生成 但是只生成了Section Cross References
和 Removing Unused input sections from the image. 部分 ,看不出来具体的代码大小
去模仿棒里面把ROM和RAM改大,
再编译就成功了
FLASH中的被占用的空间为:Code + RO Data + RW Data
芯片内部RAM使用的空间为: RW Data + ZI Data
自己去看使用的芯片手册的FLASH和RAM是多少
如果相差很大,建议重新选芯片
相差不大可以再改改
map文件里面可以看到
Image Symbol Table【变量占比】
Image component sizes 【每个文件的总计】
可能是某个数组声明太大了,printf函数也可以去掉,尽量根据项目需要修改
一般来说没有用的库不会编译到生成代码里面,尽量看变量声明有没有可以减小的空间