diff options
| author | Björn Stenberg <bjorn@haxx.se> | 2002-08-13 23:13:01 +0000 |
|---|---|---|
| committer | Björn Stenberg <bjorn@haxx.se> | 2002-08-13 23:13:01 +0000 |
| commit | ebb14ca5f944df76986dbb9f8ec16bae1fbd20a7 (patch) | |
| tree | be18c2969fb2420ccbe4adddfd13a9b49b253a49 | |
| parent | 509b42561686174f09b56b16e622f24d2efad774 (diff) | |
| download | rockbox-ebb14ca5f944df76986dbb9f8ec16bae1fbd20a7.zip rockbox-ebb14ca5f944df76986dbb9f8ec16bae1fbd20a7.tar.gz rockbox-ebb14ca5f944df76986dbb9f8ec16bae1fbd20a7.tar.bz2 rockbox-ebb14ca5f944df76986dbb9f8ec16bae1fbd20a7.tar.xz | |
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.c | 6 | ||||
| -rw-r--r-- | apps/playlist.c | 2 | ||||
| -rw-r--r-- | apps/recorder/bmp.c | 4 | ||||
| -rw-r--r-- | firmware/Makefile | 2 | ||||
| -rw-r--r-- | firmware/ajf.c | 1 | ||||
| -rw-r--r-- | firmware/app.lds | 7 | ||||
| -rw-r--r-- | firmware/mpeg.c | 24 | ||||
| -rw-r--r-- | firmware/player.lds | 7 |
8 files changed, 20 insertions, 33 deletions
diff --git a/apps/main.c b/apps/main.c index 39609e6..a6e90ee 100644 --- a/apps/main.c +++ b/apps/main.c @@ -33,13 +33,9 @@ #include "powermgmt.h" #include "adc.h" #include "i2c.h" -#ifndef SIMULATOR -#include "dmalloc.h" -#include "bmalloc.h" #ifndef DEBUG #include "serial.h" #endif -#endif #include "mpeg.h" #include "main_menu.h" #include "thread.h" @@ -95,8 +91,6 @@ void init(void) settings_reset(); - dmalloc_initialize(); - bmalloc_add_pool(poolstart, poolend-poolstart); lcd_init(); show_logo(); diff --git a/apps/playlist.c b/apps/playlist.c index 0d9df36..692ec4b 100644 --- a/apps/playlist.c +++ b/apps/playlist.c @@ -18,8 +18,6 @@ ****************************************************************************/ #include <stdio.h> -#include <malloc.h> - #include <stdlib.h> #include <string.h> #include "playlist.h" diff --git a/apps/recorder/bmp.c b/apps/recorder/bmp.c index d02e9d4..a92d521 100644 --- a/apps/recorder/bmp.c +++ b/apps/recorder/bmp.c @@ -32,6 +32,8 @@ #include "file.h" +#if 0 + #ifdef __GNUC__ #define STRUCT_PACKED __attribute__((packed)) #else @@ -585,3 +587,5 @@ int main(int argc, char **argv) } #endif + +#endif /* 0 */ diff --git a/firmware/Makefile b/firmware/Makefile index eb17384..f3de26b 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -33,7 +33,7 @@ else CFLAGS += -fomit-frame-pointer -fschedule-insns endif -SRC := $(wildcard drivers/*.c common/*.c malloc/*.c *.c) +SRC := $(wildcard drivers/*.c common/*.c *.c) OBJS := $(SRC:%.c=$(OBJDIR)/%.o) $(OBJDIR)/crt0.o DEPS:=.deps diff --git a/firmware/ajf.c b/firmware/ajf.c index e542bdc..82ba0b7 100644 --- a/firmware/ajf.c +++ b/firmware/ajf.c @@ -21,7 +21,6 @@ #endif #include <file.h> #include "ajf.h" -#include <malloc.h> #include <string.h> #include <errno.h> #include <stdbool.h> diff --git a/firmware/app.lds b/firmware/app.lds index 810695a..2e594b6 100644 --- a/firmware/app.lds +++ b/firmware/app.lds @@ -51,13 +51,6 @@ SECTIONS _end = .; } > DRAM - .heap : - { - _poolstart = .; - . = 0x20000; - _poolend = .; - } > DRAM - .mp3buf : { _mp3buf = .; diff --git a/firmware/mpeg.c b/firmware/mpeg.c index a85545e..f9df323 100644 --- a/firmware/mpeg.c +++ b/firmware/mpeg.c @@ -23,7 +23,6 @@ #include "id3.h" #include "mpeg.h" #include "ata.h" -#include "malloc.h" #include "string.h" #ifndef SIMULATOR #include "i2c.h" @@ -147,9 +146,11 @@ struct id3tag { struct mp3entry id3; int mempos; + bool used; }; static struct id3tag *id3tags[MAX_ID3_TAGS]; +static struct id3tag _id3tags[MAX_ID3_TAGS]; static unsigned int current_track_counter = 0; static unsigned int last_track_counter = 0; @@ -202,7 +203,6 @@ static bool append_tag(struct id3tag *tag) static void remove_current_tag(void) { int oldidx = tag_read_idx; - struct id3tag *tag = id3tags[tag_read_idx]; if(num_tracks_in_memory() > 0) { @@ -210,8 +210,8 @@ static void remove_current_tag(void) tag_read_idx = (tag_read_idx+1) & MAX_ID3_TAGS_MASK; /* Now delete it */ + id3tags[oldidx]->used = false; id3tags[oldidx] = NULL; - free(tag); debug_tags(); } } @@ -578,21 +578,26 @@ void IMIA1(void) static void add_track_to_tag_list(char *filename) { - struct id3tag *t; + struct id3tag *t = NULL; + int i; - /* grab id3 tag of new file and - remember where in memory it starts */ - t = malloc(sizeof(struct id3tag)); + /* find a free tag */ + for (i=0; i < MAX_ID3_TAGS_MASK; i++ ) + if ( !_id3tags[i].used ) + t = &_id3tags[i]; if(t) { + /* grab id3 tag of new file and + remember where in memory it starts */ mp3info(&(t->id3), filename); t->mempos = mp3buf_write; t->id3.elapsed = 0; if(!append_tag(t)) { - free(t); DEBUGF("Tag list is full\n"); } + else + t->used = true; } else { @@ -659,7 +664,7 @@ static void mpeg_thread(void) int amount_to_read; int amount_to_swap; int t1, t2; - + play_pending = false; playing = false; mpeg_file = -1; @@ -1411,4 +1416,5 @@ void mpeg_init(int volume, int bass, int treble, int loudness, int bass_boost, i #endif /* !SIMULATOR */ memset(id3tags, sizeof(id3tags), 0); + memset(_id3tags, sizeof(id3tags), 0); } diff --git a/firmware/player.lds b/firmware/player.lds index 55e2688..341d2eb 100644 --- a/firmware/player.lds +++ b/firmware/player.lds @@ -51,13 +51,6 @@ SECTIONS _end = .; } > DRAM - .heap : - { - _poolstart = .; - . = 0x20000; - _poolend = .; - } > DRAM - .mp3buf : { _mp3buf = .; |