Hi Aaron,

leJOS does not really have an OS - what there is is mainly in the JVM.

The firmware consists of some start-up code, some device drivers and, the JVM.

In leJOS NXJ, control starts in nxtvm/platform/nxt/init.s, which is a short 
piece of assember that initializes, clocks, stacks, memory etc for the ARM 
chip, and calls the main function in platform/nxt/main.c. This initializes the 
device drivers include the display ( LCD), Sound, USB, AVR link (for motors, 
buttons, and sensors), I2C, Bluetooth, interriupts including the 1-millisecond 
timer interrupt etc.

The Java program to run is then determined. At start-up this is the Start Up 
Text Menu that resides at address 32k, - see classes/lejos/nxt/StartUpText.java 
for what this does. The java program start address is set by calling 
install_binary in the JVM, and the JVM is invoked by calling the engine 
function.

StartUpText.java deals with communication with the tools on the PC, and 
implements the menu which allows users to upload programs and execute them.

The other main components in lejos are the linker (see jtools) that links all 
the class files into a .nxj binary file, the tools in pctools, and the pc comms 
drivers in pccomms.

The classes directory contains all the NXJ specific classes. leJOS uses its own 
simple mechanism to invoke native methods in the JVM. These are all implemented 
in nxtvm/platform/nxt/native.c, which calls functions in the JVM and the 
NXT-specific device drivers.

Hope this helps.

Lawrie

  ----- Original Message ----- 
  From: Aaron R> 
  To: [email protected] 
  Sent: Friday, August 31, 2007 9:43 PM
  Subject: Re: [Lejos-discussion] Picture or Block Diagram of design


  I mentioned the term BSP earlier, but I might not be using the right term.  
In my very limited experience, I've worked with an embedded team who made a 
board support package (BSP).  They explained that the BSP was done to bring the 
board up from power on and do low level configuration of comm ports and such.  
It then transferred control over to the vxWorks OS.  Once that was running, a 
user could ftp files onto the board and then execute them using the vxWorks 
shell. 


  My original question is aimed at getting a good understanding of which code 
is doing what in lejos.  To me lejos is the BSP, OS, and the JVM.


  Cheers,
  Aaron R>


------------------------------------------------------------------------------


  -------------------------------------------------------------------------
  This SF.net email is sponsored by: Splunk Inc.
  Still grepping through log files to find problems?  Stop.
  Now Search log events and configuration files using AJAX and a browser.
  Download your FREE copy of Splunk now >>  http://get.splunk.com/


------------------------------------------------------------------------------


  _______________________________________________
  Lejos-discussion mailing list
  [email protected]
  https://lists.sourceforge.net/lists/listinfo/lejos-discussion



------------------------------------------------------------------------------


  Internal Virus Database is out-of-date.
  Checked by AVG Free Edition. 
  Version: 7.5.476 / Virus Database: 269.11.11/944 - Release Date: 09/08/2007 
14:44
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Lejos-discussion mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lejos-discussion

Reply via email to