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.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.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 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 | |||
33 | CFLAGS += -fomit-frame-pointer -fschedule-insns | 33 | CFLAGS += -fomit-frame-pointer -fschedule-insns |
34 | endif | 34 | endif |
35 | 35 | ||
36 | SRC := $(wildcard drivers/*.c common/*.c malloc/*.c *.c) | 36 | SRC := $(wildcard drivers/*.c common/*.c *.c) |
37 | 37 | ||
38 | OBJS := $(SRC:%.c=$(OBJDIR)/%.o) $(OBJDIR)/crt0.o | 38 | OBJS := $(SRC:%.c=$(OBJDIR)/%.o) $(OBJDIR)/crt0.o |
39 | DEPS:=.deps | 39 | DEPS:=.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 | ||
152 | static struct id3tag *id3tags[MAX_ID3_TAGS]; | 152 | static struct id3tag *id3tags[MAX_ID3_TAGS]; |
153 | static struct id3tag _id3tags[MAX_ID3_TAGS]; | ||
153 | 154 | ||
154 | static unsigned int current_track_counter = 0; | 155 | static unsigned int current_track_counter = 0; |
155 | static unsigned int last_track_counter = 0; | 156 | static unsigned int last_track_counter = 0; |
@@ -202,7 +203,6 @@ static bool append_tag(struct id3tag *tag) | |||
202 | static void remove_current_tag(void) | 203 | static 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 | ||
579 | static void add_track_to_tag_list(char *filename) | 579 | static 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 = .; |