Code profiling using "execution counts" - why it is dead for ARM CPUs ?
Is there any way to enable simple profiling using JLink and ARM CPUs ? ( in my case it is LPC3250, but the idea is generic)
Most of the debuggers can scan PC - maybe not real time, but fast enough to give some idea where the program spends most of its time. I did something like that long time ago for Arc A4 processors - the statistic was compared with memory map was giving really interesting results.
This would be cheap and quite powerfull tool - is it same as execution counts ? ( which I would like to enable, but there is clear nothing in docs about it)
-
Well, ARM9 is quite old architecture ( compared to Cortex - these may have possibility to scan PC - I do not know them that well).
Even if you have to halt the core, it still should be much faster then my timer interrupt procedure - especially that LPC32xx interrupt controller with Crossworks environment does not support nested interrupts ( and I use FIQ for fast data aquisition ). As far as I can say from reading ARM documentation it requires just few JTAG commands - maybe it can execute it as stream ( have not looked at their API yet - I was tempted to use it and process PC dump myself using LUA scripts and my firmware memory map)
Anyway - is there some documentation how to feed Execution Counts window ? I would try that from my FIQ if nothing else works.
-
Well - just ARM official docs
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dai0205a/index.html
I spent few years working on CPU chipset embedded controllers (as power on engineer) and I had to learn more about JTAG then I really intended.
About "Execution counts" - I will ask Segger if they share their SDK - then I can do it directly without Crossworks ( just using map file), but if you can provide easy way to use it - I will be interested.
-
Hi,
I just got J-link SDK license. I plan to do profiler ( which uses Jlink to scan PC ). I wanted to do standalone application ( which uses project map generated by the compiler), but if there is a way to put it int Crossworks IDE I would be glad to create plugin or external tool for it
Please sign in to leave a comment.
Comments
5 comments