summaryrefslogtreecommitdiff
path: root/firmware/drivers
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2005-10-19 19:35:24 +0000
committerJens Arnold <amiconn@rockbox.org>2005-10-19 19:35:24 +0000
commitabd9f83e92fae22dcb9806deae665b7b303f430d (patch)
tree8d0d1d65c6aaa596e171cda2d78706739046d0bd /firmware/drivers
parent266f173b72967bae96119e5428fabe692edd8c30 (diff)
Two new sections for IRAM usage: .irodata (selectable with the ICONST_ATTR attribute macro), allowing to put 'const' data into IRAM without causing a section type conflict, and .ibss (selectable with the IBSS_ATTR attribute macro) for uninitialised data. * Rockbox core: Adjusted the linker scripts and init code to not include the .ibss section in the binary, it is cleared instead. Saves ~500 bytes on archos and ~30KB on iriver. Codecs and plugins don't handle .ibss in a special way yet. * The init code properly handles empty sections now (except .stack, which should never be empty). * Unified the init code for SH1 and coldfire a bit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7644 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers')
-rw-r--r--firmware/drivers/lcd-h100-remote.c2
-rw-r--r--firmware/drivers/lcd-h100.c5
2 files changed, 3 insertions, 4 deletions
diff --git a/firmware/drivers/lcd-h100-remote.c b/firmware/drivers/lcd-h100-remote.c
index bde2b16b26..afd0377914 100644
--- a/firmware/drivers/lcd-h100-remote.c
+++ b/firmware/drivers/lcd-h100-remote.c
@@ -67,7 +67,7 @@
/*** globals ***/
unsigned char lcd_remote_framebuffer[LCD_REMOTE_HEIGHT/8][LCD_REMOTE_WIDTH]
- IDATA_ATTR;
+ IBSS_ATTR;
static int drawmode = DRMODE_SOLID;
static int xmargin = 0;
diff --git a/firmware/drivers/lcd-h100.c b/firmware/drivers/lcd-h100.c
index edc6e2e33b..001c3849dd 100644
--- a/firmware/drivers/lcd-h100.c
+++ b/firmware/drivers/lcd-h100.c
@@ -61,10 +61,9 @@
/*** globals ***/
-unsigned char lcd_framebuffer[LCD_HEIGHT/4][LCD_WIDTH] IDATA_ATTR;
+unsigned char lcd_framebuffer[LCD_HEIGHT/4][LCD_WIDTH] IBSS_ATTR;
-/* should be 'const', but this causes a section type conflict */
-static unsigned char dibits[16] IDATA_ATTR = {
+static const unsigned char dibits[16] ICONST_ATTR = {
0x00, 0x03, 0x0C, 0x0F, 0x30, 0x33, 0x3C, 0x3F,
0xC0, 0xC3, 0xCC, 0xCF, 0xF0, 0xF3, 0xFC, 0xFF
};