- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi folks-
I want to write a stack test function to detemine stack usage during run time testing. For that I need to be able to get stack top and bottom pointers at run time. Can anyone please tell me how to get the C stack top and bottom pointers at run time? Thanks, John SpethLink Copied
5 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- There's already a feature that does this... See attached image from the BSP Editor. There is a similar option in the Nios II IDE's Syslib configuration stuff. The actual compile-time changes are mentioned in the attached image, as well. --- Quote End --- That's a good one that I'll certainly put into use. However I'm looking for a way to know the stack usage at any time before jumping to the exception handler. My stack test function will allow me to gauge stack usage during field stress testing. Exception trapping after stack overflow won't allow me to continue. John Speth.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You could get the current value of 'sp' using an asm() statement.
However it is probably enough to take the address of a local variable (or argument) as this will be an on-stack address in the current stack frame.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ok, here's the solution from me, the OP.
First some background. The NIOS stack is shared with the heap at all remaining RAM starting at the top of block RAM allocated for NIOS. At least that's true for onchip block memory. If I'm wrong, somebody please correct me. As a donation to karma, my solution is attached, free for anyone to use. Note that you can't use it if the heap is ever used. Call the zero function as early as possible after main starts. If you use the heap, you'll need to change the get function to somehow find the highest address of the heap that is in use. JJS- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page