Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
19 years ago

How to determine program start/stop Address Range

I have a C-Program that I Build using the Nios II IDE.

Lets say the program executes in external SRAM.

How do I determine where in memory the program starts and ends ?

I have a requirement to test this external SRAM.

That is, run a memory test on the memory range that is not

used for program storage. How do I determine this address range(s)?

Does the compiler have this info (start/end address...) that

can be used at compile time? For example, in my memory test when

I specify a start and end address for the memory test can this

range be provided by the compiler?

(would vary depending on my program size)

Thanks,

Jim

2 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Most of the info. you need can be found in an objdump file, which can be optionally generated by the IDE. (nios2-elf-objdump on the command line)

    You do, however, have to be wary of where you've decided to place the stack, heap, and exception address.

    There's a pretty decent description of how memory is managed (albeit in a Linux system) here (http://www.informit.com/articles/article.asp?p=173438).

    In general, what you'd like to do is not really possible unless you place the stack and heap in a separate memory or are darn sure that neither your stack nor your heap will "invade" the area that you're attempting to test.

    Cheers,

    - slacker
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    originally posted by slacker@May 12 2006, 11:48 AM

    most of the info. you need can be found in an objdump file, which can be optionally generated by the ide. (nios2-elf-objdump on the command line)

    you do, however, have to be wary of where you've decided to place the stack, heap, and exception address.

    there's a pretty decent description of how memory is managed (albeit in a linux system) here (http://www.informit.com/articles/article.asp?p=173438).

    in general, what you'd like to do is not really possible unless you place the stack and heap in a separate memory or are darn sure that neither your stack nor your heap will "invade" the area that you're attempting to test.

    cheers,

    - slacker

    <div align='right'><{post_snapback}> (index.php?act=findpost&pid=15337)

    --- quote end ---

    --- Quote End ---

    Slacker,

    Thanks for the fast reply.

    Thats the info I was looking for.

    Jim