Is there any a way to determine how much ram/memory is being consumed by the entire project in keil uVision?
It looks like the program is using memory/addresses beyond the certain range allocated so I need to compute certain things.
Also, is there any profiler for ARM embedded systems (C++)?
If you use the CMSIS RTOS RTX, there is a stack watermark feature, that allows you to see how individual threads are using their stacks: http://www.keil.com/support/docs/3719.htm This is a way to see some ZI-data usage in real time.
Most of the advanced profiling tools in MDK-ARM deal with code execution, rather than data usage. Execution Profiler: www.keil.com/.../uv4_db_dbg_execprofiler.htm Code Coverage: www.keil.com/.../uv4_db_dbg_codecoverage.htm Performance Analyzer: www.keil.com/.../uv4_db_dbg_perfanalyzer.htm These all require ETM trace, when debugging hardware. Code Coverage can also be used for many devices in simulation.
What makes you think the "program is using memory/addresses beyond the certain range allocated"?
There are some peripheral buffers that may not be counted in the total image size, depending on how they are accessed, but RO-data, RW-data, and ZI-data totals after a successful link should be accurate. Does Project => Options for Target => Target tab show the memory areas that you think are being using?
Well to be honest, I recently started working on cortex M4 and still learning the features keil uVision has to offer.
Basically, my code was working fine (was outputting results as expected) until I started to add some more variables, which resulted in some garbage strings. In addition, I got an error saying as stated here -> http://www.keil.com/support/docs/814.htm.
I got a similar error initially which I fixed by adding an initialization file. I shall really appreciate your help!
Regards
The Getting Started Guide may be a big time saver, then, to learn about all the features: www2.keil.com/.../mdk5-getting-started.pdf[NC,L]
Whenever I see garbage in variables, I check my own code for: --how the variables are being initialized --if pointers are doing what I intended
Stepping through the code in debug mode should help you find the answer, especially if you can find where the bad values start appearing.
If pointers were the issue, I don't think I should have gotten everything correct in the first place. I started getting garbage characters in output when I started declaring some other variables and functions, which makes me wonder if size or the consumption is an actual cause.
View all questions in Keil forum