I've ported mcuboot to MCUXpresso and am trying to use blhost to flash an image with the following command:
$ blhost -- flash-image blink.hex erase
This returns the following:
Ping responded in 1 attempt(s)
Inject command 'flash-image'
Wrote 96300 bytes to address 0x10000000
Successful generic response to command 'write-memory'
Data phase write aborted by status 0x2712 kStatus_AbortDataPhase
Response status = 10200 (0x27d8) kStatusMemoryRangeInvalid
Apparently it's trying to write the image to the start of flash (0x10000000), which of course isn't going to work. How do I make blhost put the image after the bootloader in unreserved flash?
On a possibly related not if I get property 11 I see that the bootloader is reserving literally all memory addresses. How would I go about fixing that?
Ping responded in 1 attempt(s)
Inject command 'get-property'
Response status = 0 (0x0) Success.
Response word 1 = 268435456 (0x10000000)
Response word 2 = 536879103 (0x20001fff)
Response word 3 = 268435456 (0x10000000)
Response word 4 = 537001983 (0x2001ffff)
Reserved Regions = Flash: 0x10000000-0x20001FFF (256.008 MB), RAM: 0x10000000-0x2001FFFF (256.125 MB)
解決済! 解決策の投稿を見る。
Looked through the source and found that the address comes from the hex file. I had to divide the flash region of my test project to have a 48KB space for the bootloader with the project code starting at address 0x1000c000. Everything seems to be in order now
You can use command line with blhost : " blhost -p COMx -- flash-image blink.hex erase" for update hex file through bootloader. It's ok.
Looked through the source and found that the address comes from the hex file. I had to divide the flash region of my test project to have a 48KB space for the bootloader with the project code starting at address 0x1000c000. Everything seems to be in order now
Looks like I hadn't defined __DATA_END properly, it should be (__DATA_ROM + (_edata - _data))
I also had to adjust __RAM_START and __RAM_END to count from the end of RAM
My reserved flash is now only 48KB, much more reasonable:
Ping responded in 1 attempt(s)
Inject command 'get-property'
Response status = 0 (0x0) Success.
Response word 1 = 268435456 (0x10000000)
Response word 2 = 268484607 (0x1000bfff)
Response word 3 = 537001983 (0x2001ffff)
Response word 4 = 537001984 (0x20020000)
Reserved Regions = Flash: 0x10000000-0x1000BFFF (48 KB), RAM: 0x2001FFFF-0x20020000 (2 bytes)