NXT c frimware heap creation

This is where you talk about the NXJ software itself, installation issues, and programming talk.

Moderators: 99jonathan, roger, imaqine

NXT c frimware heap creation

Postby jhebus » Fri Jan 10, 2014 1:12 pm

Hi there,

I am looking at the heap in the c firmware section for the nxt.

I am a little confused as the values that i am seeing don't make sense to me.

__free_ram_start__ = 0
__free_ram_end__ = 385246415
These are the values as seen after the hardware has inited, but before the nxt_main is called. They are also the same after have been rounded up and truncated down, as in memory.c

Assuming that the values are in bytes, this give a heap of size 385246415/1024/1024 = 367.39MB

when i look in lejos_nxt_rom.ld it says that the ram_start should be set to the end of the bss section. See as i have running code i don't see how it can be 0. Also, this heap size can't be right.

I am clearly misunderstanding something, any and all help appreciated.

New User
Posts: 6
Joined: Wed Sep 18, 2013 8:56 pm

Re: NXT c frimware heap creation

Postby gloomyandy » Fri Jan 10, 2014 2:30 pm

No idea, those numbers do not sound correct at all. Have you tried displaying them for a standard build of the firmware? Sounds like something is going wrong with your build. What is it you are actually trying to do? If you are trying to use leJOS as the basis for writing C code on the NXT there may be easier ways of doing this the Osek project has already done this...

The standard config is that upon boot RAM is at 2Mb and is 64Kb in size, during the startup sequence in init.s the RAM is remapped to be at address 0. All of this is cobfigured in the loader scripr sam7.lds which is edited by the makefile to create the actual loader script used.

User avatar
leJOS Team Member
Posts: 3633
Joined: Fri Sep 28, 2007 2:06 pm
Location: UK

Return to NXJ Software

Who is online

Users browsing this forum: Baidu [Spider], Google [Bot] and 2 guests

more stuff