Performance analysis for Algorithms on Embedded Devices
I am doing a project on an Embedded Device which has ARM926Ej-S processor.I need to performance analysis of the algorithm on the device. I am new to embedded environment and don't have much idea of what is performance analysis for embedded devices.
Can some one tell what parameters should i consi开发者_如何转开发der for analysis? How to go about implementation too?
Thank you all
What kind of debugging environment do you have? Do you have an in-circuit-emulator (ICE)? What I recommend is that you have a debugging environment such that you can manually halt execution at a random time and examine the state of the program, including the call stack (stackshots). Manually sampling the call stack in this way will reveal places in the code that are responsible for significant fractions of time, so that you can optimize them. Here is a longer explanation.
This may be a little different from what you were considering. Many people think that to find things to optimize you need to time the code, but that is not so. Timing is a good way to find out if what you did made a difference, but stack sampling is, some feel, the best way to find out what to do to make the difference.
My approach to these would be to read the reference manual ( http://www.arm.com/miscPDFs/5499.pdf ) which should cover everything you need. This will show you if there is a floating-point unit, which drawbacks there are in the FPU, what you have to keep in mind when using DMA's, cache and memory layout as well as the memory bus speeds and a lot other things that are crucial if you want to program this device correctly and efficient.
Unfortunatly, I have never worked with this specific device, so I can not point at anything specific, but you will sure find all you need in the RefManual. If you know the hardware, you can analyse the performance impact of specific parts of the algorithm. But you have to know the hardwares internals.
精彩评论