diff Discovery/Inc/gfx_fonts.h @ 38:5f11787b4f42

include in ostc4 repository
author heinrichsweikamp
date Sat, 28 Apr 2018 11:52:34 +0200
parents
children 7c786c7aa99b
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Discovery/Inc/gfx_fonts.h	Sat Apr 28 11:52:34 2018 +0200
@@ -0,0 +1,75 @@
+///////////////////////////////////////////////////////////////////////////////
+/// -*- coding: UTF-8 -*-
+///
+/// \file   Discovery/Inc/gfx_fonts.h
+/// \brief  Header file to control placement of font in STM32 Flash
+/// \author heinrichs weikamp gmbh
+/// \date   14-Aug-2014
+///
+/// $Id$
+///////////////////////////////////////////////////////////////////////////////
+/// \par Copyright (c) 2014-2018 Heinrichs Weikamp gmbh
+///
+///     This program is free software: you can redistribute it and/or modify
+///     it under the terms of the GNU General Public License as published by
+///     the Free Software Foundation, either version 3 of the License, or
+///     (at your option) any later version.
+///
+///     This program is distributed in the hope that it will be useful,
+///     but WITHOUT ANY WARRANTY; without even the implied warranty of
+///     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+///     GNU General Public License for more details.
+///
+///     You should have received a copy of the GNU General Public License
+///     along with this program.  If not, see <http://www.gnu.org/licenses/>.
+//////////////////////////////////////////////////////////////////////////////
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef GFX_FONTS_H
+#define GFX_FONTS_H
+
+#include "gfx.h"
+
+// From image_heinrichs_weikamp.c
+enum { indexHWcolorSIZE = 256 };
+
+// Forward declarations
+//
+// 2018-01-01 jDG:
+//  - the exact address is fixed in linker script CPU1-F429.ld,
+//    so that every font can be used even when not included in the actual
+//    binary (boot-loader, fonts, or firmware).
+//
+//  - Actual font data is defined by the OSTC4/FontPack project, that shall
+//    be loaded before the firmware is executed.
+//
+//  - Font directory starts at address 0x081E0000. Each header is 12 bytes.
+//    A 0xFFFFFFFF (32 bits) marks the directory's end.
+//    It is stored between __font_directory and __font_directory_end;
+//
+//  - Font data (chars) is stored after 0x08132040 (end of font's SFirmareData).
+//    So there is space for 0x081E0000 - 0x08132040 = ADFC0 = 694 KB of fonts.
+//    Actual data is stored between __upper_font_data and __upper_font_data_end,
+//    and uses 0x081b9a3a - 0x08132040 = 879FA = 542 KB.
+//
+extern const tFont Awe48;
+extern const tFont FontT24;
+extern const tFont FontT42;
+extern const tFont FontT48;
+extern const tFont FontT54;
+extern const tFont FontT84;
+extern const tFont FontT105;
+extern const tFont FontT144;
+
+extern const tFont Batt24;
+
+extern const tImage ImgHWcolor;
+extern const tImage ImgOSTC;
+
+extern const uint32_t indexHWcolor[indexHWcolorSIZE];
+
+// Macro to store in UPPER rom font sections
+#define UPPER_FONT_DIRECTORY __attribute__(( section(".upper_font_directory") ))
+#define UPPER_FONTS          __attribute__(( section(".upper_fonts") ))
+
+#endif // GFX_FONTS_H