summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2002-08-13 23:13:01 +0000
committerBjörn Stenberg <bjorn@haxx.se>2002-08-13 23:13:01 +0000
commitebb14ca5f944df76986dbb9f8ec16bae1fbd20a7 (patch)
treebe18c2969fb2420ccbe4adddfd13a9b49b253a49
parent509b42561686174f09b56b16e622f24d2efad774 (diff)
downloadrockbox-ebb14ca5f944df76986dbb9f8ec16bae1fbd20a7.tar.gz
rockbox-ebb14ca5f944df76986dbb9f8ec16bae1fbd20a7.zip
Gained about 128 KB buffer space by removing malloc() and the heap
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1726 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/main.c6
-rw-r--r--apps/playlist.c2
-rw-r--r--apps/recorder/bmp.c4
-rw-r--r--firmware/Makefile2
-rw-r--r--firmware/ajf.c1
-rw-r--r--firmware/app.lds7
-rw-r--r--firmware/mpeg.c24
-rw-r--r--firmware/player.lds7
8 files changed, 20 insertions, 33 deletions
diff --git a/apps/main.c b/apps/main.c
index 39609e6a26..a6e90eed3c 100644
--- a/apps/main.c
+++ b/apps/main.c
@@ -33,13 +33,9 @@
33#include "powermgmt.h" 33#include "powermgmt.h"
34#include "adc.h" 34#include "adc.h"
35#include "i2c.h" 35#include "i2c.h"
36#ifndef SIMULATOR
37#include "dmalloc.h"
38#include "bmalloc.h"
39#ifndef DEBUG 36#ifndef DEBUG
40#include "serial.h" 37#include "serial.h"
41#endif 38#endif
42#endif
43#include "mpeg.h" 39#include "mpeg.h"
44#include "main_menu.h" 40#include "main_menu.h"
45#include "thread.h" 41#include "thread.h"
@@ -95,8 +91,6 @@ void init(void)
95 91
96 settings_reset(); 92 settings_reset();
97 93
98 dmalloc_initialize();
99 bmalloc_add_pool(poolstart, poolend-poolstart);
100 lcd_init(); 94 lcd_init();
101 95
102 show_logo(); 96 show_logo();
diff --git a/apps/playlist.c b/apps/playlist.c
index 0d9df36e32..692ec4b989 100644
--- a/apps/playlist.c
+++ b/apps/playlist.c
@@ -18,8 +18,6 @@
18 ****************************************************************************/ 18 ****************************************************************************/
19 19
20#include <stdio.h> 20#include <stdio.h>
21#include <malloc.h>
22
23#include <stdlib.h> 21#include <stdlib.h>
24#include <string.h> 22#include <string.h>
25#include "playlist.h" 23#include "playlist.h"
diff --git a/apps/recorder/bmp.c b/apps/recorder/bmp.c
index d02e9d4b15..a92d521ce0 100644
--- a/apps/recorder/bmp.c
+++ b/apps/recorder/bmp.c
@@ -32,6 +32,8 @@
32 32
33#include "file.h" 33#include "file.h"
34 34
35#if 0
36
35#ifdef __GNUC__ 37#ifdef __GNUC__
36#define STRUCT_PACKED __attribute__((packed)) 38#define STRUCT_PACKED __attribute__((packed))
37#else 39#else
@@ -585,3 +587,5 @@ int main(int argc, char **argv)
585} 587}
586 588
587#endif 589#endif
590
591#endif /* 0 */
diff --git a/firmware/Makefile b/firmware/Makefile
index eb173848f3..f3de26b48a 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -33,7 +33,7 @@ else
33CFLAGS += -fomit-frame-pointer -fschedule-insns 33CFLAGS += -fomit-frame-pointer -fschedule-insns
34endif 34endif
35 35
36SRC := $(wildcard drivers/*.c common/*.c malloc/*.c *.c) 36SRC := $(wildcard drivers/*.c common/*.c *.c)
37 37
38OBJS := $(SRC:%.c=$(OBJDIR)/%.o) $(OBJDIR)/crt0.o 38OBJS := $(SRC:%.c=$(OBJDIR)/%.o) $(OBJDIR)/crt0.o
39DEPS:=.deps 39DEPS:=.deps
diff --git a/firmware/ajf.c b/firmware/ajf.c
index e542bdc81e..82ba0b7939 100644
--- a/firmware/ajf.c
+++ b/firmware/ajf.c
@@ -21,7 +21,6 @@
21#endif 21#endif
22#include <file.h> 22#include <file.h>
23#include "ajf.h" 23#include "ajf.h"
24#include <malloc.h>
25#include <string.h> 24#include <string.h>
26#include <errno.h> 25#include <errno.h>
27#include <stdbool.h> 26#include <stdbool.h>
diff --git a/firmware/app.lds b/firmware/app.lds
index 810695ae45..2e594b6db1 100644
--- a/firmware/app.lds
+++ b/firmware/app.lds
@@ -51,13 +51,6 @@ SECTIONS
51 _end = .; 51 _end = .;
52 } > DRAM 52 } > DRAM
53 53
54 .heap :
55 {
56 _poolstart = .;
57 . = 0x20000;
58 _poolend = .;
59 } > DRAM
60
61 .mp3buf : 54 .mp3buf :
62 { 55 {
63 _mp3buf = .; 56 _mp3buf = .;
diff --git a/firmware/mpeg.c b/firmware/mpeg.c
index a85545efce..f9df3236f2 100644
--- a/firmware/mpeg.c
+++ b/firmware/mpeg.c
@@ -23,7 +23,6 @@
23#include "id3.h" 23#include "id3.h"
24#include "mpeg.h" 24#include "mpeg.h"
25#include "ata.h" 25#include "ata.h"
26#include "malloc.h"
27#include "string.h" 26#include "string.h"
28#ifndef SIMULATOR 27#ifndef SIMULATOR
29#include "i2c.h" 28#include "i2c.h"
@@ -147,9 +146,11 @@ struct id3tag
147{ 146{
148 struct mp3entry id3; 147 struct mp3entry id3;
149 int mempos; 148 int mempos;
149 bool used;
150}; 150};
151 151
152static struct id3tag *id3tags[MAX_ID3_TAGS]; 152static struct id3tag *id3tags[MAX_ID3_TAGS];
153static struct id3tag _id3tags[MAX_ID3_TAGS];
153 154
154static unsigned int current_track_counter = 0; 155static unsigned int current_track_counter = 0;
155static unsigned int last_track_counter = 0; 156static unsigned int last_track_counter = 0;
@@ -202,7 +203,6 @@ static bool append_tag(struct id3tag *tag)
202static void remove_current_tag(void) 203static void remove_current_tag(void)
203{ 204{
204 int oldidx = tag_read_idx; 205 int oldidx = tag_read_idx;
205 struct id3tag *tag = id3tags[tag_read_idx];
206 206
207 if(num_tracks_in_memory() > 0) 207 if(num_tracks_in_memory() > 0)
208 { 208 {
@@ -210,8 +210,8 @@ static void remove_current_tag(void)
210 tag_read_idx = (tag_read_idx+1) & MAX_ID3_TAGS_MASK; 210 tag_read_idx = (tag_read_idx+1) & MAX_ID3_TAGS_MASK;
211 211
212 /* Now delete it */ 212 /* Now delete it */
213 id3tags[oldidx]->used = false;
213 id3tags[oldidx] = NULL; 214 id3tags[oldidx] = NULL;
214 free(tag);
215 debug_tags(); 215 debug_tags();
216 } 216 }
217} 217}
@@ -578,21 +578,26 @@ void IMIA1(void)
578 578
579static void add_track_to_tag_list(char *filename) 579static void add_track_to_tag_list(char *filename)
580{ 580{
581 struct id3tag *t; 581 struct id3tag *t = NULL;
582 int i;
582 583
583 /* grab id3 tag of new file and 584 /* find a free tag */
584 remember where in memory it starts */ 585 for (i=0; i < MAX_ID3_TAGS_MASK; i++ )
585 t = malloc(sizeof(struct id3tag)); 586 if ( !_id3tags[i].used )
587 t = &_id3tags[i];
586 if(t) 588 if(t)
587 { 589 {
590 /* grab id3 tag of new file and
591 remember where in memory it starts */
588 mp3info(&(t->id3), filename); 592 mp3info(&(t->id3), filename);
589 t->mempos = mp3buf_write; 593 t->mempos = mp3buf_write;
590 t->id3.elapsed = 0; 594 t->id3.elapsed = 0;
591 if(!append_tag(t)) 595 if(!append_tag(t))
592 { 596 {
593 free(t);
594 DEBUGF("Tag list is full\n"); 597 DEBUGF("Tag list is full\n");
595 } 598 }
599 else
600 t->used = true;
596 } 601 }
597 else 602 else
598 { 603 {
@@ -659,7 +664,7 @@ static void mpeg_thread(void)
659 int amount_to_read; 664 int amount_to_read;
660 int amount_to_swap; 665 int amount_to_swap;
661 int t1, t2; 666 int t1, t2;
662 667
663 play_pending = false; 668 play_pending = false;
664 playing = false; 669 playing = false;
665 mpeg_file = -1; 670 mpeg_file = -1;
@@ -1411,4 +1416,5 @@ void mpeg_init(int volume, int bass, int treble, int loudness, int bass_boost, i
1411#endif /* !SIMULATOR */ 1416#endif /* !SIMULATOR */
1412 1417
1413 memset(id3tags, sizeof(id3tags), 0); 1418 memset(id3tags, sizeof(id3tags), 0);
1419 memset(_id3tags, sizeof(id3tags), 0);
1414} 1420}
diff --git a/firmware/player.lds b/firmware/player.lds
index 55e26885cd..341d2ebf91 100644
--- a/firmware/player.lds
+++ b/firmware/player.lds
@@ -51,13 +51,6 @@ SECTIONS
51 _end = .; 51 _end = .;
52 } > DRAM 52 } > DRAM
53 53
54 .heap :
55 {
56 _poolstart = .;
57 . = 0x20000;
58 _poolend = .;
59 } > DRAM
60
61 .mp3buf : 54 .mp3buf :
62 { 55 {
63 _mp3buf = .; 56 _mp3buf = .;