changeset 569:3508e6dc4f22

Added new section "lower.font": To avoid section overlap caused by the memory needs of the new characters, a new section has been introduced to store the font data behind the code and data sections. The handling is a little bit overengineered but was used to have the same look as the upper section, where a defined structure had to be rebuild to match the output of another compiler. moving the lower section behind the upper would save firmware space but result in the need of a new fontlib version.
author Ideenmodellierer
date Mon, 30 Nov 2020 20:52:49 +0100
parents 1eee6fb108cb
children 701ead8dddab
files Common/CPU1-F429.ld Discovery/Inc/Fonts/font_T105_extra.h Discovery/Inc/Fonts/font_T54_extra.h Discovery/Inc/Fonts/font_T84.h Discovery/Inc/Fonts/font_T84_extra.h Discovery/Inc/gfx_fonts.h
diffstat 6 files changed, 31 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/Common/CPU1-F429.ld	Sun Nov 29 11:41:03 2020 +0100
+++ b/Common/CPU1-F429.ld	Mon Nov 30 20:52:49 2020 +0100
@@ -208,7 +208,15 @@
     /* Define Known Address for Each Font */
     /* Flash Sector 23 is protected (bootloader font + image) => use end of sector 22 */
 
-  
+.lower_fonts 	0x080A0000  : {
+	 *(.lower_fonts.image_data_*)
+	 
+	 *(.lower_fonts.*) 
+} > ROM
+
+.lower_directory : {
+	*(.lower_font_directory*)
+} > ROM
 
 /* TODO: the linker does not seem to work as the one of used for initial bootloader ==> Reconstruct layout to keep it compatible with the first version */
 /* TODO: cleanup during next iteration */
--- a/Discovery/Inc/Fonts/font_T105_extra.h	Sun Nov 29 11:41:03 2020 +0100
+++ b/Discovery/Inc/Fonts/font_T105_extra.h	Mon Nov 30 20:52:49 2020 +0100
@@ -29,7 +29,7 @@
 
 #include "gfx_fonts.h"
 
-static const uint8_t image_data_FontT105_0x0066[(32 * 80) - (6 * 79)] = {
+static const uint8_t image_data_FontT105_0x0066[(32 * 80) - (6 * 79)] __attribute__(( section(".lower_fonts.image_data_FontT105_0x0066") )) = {
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
@@ -64,7 +64,7 @@
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 };
 
-static const uint8_t image_data_FontT105_0x0074[(29 * 80) - (6 * 79)] = {
+static const uint8_t image_data_FontT105_0x0074[(29 * 80) - (6 * 79)] __attribute__(( section(".lower_fonts.image_data_FontT105_0x0074") )) = {
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,
@@ -94,10 +94,10 @@
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,
 };
 
-static const tImage FontT105_0x0066 = { image_data_FontT105_0x0066, 32, 80};
-static const tImage FontT105_0x0074 = { image_data_FontT105_0x0074, 27, 80};
+static const tImage FontT105_0x0066 __attribute__(( section(".lower_fonts.FontT105_0x0066") )) = { image_data_FontT105_0x0066, 32, 80};
+static const tImage FontT105_0x0074 __attribute__(( section(".lower_fonts.FontT105_0x0074") )) = { image_data_FontT105_0x0074, 27, 80};
 
-static const tChar FontT105_array_extra[] =
+static const tChar FontT105_array_extra[] __attribute__(( section(".lower_fonts.FontT105_array_extra") )) =
 {
   // character: '"'
   {0x0066, &FontT105_0x0066},
@@ -106,4 +106,4 @@
   {0x0074, &FontT105_0x0074}
 };
 
-const tFont FontT105Extra =  { 2, FontT105_array_extra, 15, 52, 80};
+const tFont FontT105Extra __attribute__ (( used, section(".lower_font_directory.FontT105Extra") )) =  { 2, FontT105_array_extra, 15, 52, 80};
--- a/Discovery/Inc/Fonts/font_T54_extra.h	Sun Nov 29 11:41:03 2020 +0100
+++ b/Discovery/Inc/Fonts/font_T54_extra.h	Mon Nov 30 20:52:49 2020 +0100
@@ -29,7 +29,7 @@
 
 #include "gfx_fonts.h"
 
-static const uint8_t image_data_FontT54_0x0066[(20 * 42) - (6 * 41)] = {
+static const uint8_t image_data_FontT54_0x0066[(20 * 42) - (6 * 41)] __attribute__(( section(".lower_fonts.image_data_FontT54_0x0066") )) = {
 		0x01,//,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 		0x01,//,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 		0x01,//,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
@@ -52,7 +52,7 @@
 		0x01,//,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 };
 
-static const uint8_t image_data_FontT54_0x0074[(18 * 42) - (6 * 41)] = {
+static const uint8_t image_data_FontT54_0x0074[(18 * 42) - (6 * 41)] __attribute__(( section(".lower_fonts.image_data_FontT54_0x0074") )) = {
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
@@ -73,10 +73,10 @@
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 };
 
-static const tImage FontT54_0x0066 = { image_data_FontT54_0x0066, 20, 42};
-static const tImage FontT54_0x0074 = { image_data_FontT54_0x0074, 18, 42};
+static const tImage FontT54_0x0066 __attribute__(( section(".lower_fonts.FontT54_0x0066") )) = { image_data_FontT54_0x0066, 20, 42};
+static const tImage FontT54_0x0074 __attribute__(( section(".lower_fonts.FontT54_0x0074") )) = { image_data_FontT54_0x0074, 18, 42};
 
-static const tChar FontT54_array_extra[] =
+static const tChar FontT54_array_extra[] __attribute__(( section(".lower_fonts.FontT54_array_extra") )) =
 {
   // character: '"'
   {0x0066, &FontT54_0x0066},
@@ -85,4 +85,4 @@
   {0x0074, &FontT54_0x0074}
 };
 
-const tFont FontT54Extra = { 2, FontT54_array_extra, 18, 28, 42 };
+const tFont FontT54Extra __attribute__ (( used, section(".lower_font_directory.FontT54Extra") )) = { 2, FontT54_array_extra, 18, 28, 42 };
--- a/Discovery/Inc/Fonts/font_T84.h	Sun Nov 29 11:41:03 2020 +0100
+++ b/Discovery/Inc/Fonts/font_T84.h	Mon Nov 30 20:52:49 2020 +0100
@@ -574,4 +574,4 @@
 
 const tFont FontT84 __attribute__ (( used, section(".upper_font_directory.FontT84") )) = { 11, FontT84_array,0, 43, 64 };
 
-const tFont FontT84Spaced =  { 11, FontT84_array, 18, 43, 64 };
+const tFont FontT84Spaced __attribute__ (( used, section(".lower_font_directory.FontT84Spaced") )) =  { 11, FontT84_array, 18, 43, 64 };
--- a/Discovery/Inc/Fonts/font_T84_extra.h	Sun Nov 29 11:41:03 2020 +0100
+++ b/Discovery/Inc/Fonts/font_T84_extra.h	Mon Nov 30 20:52:49 2020 +0100
@@ -29,7 +29,7 @@
 
 #include "gfx_fonts.h"
 
-static const uint8_t image_data_FontT84_0x0027[(12 * 64) - (4 * 63)] = {
+static const uint8_t image_data_FontT84_0x0027[(12 * 64) - (4 * 63)] __attribute__(( section(".lower_fonts.image_data_FontT84_0x0027") )) = {
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0a,0x33,0x9f,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x24,0x00,0x00,0x00,
@@ -44,7 +44,7 @@
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 };
 
-static const uint8_t image_data_FontT84_0x0066[(26 * 64) - (6 * 63)] = {
+static const uint8_t image_data_FontT84_0x0066[(26 * 64) - (6 * 63)] __attribute__(( section(".lower_fonts.image_data_FontT84_0x0066") ))= {
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
@@ -73,7 +73,7 @@
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 };
 
-static const uint8_t image_data_FontT84_0x0074[(23 * 64) - (6 * 63)] = {
+static const uint8_t image_data_FontT84_0x0074[(23 * 64) - (6 * 63)] __attribute__(( section(".lower_fonts.image_data_FontT84_0x0074") )) = {
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
@@ -99,15 +99,15 @@
 		0x01,//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 };
 
-static const tImage FontT84_0x0027 = { image_data_FontT84_0x0027, 12, 64};
-static const tImage FontT84_0x0066 = { image_data_FontT84_0x0066, 26, 64};
-static const tImage FontT84_0x0074 = { image_data_FontT84_0x0074, 23, 64};
+static const tImage FontT84_0x0027  __attribute__(( section(".lower_fonts.FontT84_0x0027") )) = { image_data_FontT84_0x0027, 12, 64};
+static const tImage FontT84_0x0066  __attribute__(( section(".lower_fonts.FontT84_0x0066") )) = { image_data_FontT84_0x0066, 26, 64};
+static const tImage FontT84_0x0074  __attribute__(( section(".lower_fonts.FontT84_0x0074") )) = { image_data_FontT84_0x0074, 23, 64};
 
-static const tChar FontT84_array_extra[] =
+static const tChar FontT84_array_extra[] __attribute__(( section(".lower_fonts.FontT84_array_extra") )) =
 {
   {0x0027, &FontT84_0x0027},
   {0x0066, &FontT84_0x0066},
   {0x0074, &FontT84_0x0074}
 };
 
-const tFont FontT84Extra =  { 3, FontT84_array_extra, 18, 43, 64 };
+const tFont FontT84Extra __attribute__ (( used, section(".lower_font_directory.FontT84Extra") ))  =  { 3, FontT84_array_extra, 18, 43, 64 };
--- a/Discovery/Inc/gfx_fonts.h	Sun Nov 29 11:41:03 2020 +0100
+++ b/Discovery/Inc/gfx_fonts.h	Mon Nov 30 20:52:49 2020 +0100
@@ -77,6 +77,7 @@
 /* TODO: Looking at older map files the directories should be placed within the firmware memory */
 /*       As well as the image data => to be confirmed */ 
 #define UPPER_FONT_DIRECTORY __attribute__ (( used, section(".upper_font_directory") ))
+#define LOWER_FONT_DIRECTORY __attribute__ (( used, section(".lower_font_directory") ))	/* store new fonts within firmware image to avoid fontlib update */
 
 #define UPPER_IMAGE_DIRECTORY __attribute__(( section(".lower_image_directory") ))
 #define UPPER_IMAGES          __attribute__(( section(".lower_images") ))