To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.roboticsOpen lugnet.robotics in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / 26787
26786  |  26788
Subject: 
Re: What do these macros do?
Newsgroups: 
lugnet.robotics.nxt, lugnet.robotics
Date: 
Wed, 24 Jan 2007 23:21:48 GMT
Viewed: 
1513 times
  
In lugnet.robotics.nxt, John Hansen wrote:
In lugnet.robotics.nxt, Julien Letrouit wrote:
  Is it possible to write in the display popup buffer? So that we can do double
buffering? I made some quick tests, but it seems the drawing routines always
write in the normal display buffer...


It is possible to write to the popup buffer but only by using the IOMap routine
(SetDisplayPopup).  The regular system calls which write to the LCD all write to
the normal display memory.

Unfortunately, as Dick Swan suggested, the current NXT Firmware code limits the
number of bytes you can write using the IOMapWrite system call to a maximum of
64 bytes.  I thought at first that that must be just a Fantom restriction but
the VM has this code in it:

#define MAX_IOM_BUFFER_SIZE 64

// [...]

  if (Count > MAX_IOM_BUFFER_SIZE)
  {
    //Request to read too much data at once; return error and give up
    *pReturnVal = ERR_INVALID_SIZE;
    return (NO_ERR);
  }


The comment says "read" but it really should say "write".  This same sort of
code is in both cCmdWrapIOMapRead and cCmdWrapIOMapWrite.

I will lobby for fixing that in the next firmware release as well as adding new
system calls for reading/writing to the IOMaps without having to search through
the list of modules doing string comparisons.

John Hansen

John - if you've got someone's ear in this, could you also see if a GCC build of
the firmware can be released?

I know LEGO are unlikely to use GCC themselves as they can afford more
specialised tools, but so far, I don't see much of a community building around
the firmware.

Jason R



Message is in Reply To:
  Re: What do these macros do?
 
(...) It is possible to write to the popup buffer but only by using the IOMap routine (SetDisplayPopup). The regular system calls which write to the LCD all write to the normal display memory. Unfortunately, as Dick Swan suggested, the current NXT (...) (18 years ago, 24-Jan-07, to lugnet.robotics.nxt, lugnet.robotics)

12 Messages in This Thread:




Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR