Posts

Showing posts with the label IMLedBlink

STM32N657X0 – 4.2 MiB RAM, but challenging to fully utilize

Image
This particular microcontroller caught my interest because of its 4.2MB of SRAM. That said, you should know that it has 0 bytes of internal flash memory, and that's where the problems begin. Having no internal flash memory is that make it difficult to develop on this board.    4.2MB of internal SRAM can be useful for certain applications, but to utilize it effectively, you need to understand a few things. First is the First Stage Bootloader (FSBL), which likely assumes you'll also need a Second Stage Bootloader (SSBL), and the answer is yes! Since there’s no internal flash, your code must reside on external flash memory. The microcontroller has a mechanism to copy code into AXISRAM2 and execute it from there.  However, the initial code is limited to 256 KiB and it starts from address  0x34180400 . To understand why this is somewhat problematic, take a look at the address space of AXISRAM2. In the table, we can see a continuous RAM address range up to 0x34400000. Th...

Bootloader + Flashing App + Led blink example (opensource)

Image
Since almost every Embedded project needs a bootloader and application for flashing firmware, I've decided to open-source my solution. The idea is to have a universal bootloader for all microcontrollers and a single flasher application. Another idea is to have a flashing application that can run on all operating systems. This is where I open-sourced  IMBootloader ,  IMFlahser  together with the  IMLedBlink  example.  Let shortly explain them. IMBootloader Adapter functions For anyone who wants to port this bootloader, it needs to do it through adapter functions. The source file of adapter functions is here:  firmware_update_adapter.c Magic key IMBootlaoder is running at interrupt events from USB. In the beginning, it will check if firmware exists by checking the special part of flash and it will looking for the magic key. If the magic key exists bootloader will jump to the firmware. It is to keep booting time short as possible. If the magic key is not ...