1.Target
主要介绍工程目标的调试晶振频率、选择的编译器、RAM和ROM分配的地址空间等!
1.晶振频率: 这个晶振主要是用于仿真调试
2.Use Cross-Module Optimization
(一般我们不打勾)
:
作用一:不针对库目标执行跨模块优化。
作用二:跨模块优化将增加构建项目所需的时间,因为会自动执行多个编译和链接步骤。Use MicroLIB
(打勾)
:
使用微库它是ISO标准C运行时库的子集(其中一部分),提供了性能和代码大小之间的权衡。 微库并不完全兼容ANSI,但对于大多数小型嵌入式应用程序来说已经足够了。微库这个功能常用与printf函数
3.ROM存储地址 : Flash(ROM)=Code+Ro-data=50000
这里的ROM存储指的是程序储存的地址,分片外和片内两种。
注意起始地址以及开辟的大小,这里开辟了100000个字节
4.RAM存储地址 Sram(RAM)=Rw-data+ZI-data=1300 注意其实地址以及大小。
如果程序太大会是这个结果,意思就是ROM或者RAM空间不够了
2.C/C++
1、设置优化级别“Optimization 0表示不优化,设置越大,优化级别越高。 一般调试的时候设置为Level0最低,调试完成后设置为Level 3 最高(此时可能调试时无法打断点),减小编译后的代码。
2、启用“C99”
在组件库中,很多地方变量的声明放在了可执行语句的后面,如果要使用组件库,就需要勾选这个选项,否则编译的时候会出现很多错误。
3、Optimize for Time:
优化时间,即优化代码中费时的地方。勾选上该功能,会发现运行时间有比较明显的减少
4.One ELF Section per Function:
优化每一个函数 ELF 段,可以减少代码量ROM的大小(内存RAM不会减小)
3.如何解决No space in execution regions with .ANY selector mat
这三个地方都修改下试试
总结
欢迎指正谢谢!