Skip to content

feat: use rmk-boot.x linker script for DFU partition layout - #1018

Open
Schievel1 wants to merge 1 commit into
rmk-rs:mainfrom
Schievel1:auto-flash-layout
Open

feat: use rmk-boot.x linker script for DFU partition layout#1018
Schievel1 wants to merge 1 commit into
rmk-rs:mainfrom
Schievel1:auto-flash-layout

Conversation

@Schievel1

@Schievel1 Schievel1 commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

This PR should simplify the process of setting the right flash layout when using rmk-boot.
The calculation formula is still the same (flash size - what the bootloader takes up - storage = rest. ACTIVE = rest/2 - 1 page, DFU = rest/2 + 1 page) and rmk-boot's build.rs creates a memory.x accordingly. Additionally it should create a rmk-memory.x with the matching flash layout of the (RMK-)application + a few linker symbols that the application can use to initialize the flash and its partitions.
e.g. a rmk-memory.x looks like this:

MEMORY {
  FLASH : ORIGIN = 0x10007000, LENGTH = 966656   /* absolute XIP, where your firmware lives */
  RAM   : ORIGIN = 0x20000000, LENGTH = 256K
}

__rmk_boot_state_offset   = 0x6000;   /* flash-relative, consumed at runtime */
__rmk_boot_state_size     = 0x1000;
__rmk_boot_dfu_offset     = 0xF3000;
__rmk_boot_dfu_size       = 0xED000;
__rmk_boot_storage_offset = 0x1E0000;

rmk-boot not only creates that rmk-memory.x at build, it also provides matching rmk-memory.x-files for its pre-built variants. (rmk-rp2040-16mb-memory.x for example)

The users can copy those files into their project directory and rename them to memory.x.
The users code can then use rmk::dfu::init_flash_from_linkerscript() instead of rmk::dfu::init_flash() to partition the flash without giving any offsets and sizes. For use_config this happens automatically.

User who build their own bootloader with embassy-boots swap feature can change the symbols in memory.x accordingly.

Related PRs:
rmk-rs/rmk-boot#2

@HaoboGu

HaoboGu commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

The symbol existence is checked in rmk when bootloader feature like rmk-boot is enabled. This means that if rmk-boot is defined, the user should either define their own __rmk_boot* symbols in their linkerscript or use rmk-boot.x.

And I think it should not be overwritten by keyboard.toml. Let user define their layout in their linker script is better imo, because I think 99% users won't do it. That makes the configuration cleaner.

The last point from me is the storage size, default 128KB is a little bit more. For example, nRF52833 has only 512KB flash(I just realized that it's impossible to use rmk-boot on it). I want it to be tunable, or default to 32KB.

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

Size Report

Example main PR Diff .text .data .bss
use_config/nrf52832_ble 397.6 KiB 397.6 KiB +0.00% 0 0 0
use_config/nrf52840_ble 439.6 KiB 439.6 KiB +0.00% 0 0 0
use_config/nrf52840_ble_split (central) 500.8 KiB 500.8 KiB +0.00% 0 0 0
use_config/nrf52840_ble_split (peripheral) 318.8 KiB 318.8 KiB +0.00% 0 0 0
use_config/pi_pico_w_ble 672.7 KiB 672.7 KiB +0.00% ⬇️ -8 0 0
use_config/rp2040 146.3 KiB 146.3 KiB +0.00% 0 0 0
use_config/rp2040_split (central) 159.9 KiB 159.9 KiB +0.00% ⬆️ +4 0 0
use_config/rp2040_split (peripheral) 27.9 KiB 27.9 KiB +0.00% 0 0 0
use_config/stm32f1 62.6 KiB 62.6 KiB +0.00% ⬆️ +4 0 0
use_config/stm32h7 100.4 KiB 100.4 KiB +0.00% ⬆️ +4 0 0
use_rust/nrf52832_ble 385.2 KiB 385.2 KiB +0.00% ⬇️ -4 0 0
use_rust/nrf52840_ble 435.2 KiB 435.2 KiB +0.00% ⬆️ +4 0 0
use_rust/nrf52840_ble_split (central) 504.3 KiB 504.3 KiB +0.00% ⬆️ +8 0 0
use_rust/nrf52840_ble_split (peripheral) 316.4 KiB 316.4 KiB +0.00% 0 0 0
use_rust/pi_pico_w_ble 672.1 KiB 672.1 KiB +0.00% 0 0 0
use_rust/rp2040 145.6 KiB 145.6 KiB +0.00% ⬇️ -4 0 0
use_rust/rp2040_split (central) 158.4 KiB 158.4 KiB +0.00% ⬇️ -4 0 0
use_rust/rp2040_split (peripheral) 28.2 KiB 28.2 KiB +0.00% 0 0 0
use_rust/stm32f1 61.9 KiB 61.9 KiB +0.00% ⬇️ -4 0 0
use_rust/stm32h7 119.7 KiB 119.7 KiB +0.00% ⬇️ -4 0 0
use_config/nrf52832_ble — 397.6 KiB → 397.6 KiB (+0.00%)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 364868	   8620	  33624	 407112	  63648	rmk-nrf52832

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 364868	   8620	  33624	 407112	  63648	rmk-nrf52832

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%     +12  [ = ]       0    .debug_str
  +0.0%      +3  [ = ]       0    .strtab
  +4.6%      +3  [ = ]       0    [Unmapped]
  -0.0%     -10  [ = ]       0    .debug_loc
  -0.0%    -216  [ = ]       0    .debug_info
  -0.1%    -240  [ = ]       0    .debug_line
  -0.0%    -448  [ = ]       0    TOTAL
use_config/nrf52840_ble — 439.6 KiB → 439.6 KiB (+0.00%)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 397900	   8628	  43664	 450192	  6de90	rmk-nrf52840

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 397900	   8628	  43664	 450192	  6de90	rmk-nrf52840

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%     +12  [ = ]       0    .debug_str
  +0.0%      +3  [ = ]       0    .strtab
  -0.0%      -3  [ = ]       0    .debug_loc
  -0.0%    -216  [ = ]       0    .debug_info
  -0.1%    -240  [ = ]       0    .debug_line
  -0.0%    -444  [ = ]       0    TOTAL
use_config/nrf52840_ble_split (central) — 500.8 KiB → 500.8 KiB (+0.00%)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 455256	   8684	  48856	 512796	  7d31c	central

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 455256	   8684	  48856	 512796	  7d31c	central

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%     +12  [ = ]       0    .debug_str
  +0.0%      +3  [ = ]       0    .strtab
  -0.0%      -3  [ = ]       0    .debug_loc
 -12.2%      -6  [ = ]       0    [Unmapped]
  -0.0%    -216  [ = ]       0    .debug_info
  -0.1%    -234  [ = ]       0    .debug_line
  -0.0%    -444  [ = ]       0    TOTAL
use_config/nrf52840_ble_split (peripheral) — 318.8 KiB → 318.8 KiB (+0.00%)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 292804	   8500	  25184	 326488	  4fb58	peripheral

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 292804	   8500	  25184	 326488	  4fb58	peripheral

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%     +32  [ = ]       0    .debug_str
  +0.0%     +16  [ = ]       0    .strtab
  +0.0%      +1  [ = ]       0    .debug_line
  -1.7%      -1  [ = ]       0    [Unmapped]
  -0.0%      -2  [ = ]       0    .debug_info
  -0.0%      -2  [ = ]       0    .debug_loc
  +0.0%     +44  [ = ]       0    TOTAL
use_config/pi_pico_w_ble — 672.7 KiB → 672.7 KiB (+0.00% ⬇️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 635092	      0	  53704	 688796	  a829c	rmk-pi-pico-w

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 635100	      0	  53704	 688804	  a82a4	rmk-pi-pico-w

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +217  [ = ]       0    .debug_info
  +0.0%     +30  [ = ]       0    .debug_line
  +0.0%     +29  [ = ]       0    .debug_str
  +0.0%     +19  [ = ]       0    .strtab
  +7.4%      +4  [ = ]       0    [Unmapped]
  -0.0%      -8  -0.0%      -8    .text
  -0.0%     -11  [ = ]       0    .debug_loc
  +0.0%    +280  -0.0%      -8    TOTAL
use_config/rp2040 — 146.3 KiB → 146.3 KiB (+0.00%)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 135880	      0	  13908	 149788	  2491c	rmk-rp2040

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 135880	      0	  13908	 149788	  2491c	rmk-rp2040

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.2%    +526  [ = ]       0    .debug_loc
  +0.0%     +73  [ = ]       0    .debug_str
  +0.0%      +8  [ = ]       0    .strtab
  +0.0%      +7  [ = ]       0    .debug_info
  -2.5%      -1  [ = ]       0    [Unmapped]
  -0.0%     -77  [ = ]       0    .debug_line
  +0.0%    +536  [ = ]       0    TOTAL
use_config/rp2040_split (central) — 159.9 KiB → 159.9 KiB (+0.00% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 148912	      0	  14860	 163772	  27fbc	central

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 148908	      0	  14860	 163768	  27fb8	central

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
   +94%     +32  [ = ]       0    [Unmapped]
  +0.0%      +4  +0.0%      +4    .text
  -0.0%      -2  [ = ]       0    .debug_loc
  -0.0%      -5  [ = ]       0    .strtab
  -0.0%     -37  [ = ]       0    .debug_info
  -0.0%    -105  [ = ]       0    .debug_str
  -0.1%    -131  [ = ]       0    .debug_line
  -0.0%    -244  +0.0%      +4    TOTAL
use_config/rp2040_split (peripheral) — 27.9 KiB → 27.9 KiB (+0.00%)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  25696	     60	   2804	  28560	   6f90	peripheral

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  25696	     60	   2804	  28560	   6f90	peripheral

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [ = ]       0  [ = ]       0    TOTAL
use_config/stm32f1 — 62.6 KiB → 62.6 KiB (+0.00% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  57748	     28	   6336	  64112	   fa70	rmk-stm32f1

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  57744	     28	   6336	  64108	   fa6c	rmk-stm32f1

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +140  [ = ]       0    .debug_str
  +0.0%      +5  [ = ]       0    .strtab
  +0.0%      +4  +0.0%      +4    .text
  +1.5%      +1  [ = ]       0    [Unmapped]
  -0.0%      -6  [ = ]       0    .debug_line
  +0.0%    +144  +0.0%      +4    TOTAL
use_config/stm32h7 — 100.4 KiB → 100.4 KiB (+0.00% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  94440	    264	   8128	 102832	  191b0	rmk-stm32h7

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  94436	    264	   8128	 102828	  191ac	rmk-stm32h7

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.2%    +266  [ = ]       0    .debug_line
  +0.0%     +37  [ = ]       0    .debug_str
  +0.0%     +36  [ = ]       0    .debug_info
   +55%     +22  [ = ]       0    [Unmapped]
  +0.0%      +4  +0.0%      +4    .text
  -0.0%      -9  [ = ]       0    .strtab
  +0.0%    +356  +0.0%      +4    TOTAL
use_rust/nrf52832_ble — 385.2 KiB → 385.2 KiB (+0.00% ⬇️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 352228	   8620	  33560	 394408	  604a8	rmk-nrf52832

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 352232	   8620	  33560	 394412	  604ac	rmk-nrf52832

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +138  [ = ]       0    .debug_line
  +0.0%    +117  [ = ]       0    .debug_info
  +0.0%    +110  [ = ]       0    .debug_str
  +0.0%     +30  [ = ]       0    .strtab
  +0.1%     +12  [ = ]       0    .debug_abbrev
  +0.0%     +10  [ = ]       0    .debug_loc
   +12%      +7  [ = ]       0    [Unmapped]
  -0.0%      -4  -0.0%      -4    .text
  +0.0%    +420  -0.0%      -4    TOTAL
use_rust/nrf52840_ble — 435.2 KiB → 435.2 KiB (+0.00% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 396136	   8628	  40904	 445668	  6cce4	rmk-nrf52840

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 396132	   8628	  40904	 445664	  6cce0	rmk-nrf52840

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%      +4  +0.0%      +4    .text
  -7.4%      -4  [ = ]       0    [Unmapped]
  -0.0%     -36  [ = ]       0    .debug_line
  -0.0%     -36  +0.0%      +4    TOTAL
use_rust/nrf52840_ble_split (central) — 504.3 KiB → 504.3 KiB (+0.00% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 456876	   8684	  50824	 516384	  7e120	central

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 456868	   8684	  50824	 516376	  7e118	central

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%     +85  [ = ]       0    .debug_str
  +0.0%     +23  [ = ]       0    .strtab
  +0.0%     +10  [ = ]       0    .debug_loc
  +0.0%      +8  +0.0%      +8    .text
 -15.6%     -10  [ = ]       0    [Unmapped]
  -0.5%     -39  [ = ]       0    .debug_abbrev
  -0.0%    -104  [ = ]       0    .debug_line
  -0.0%    -173  [ = ]       0    .debug_info
  -0.0%    -200  +0.0%      +8    TOTAL
use_rust/nrf52840_ble_split (peripheral) — 316.4 KiB → 316.4 KiB (+0.00%)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 290540	   8500	  24952	 323992	  4f198	peripheral

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 290540	   8500	  24952	 323992	  4f198	peripheral

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +234  [ = ]       0    .debug_info
  +0.0%    +123  [ = ]       0    .debug_str
  +0.0%     +97  [ = ]       0    .debug_line
  +0.0%     +10  [ = ]       0    .debug_loc
  -0.0%     -12  [ = ]       0    .strtab
  +0.0%    +452  [ = ]       0    TOTAL
use_rust/pi_pico_w_ble — 672.1 KiB → 672.1 KiB (+0.00%)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 634840	      0	  53384	 688224	  a8060	rmk-pi-pico-w

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 634840	      0	  53384	 688224	  a8060	rmk-pi-pico-w

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.1% +2.38Ki  [ = ]       0    .debug_str
  +0.1%    +333  [ = ]       0    .strtab
  +0.0%      +5  [ = ]       0    .debug_info
  -1.8%      -1  [ = ]       0    [Unmapped]
  -0.0%      -7  [ = ]       0    .debug_line
  +0.0% +2.70Ki  [ = ]       0    TOTAL
use_rust/rp2040 — 145.6 KiB → 145.6 KiB (+0.00% ⬇️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 135312	      0	  13748	 149060	  24644	rmk-rp2040

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 135316	      0	  13748	 149064	  24648	rmk-rp2040

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.1%    +135  [ = ]       0    .debug_line
  +0.0%     +46  [ = ]       0    .debug_info
  +0.0%     +29  [ = ]       0    .debug_str
  +1.7%      +1  [ = ]       0    [Unmapped]
  -0.0%      -4  -0.0%      -4    .text
  -0.0%      -7  [ = ]       0    .strtab
  +0.0%    +200  -0.0%      -4    TOTAL
use_rust/rp2040_split (central) — 158.4 KiB → 158.4 KiB (+0.00% ⬇️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 147612	      0	  14604	 162216	  279a8	central

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 147616	      0	  14604	 162220	  279ac	central

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +784  [ = ]       0    .debug_str
  +0.0%     +56  [ = ]       0    .strtab
  +0.0%     +18  [ = ]       0    .debug_line
  +0.0%     +12  [ = ]       0    .debug_info
   +13%      +6  [ = ]       0    [Unmapped]
  -0.0%      -4  -0.0%      -4    .text
  +0.0%    +872  -0.0%      -4    TOTAL
use_rust/rp2040_split (peripheral) — 28.2 KiB → 28.2 KiB (+0.00%)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  25796	     60	   3068	  28924	   70fc	peripheral

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  25796	     60	   3068	  28924	   70fc	peripheral

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%     +92  [ = ]       0    .debug_str
  +0.0%     +92  [ = ]       0    TOTAL
use_rust/stm32f1 — 61.9 KiB → 61.9 KiB (+0.00% ⬇️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  57080	     28	   6272	  63380	   f794	rmk-stm32f1

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  57084	     28	   6272	  63384	   f798	rmk-stm32f1

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%     +62  [ = ]       0    .debug_str
  +0.0%      +9  [ = ]       0    .strtab
  +0.0%      +6  [ = ]       0    .debug_line
  +5.3%      +3  [ = ]       0    [Unmapped]
  -0.0%      -4  -0.0%      -4    .text
  +0.0%     +76  -0.0%      -4    TOTAL
use_rust/stm32h7 — 119.7 KiB → 119.7 KiB (+0.00% ⬇️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 108184	    320	  14028	 122532	  1dea4	rmk-stm32h7

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 108188	    320	  14028	 122536	  1dea8	rmk-stm32h7

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%     +10  [ = ]       0    .debug_loc
   +13%      +7  [ = ]       0    [Unmapped]
  -0.0%      -1  [ = ]       0    .strtab
  -0.0%      -4  -0.0%      -4    .text
  +0.0%     +12  -0.0%      -4    TOTAL

@Schievel1
Schievel1 force-pushed the auto-flash-layout branch 2 times, most recently from c50e87d to 02022c8 Compare August 3, 2026 08:54
@Schievel1

Copy link
Copy Markdown
Contributor Author

The symbol existence is checked in rmk when bootloader feature like rmk-boot is enabled. This means that if rmk-boot is defined, the user should either define their own __rmk_boot* symbols in their linkerscript or use rmk-boot.x.

And I think it should not be overwritten by keyboard.toml. Let user define their layout in their linker script is better imo, because I think 99% users won't do it. That makes the configuration cleaner.

The last point from me is the storage size, default 128KB is a little bit more. For example, nRF52833 has only 512KB flash(I just realized that it's impossible to use rmk-boot on it). I want it to be tunable, or default to 32KB.

for now I prefer to bind everything bootloader related to the dfu feature, since this is the only benefit we get at the moment with rmk-boot. There is not other reason to use it. As we spoke on discord, I will try and make bootloader versions that don't have DFU partitions and the failsafe swap, then we can split a new rmk-boot feature off of dfu.

The offsets and sizes are now bound to symbols defined in rmk-boot.x. This file is created by rmk-boot at built. The pre-built binaries come with pre-created rmx-boot.x, that the user copies in their project dir instead of a memory.x.
keyboard.toml can't change that layout anymore, instead when users want to roll their own bootloader, their have to define the offsets in their linker script and link with it.

Storage size is not easily changeable in RMK when using embassy-boot, because when changing the storage size (offset) this also changes the size of the ACTIVE and DFU partitions. So you end up with new sizes and offsets for them as well. I tuned down the default to 32K and in rmk-boot I added the possibility to easily change the storage size. Then users just need to do change that, build rmk-boot, flash it and copy the rmk-boot.x into their project to change the storage size.

Comment thread examples/use_rust/rp2040_embassy_boot_split/build.rs Outdated

@HaoboGu HaoboGu left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I agree with you! The current way looks great and the only comment from me is same as before -- we should build the DFU based on embedded-storage trait, it isn't a blocker of this PR, but should be done in the near future

Comment thread rmk/src/dfu/rp.rs
///
/// Reads linker-defined absolute symbols. The symbols must be present in the
/// linked binary or the firmware will not link.
pub fn init_flash_from_linkerscript(flash_peri: Peri<'static, FLASH>) -> PartitionType {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This function is duplicate, this should be a generic should over (Async)NorFlash in embedded-storage trait.

@Schievel1

Copy link
Copy Markdown
Contributor Author

Will be done when I finally get my external flash to test things out.

I prefer smaller PRs that are about one thing only. It's easier to review and test this way.

…_flash_from_linkerscript

Signed-off-by: Pascal Jäger <pascal.jaeger@leimstift.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants