Forum Discussion

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

How to implement my own bootloader

Hi,

My system doesn't use CFI Flash but SPI Flash, so I have to creat my own bootloader to read code from SPI Flash to SDRAM.

Now, I have implemented a bootloader code which is located in an onchip memory and it can work fine to read data from SPI Flash to SDRAM.

But I have a important question:

Before reading data from SPI Flash to SDRAM, I should initialize the SPI Flash with my Main Code, but how can I get Main Code???

As I know, NiosII IDE will create *.elf for you, but this file will contain many more redundant code which is for programming CFI Flash. What I need is only the following sections:

.exceptions, .rodata, .rwdata and .text

Anyone help?

Thanks very much!

4 Replies

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

    Hi David,

    > As I know, NiosII IDE will create *.elf for you, but this file will contain many more

    > redundant code which is for programming CFI Flash. What I need is only the following

    > sections:

    > .exceptions, .rodata, .rwdata and .text

    Use nios2-elf-objcopy.

    Regards,

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

    Hi Smcnutt:

    I'm not familiar with TCL tools, in fact, I never use them.

    Could you teach me how to use nios2-elf-objcopy and what will I get?

    Or, if there is any document related to TCL tools, pls let me know!

    Thanks very much!
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    > I'm not familiar with TCL tools, in fact, I never use them.

    objcopy is part of binutils -- use it from a command shell prompt.

    > Could you teach me how to use nios2-elf-objcopy and what will I get?

    Try:

    $ nios2-elf-objcopy --help

    You can also review documents\gnu-tools\binutils\binutils.html in your

    nios2 installation directory.

    Regards,

    --Scott