MrG*_*igu 7 c profiling arm bare-metal beagleboard
我想知道你如何在裸机系统(ARM Cortex a8)上分析软件?以前我使用的是具有内置基准统计数据的模拟器,现在我想比较真实硬件的结果(在BeagleBoard-Xm上运行).
我知道你可以使用gprof,但是我有点迷失,因为假设你必须在目标系统上运行Linux?
我使用Codesourcery的arm-none-eabi交叉编译器构建可执行文件,目标系统正在运行FreeRTOS.
仔细评估您所说的“分析”是什么意思。您确实在非常接近裸机的情况下操作,并且很可能需要您承担一些由 gprof 之类的工具执行的工作。
您想对函数调用计时吗?还是 ISR?如何在进入和退出被检查代码时切换 GPIO 线。可以设置数据记录器或示波器来触发这些事件。(根据我的经验,数据记录器更方便,因为我的可以配置为捕获这些事件的序列 - 允许我计算平均时间。)
您要计算执行次数吗?Cortex A8 配备了许多可以提供帮助的功能(如可配置的事件计数器):链接。您的 ARM 芯片也可能配备了其他可以使用的外围设备(取决于供应商)。不管怎样,看看上面的链接 - 新的 ARM 有很多很酷的功能,我不想玩那么多!;-)