diff --git a/hw-tests/bmatest/build_image b/hw-tests/bmatest/build_image
new file mode 100755
index 0000000000000000000000000000000000000000..d71c8a248b4a1e8f49940025fc1de32786add5c9
--- /dev/null
+++ b/hw-tests/bmatest/build_image
@@ -0,0 +1,6 @@
+name=$(basename `pwd`)
+ninja -C ../../build -t clean hw-tests/$name/$name.elf
+ninja -C ../../build hw-tests/$name/ecgtest.elf
+arm-none-eabi-objcopy -O binary ../../build/hw-tests/$name/$name.elf ../../build/hw-tests/$name/$name.bin
+cp ../../build/hw-tests/$name/$name.bin card10.bin
+../../bootloader/crc_patch.py card10.bin
diff --git a/hw-tests/bmetest/build_image b/hw-tests/bmetest/build_image
new file mode 100755
index 0000000000000000000000000000000000000000..d71c8a248b4a1e8f49940025fc1de32786add5c9
--- /dev/null
+++ b/hw-tests/bmetest/build_image
@@ -0,0 +1,6 @@
+name=$(basename `pwd`)
+ninja -C ../../build -t clean hw-tests/$name/$name.elf
+ninja -C ../../build hw-tests/$name/ecgtest.elf
+arm-none-eabi-objcopy -O binary ../../build/hw-tests/$name/$name.elf ../../build/hw-tests/$name/$name.bin
+cp ../../build/hw-tests/$name/$name.bin card10.bin
+../../bootloader/crc_patch.py card10.bin
diff --git a/hw-tests/ecgtest/build_image b/hw-tests/ecgtest/build_image
new file mode 100755
index 0000000000000000000000000000000000000000..d71c8a248b4a1e8f49940025fc1de32786add5c9
--- /dev/null
+++ b/hw-tests/ecgtest/build_image
@@ -0,0 +1,6 @@
+name=$(basename `pwd`)
+ninja -C ../../build -t clean hw-tests/$name/$name.elf
+ninja -C ../../build hw-tests/$name/ecgtest.elf
+arm-none-eabi-objcopy -O binary ../../build/hw-tests/$name/$name.elf ../../build/hw-tests/$name/$name.bin
+cp ../../build/hw-tests/$name/$name.bin card10.bin
+../../bootloader/crc_patch.py card10.bin
diff --git a/hw-tests/hello-world/build_image b/hw-tests/hello-world/build_image
new file mode 100755
index 0000000000000000000000000000000000000000..d71c8a248b4a1e8f49940025fc1de32786add5c9
--- /dev/null
+++ b/hw-tests/hello-world/build_image
@@ -0,0 +1,6 @@
+name=$(basename `pwd`)
+ninja -C ../../build -t clean hw-tests/$name/$name.elf
+ninja -C ../../build hw-tests/$name/ecgtest.elf
+arm-none-eabi-objcopy -O binary ../../build/hw-tests/$name/$name.elf ../../build/hw-tests/$name/$name.bin
+cp ../../build/hw-tests/$name/$name.bin card10.bin
+../../bootloader/crc_patch.py card10.bin
diff --git a/hw-tests/imutest/build_image b/hw-tests/imutest/build_image
new file mode 100755
index 0000000000000000000000000000000000000000..d71c8a248b4a1e8f49940025fc1de32786add5c9
--- /dev/null
+++ b/hw-tests/imutest/build_image
@@ -0,0 +1,6 @@
+name=$(basename `pwd`)
+ninja -C ../../build -t clean hw-tests/$name/$name.elf
+ninja -C ../../build hw-tests/$name/ecgtest.elf
+arm-none-eabi-objcopy -O binary ../../build/hw-tests/$name/$name.elf ../../build/hw-tests/$name/$name.bin
+cp ../../build/hw-tests/$name/$name.bin card10.bin
+../../bootloader/crc_patch.py card10.bin
diff --git a/hw-tests/ips/build_image b/hw-tests/ips/build_image
new file mode 100755
index 0000000000000000000000000000000000000000..d71c8a248b4a1e8f49940025fc1de32786add5c9
--- /dev/null
+++ b/hw-tests/ips/build_image
@@ -0,0 +1,6 @@
+name=$(basename `pwd`)
+ninja -C ../../build -t clean hw-tests/$name/$name.elf
+ninja -C ../../build hw-tests/$name/ecgtest.elf
+arm-none-eabi-objcopy -O binary ../../build/hw-tests/$name/$name.elf ../../build/hw-tests/$name/$name.bin
+cp ../../build/hw-tests/$name/$name.bin card10.bin
+../../bootloader/crc_patch.py card10.bin
diff --git a/lib/sdk/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665.ld b/lib/sdk/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665.ld
index cc885e958b916122088c40ecd176404e7cf335fd..791899b152df0e6410e7026ce2a143197c1b2d1d 100644
--- a/lib/sdk/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665.ld
+++ b/lib/sdk/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665.ld
@@ -38,7 +38,7 @@
 /* If used, they should be adjusted for the external Flash/RAM size */
 MEMORY {
     SPIX (rx)  : ORIGIN = 0x08000000, LENGTH = 128M
-    FLASH (rx) : ORIGIN = 0x10000000, LENGTH = 1M
+    FLASH (rx) : ORIGIN = 0x10010000, LENGTH = 960k
     SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 512k
     SPID (r)   : ORIGIN = 0x80000000, LENGTH = 512M
 }
diff --git a/lib/sdk/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665_core0.ld b/lib/sdk/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665_core0.ld
index 12c8bdaf96f139580693d4390d9c7d26d4b76453..7301f9fe68f7e65fa512c0e56668ae5d8e6a6d0b 100644
--- a/lib/sdk/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665_core0.ld
+++ b/lib/sdk/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665_core0.ld
@@ -38,7 +38,7 @@
 /* If used, they should be adjusted for the external Flash/RAM size */
 MEMORY {
     SPIX (rx)  : ORIGIN = 0x08000000, LENGTH = 128M
-    FLASH (rx) : ORIGIN = 0x10000000, LENGTH = 256k
+    FLASH (rx) : ORIGIN = 0x10010000, LENGTH = 192k
     SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 256k
     SPID (r)   : ORIGIN = 0x80000000, LENGTH = 512M
 }