dev builds
themes manual
device status forums
mailing lists
IRC bugs
dev guide

Rockbox mail archive

Subject: RE: Memory management

RE: Memory management

From: Nielsen Linus (ext) <"Nielsen>
Date: Mon, 23 Sep 2002 08:27:05 +0200

> In the last few days I've been working on a text file viewer
> app and I have a few questions concerning memory management :
> - From what I've seen in the code, there is one stack for
> each thread, and the usual size of this stack is 1kb. Isn't
> it a bit small ?

No, it isn't. If you look in the OS debug screen you will see that the
threads use max 30% of their stacks as of today. The default size is about
1K, and the memory hungry threads allocate more.

> What happens if we go over this limit ?

You will eventually get a Stkov error, if you don't crash before the kernel
detects it.

> - When we declare a global variable (not in a function), is
> the memory allocated on the stack or staticaly reserved by
> the compiler ?

Globals are, naturally, not allocated on the stack.

> - The decision was made to not use dynamic memory allocation
> but it seems to be implemented in the firmware/malloc
> directory. Should we use malloc or not ?

Malloc is still in the source tree, but is not used. Don't attempt to use

> What I'm trying to do is to load the content of the file in a
> buffer. I would like this buffer to be pretty large (30kb)
> but I'm not sure how this should be done: allocated on the
> stack (we might get an overflow), global variable (memory is
> not released when we quit the app), dynamic allocation ?

If you really need 30K buffer for some reason you should allocate it
statically. The question is why you need all that memory.

Received on 2002-09-23

Page template was last modified "Tue Sep 7 00:00:02 2021" The Rockbox Crew -- Privacy Policy