本文博客链接:http://blog.csdn.net/bjr2016,作者:bjr2016,未经允许不得转载。
章节9 性能和资源使用
本章将介绍SystemView的性能和资源使用情况。它包含了关于典型系统内存需求的信息,这些信息可以用来获得对大多数目标系统的充分评估。
9.1 内存需求
取决于使用的操作系统集成、目标配置和编译器优化,因此内存需求可能不同。
为了实现性能和内存使用的平衡,建议为SystemView和RTT模块设置编译器优化级别。对于SystemView和RTT模块,即使在调试状态时,也应该始终打开编译器优化。
9.1.1 ROM需求
下表列出了组件的SystemView的ROM使用情况。对于使用智能链接器的IDE,只有使用的函数会被包含在应用程序中。
描述 | ROM |
---|---|
最小核心代码需求 | ~920字节 |
基本记录函数(用于应用程序、OS和模块的事件) | ~380字节 |
操作系统相关的记录函数 | ~360字节 |
中间层模块相关的记录函数 | ~120字节 |
完整的SystemView模块 | ~1.8K字节 |
下表列出了不同配置的SystemView的ROM使用情况
描述 | 配置 | ROM |
---|---|---|
SystemView模块 | 平衡优化,无静态缓冲区 | ~1.8K字节 |
SystemView模块 | 平衡优化,静态缓冲区 | ~2.1K字节 |
SystemView模块 | 平衡优化,无静态缓冲区,死后模式 | ~1.4K字节 |
SystemView模块 | 平衡优化,静态缓冲区,死后模式 | ~1.7K字节 |
RTT模块 | 平衡优化 | ~0.5K字节 |
9.1.2 静态RAM需求
下表列出了不同配置的SystemView的RAM使用情况
描述 | 配置 | RAM |
---|---|---|
SystemView模块 | 无静态缓冲区 | ~70字节+通道缓冲区 |
SystemView模块 | 静态缓冲区 | ~280字节+通道缓冲区 |
SystemView模块 | 无静态缓冲区,死后模式 | ~60字节+通道缓冲区 |
SystemView模块 | 静态缓冲区,死后模式 | ~180字节+通道缓冲区 |
RTT模块 | ~30字节+通道缓冲区 |
9.1.3 堆栈RAM需求
SystemView要求堆栈在应用程序中记录时间的每个上下文中记录事件(brj2016注:这句话不知道该怎么理解)。这通常包括调度器使用的系统堆栈、中断堆栈和任务堆栈。
由于SystemView处理系统描述和任务信息的传入请求,所以堆栈上必须有足够的空闲空间来记录事件并发送记录另一个事件的系统描述。
可以将SystemView配置为在较低的堆栈使用或更少的静态RAM使用之间进行选择。
描述 | 最大堆栈 |
---|---|
无静态缓冲区,用于事件产生和编码 | ~230字节 |
静态缓冲区,用于事件产生和编码 | ~510字节 |
无静态缓冲区,用于事件产生和编码,死后模式 | ~150字节 |
静态缓冲区,用于事件产生和编码,死后模式 | ~280字节 |