Is it possible to program the image .bin files into the external flash(W25Q128) connected to the nRF54L15 using a J-Link debugger?

Hello Team,

I have added the LittleFS file system for the external flash and am able to program the .bin files through code by keeping the bitmap array within the application.

Now, I am trying to load the image .bin files directly into the W25Q128 flash IC, which is connected to the nRF54L15, using a J-Link.
Is there any way to achieve this?

working way in code :

const uint8_t Logo_Bitmap[]={0xFF,0xFF.....................................................0xFF};

fsWrite("Logo.bin", Logo_Bitmap,sizeof(Logo_Bitmap));

Regards,
Karthik B.

  • Hi Einar,

    This is the command I used to program the external flash 

    nrfutil device --x-ext-mem-config-file spi_ext_mem_config.json program --firmware Logo.hex --options ext_mem_erase_mode=ERASE_ALL,chip_erase_mode=ERASE_NONE --serial-number 261007391

    Here Logo.hex is generated from mklittlefs(mklittlefs/README.md at master · earlephilhower/mklittlefs · GitHub) which binds the littlefs superblock inside the hex file along with image bin data .

    Below command is to read back the external flash content and reading back the expected content 

    nrfutil device --x-ext-mem-config-file spi_ext_mem_config.json read --address 0x10000000 --bytes 17000 --serial-number 261007391
    


    why am I saying application does not work 

    before programming the external flash application was running and after programming , it does not boot as I dont see any bootup logs in serial terminal(UART logs). usually comes when application is starting.

    what I am expecting is after programing external flash , application should functions.

    what debugging I did :I read out the memory using nrfutil read command as described above if data are written to external flash and read out the flash content as well 

    this is the flashs memory read PS E:\GCE\Documents\ZL_LCD_Display\nrf\poc_refresh> nrfutil device read --address 0x00000000 --bytes 100 --serial-number 261007391 261007391 0x00000000: 2000F290 0001710D 00033A37 000170F9 |... .q..7:...p..| 0x00000010: 000170F9 000170F9 000170F9 000170F9 |.p...p...p...p..| 0x00000020: 00000000 00000000 00000000 00017291 |.............r..| 0x00000030: 000170F9 00000000 00017225 000170F9 |.p......%r...p..| 0x00000040: 0001741D 0001741D 0001741D 0001741D |.t...t...t...t..| 0x00000050: 0001741D 0001741D 0001741D 0001741D |.t...t...t...t..| 0x00000060: 0001741D


    my suspect is booting address might be overwritten or wrongly pointing to somewhere.




    My expectation is 

    our system understand the image's binary file . we need to load the all images' binary file to external flash using littleFs file system.

    Guidance from you is 

    what other ways to load the image bin data to external flash with littleFs filesystem in production as display driver reads the image bin file using littleFs ?





  • Hi,

    karthikbala said:
    what I am expecting is after programing external flash , application should functions.

    Did you program the application again after writing to external flash via the debugger? That has to be done. Once that is done, detailed debugging is needed in order to undrstand what is happenign in our application.

    karthikbala said:
    Guidance from you is 

    what other ways to load the image bin data to external flash with littleFs filesystem in production as display driver reads the image bin file using littleFs ?

    I am not able to suggest anything other than what has been done, which is how to program the external flash via a debugger. After that, debugging is needed to understand why your application no longer works.

Related