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