我正在使用嵌入式平台上的SHARC架构,由于实时限制,我无法使用JTAG调试器。
我的想法是基于链接器内存映射文件(这是一个包含所有符号和地址的漂亮XML文件)实现一种侵入性分析器。
在运行时期间以及使用正确的声明-DPROFILING
编译目标时,我可以在函数的开头和结尾添加JMP指令来对其进行基准测试。
通过这些间谍,我可以记录特定功能的执行时间以及堆栈状态。
目前我的目标界面是用Python编写的,我正在考虑这些分析方法:
p = Profiling('memorymap.xml')
trigger = p.AddTrigger('interrupt_isr', variable_change = 'var_foo')
p.AddSpy('function_foo', nacquisitions = 8, trigger = trigger)
一旦满足触发条件,间谍将开始记录函数function_foo
的下一次8执行。触发器添加到函数interrupt_isr
的开头,并在变量var_foo
发生变化时触发。
目前我对我的配置策略并不十分满意。有没有可以从中获取灵感的标准配置界面?
注射机制包括几个步骤: