This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Copying firmware to address 0x00000000

Hello,
I am trying to copy a firmware from a specific address to base address 0x00000000.
When I make this copy to another base address, such as 0x0F000000 or 0xA0000000, the copy is made with no problem, but to 0x00000000 this copy is simply ignored by keil simulator.
The example code below reproduces what I am trying to do: a simple assignment of values to address 0x00000000 and the subsequent addresses.
The program is not starting at address 0x00000000 (its R/O base is set to 0x01000000), so copying data to this region should not affect its behavior.
Why isn't that working and how can I make this copy to base address 0x00000000?
Thanks in advance.
Example code:
#define BASE_ADDRESS 0x00000000;

int main(void)
{
int *addr = (int *)BASE_ADDRESS;

*addr++ = 0x00000001;
*addr++ = 0x00000002;
*addr++ = 0x00000003;
*addr++ = 0x00000004;
*addr++ = 0x00000005;

while(1);

}
Parents
  • Hi,

     First of all, check how this address is declared (Read Only, W/R )?

    Just a moment. what is address 0x00000000? In ST microprocessors this address of ST bootloader. You cannot write in this address.

    After checking, microprocessor change address to 0x08000000 address. This is the address of the internal flash.

    Shmuel

Reply
  • Hi,

     First of all, check how this address is declared (Read Only, W/R )?

    Just a moment. what is address 0x00000000? In ST microprocessors this address of ST bootloader. You cannot write in this address.

    After checking, microprocessor change address to 0x08000000 address. This is the address of the internal flash.

    Shmuel

Children
No data