Hi everyone,
I am trying to enter a new firmware from address 0x00000000 via the CAN ISP command. I write the firmware from blocks of 512 bytes, so first I write 512 bytes in the RAM at the address 0x10001000 and then I copy RAM to flash.
I run into a problem when I try to write data in the first 512 bytes of sector 0, while from address 0k00000200 onwards everything is done successfully.
Does anyone know what is in the first 512 bytes of sector 0? Since I can't erase that part of the memory or write anything.
Note the firmware executable file is in hex format and it is clearly defined in Intel hex format that the first 512 bytes need to be written from address 0x00000000 to 0x00000200.
Thanks in advance.
Solved! Go to Solution.
Hello
The original address where the executable file starts is 0x00.
In the meantime, I came to a solution.
In order to successfully program an address block from 0x00 to 0x200, it is necessary to first write the rest of the executable file starting from address 0x200 to the end, and only at the end do we write the first 512 bytes of the executable file. After that, by calling the ISP command GO to the address 0x00, the firer is successfully executed.
Regards,
Stefan
Hello,
What about your original project start address? Does it start from 0x200 or 0x00?
BR
Alice
Hello
The original address where the executable file starts is 0x00.
In the meantime, I came to a solution.
In order to successfully program an address block from 0x00 to 0x200, it is necessary to first write the rest of the executable file starting from address 0x200 to the end, and only at the end do we write the first 512 bytes of the executable file. After that, by calling the ISP command GO to the address 0x00, the firer is successfully executed.
Regards,
Stefan