To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.nxtOpen lugnet.robotics.nxt in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / NXT / 420
419  |  421
Subject: 
Re: What do these macros do?
Newsgroups: 
lugnet.robotics.nxt, lugnet.robotics
Date: 
Wed, 24 Jan 2007 20:29:12 GMT
Viewed: 
14166 times
  
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



Message has 2 Replies:
  Re: What do these macros do?
 
(...) 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 (...) (18 years ago, 24-Jan-07, to lugnet.robotics.nxt, lugnet.robotics)
  compilation switch in BrickCC Command Center?
 
Thru brickcc command center, I wonder how to insert a user-defined compilation switch as I want to use it in the preprocessor directives. Input is greatly appreciated. --Elizabeth (18 years ago, 6-Feb-07, to lugnet.robotics.nxt, lugnet.robotics)

Message is in Reply To:
  Re: What do these macros do?
 
(...) 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... Julien (18 years ago, 23-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

This Message and its Replies on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

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