我想知道你如何在裸机系统(ARM Cortex a8)上分析软件?以前我使用的是内置基准测试统计数据的模拟器,现在我想比较真实硬件的结果(在BeagleBoard-Xm上运行)。
我知道你可以使用gprof,但是我有点迷失,因为假设你必须在目标系统上运行Linux?
我使用Codesourcery的arm-none-eabi交叉编译器构建可执行文件,目标系统正在运行FreeRTOS。
答案 0 :(得分:3)
通过“分析”仔细评估您的意思。你的确经营非常接近裸机,很可能你需要承担像gprof这样的工具所做的一些工作。
你想给函数调用时间吗?还是ISR?如何在进入和退出检查代码时切换GPIO线。可以设置数据记录器或示波器来触发这些事件。 (根据我的经验,数据记录器更方便,因为我可以配置捕获这些事件的序列 - 允许我计算平均时间。)
你想计算执行次数吗? Cortex A8配备了许多功能(如可配置的事件计数器),可以提供帮助:link。您的ARM芯片可能还配备了可以使用的其他外围设备(取决于供应商)。无论如何,请看一下上面的链接 - 新的ARM有许多很酷的功能,我不能像我想的那样玩! ; - )
答案 1 :(得分:2)
我已经设法为ARM Cortex M进行分析。由于GNU ARM Embedded(启动板)工具没有附带分析库,我添加了必要的粘合和分析功能。 参考文献: 见http://mcuoneclipse.com/2015/08/23/tutorial-using-gnu-profiling-gprof-with-arm-cortex-m/
我希望这会有所帮助。