Firmware, Software, etc... | |
This page is divided into the following subtopics: | |
Firmware, What is it? | |
Basic Protocol for Transmitting Firmware | |
Motorola S-record Format | |
Obtaining the ROM Image from your RCX | |
Firmware, What is it? | |
One of the first terms you will begin to run
into when learning about the Mindstorms is Firmware. Is it hardware, is it
software, just what is it? Well, in the next little section I will attempt
to enlighten you.
The hardware within the RCX must be controlled by software. There are basically 3 levels of software that exist on the RCX. The first level of software is the ROM image which is stored inside the H8 chip on the RCX circuit board. The ROM image is unchangeable(not flashable), however it can be viewed. You can obtain a copy of the ROM image by following these instructions provided by Kekoa Proudfoot. The ROM is what controls the RCX when no other software is available. For instance, when you first get the RCX, before you download the Firmware, the ROM image is what tells the RCX how to communicate with the IR Tower and controls some basic functions. The second level of software is either the Firmware, or some equivalent that serves the same purpose such as the LegOS, TinyVM, etc... This software talks to the ROM image and controls the RCX through calls to it. It also accepts commands from your programs. The third level of software is a program. This would be the programs you create using the Lego software or alternative programming systems such as NQC. So basically, when you upload a program that you have written and start the RCX, the program tells the Firmware what to do, and the Firmware executes those commands which includes sending some commands to the ROM image to be handled.
|
|
Basic Protocol Description | |
This is the protocol description was written
by Dave Baum:
The IR protocol associated with sending a "message" to the RCX is pretty
simple. where D1...Dn are the message body, and C = D1 + D2 + ... Dn. The data for sending an IR message is F7 followed by the 8 bit "message". For example: 55 ff 00 f7 08 12 ed 09 f6 is a packet sending the message "0x12" to the RCX. | |
Motorola S-Record Format | |
Motorola S-records are an industry-standard format for
transmitting binary files to target systems and PROM programmers.
LSI Logic have extended this standard to include an S4-record containing an address and a symbol. The extended S-record standard is as follows: S<type><length><address><data....><checksum> S4<length><address><name>,<checksum> Where:
ExampleS0030000FC . . S325000004403C0880018D08DD900000000011000026000000003C0880012508DC50C50000B401 S32500000460C50100B8C50200BCC50300C0C50400C4C50500C8C50600CCC50700D0C50800D4FA S32500000480C50900D8C50A00DCC50B00E0C50C00E4C50D00E8C50E00ECC50F00F0C51000F49A S325000004A0C51100F8C51200FCC5130100C5140104C5150108C516010CC5170110C518011434 . . S70500000000FA The S0 record starts the file. The S3 records contain the data. The S7 record contains the entry address and terminates the download. For more information on c programs to create and read s-record files, go here. |
|
Getting a ROM Image | |
The following notes and linked files provided by, you
guessed it, Kekoa Proudfoot
(the keeper of knowledge) The files are located on my site, so even if
Kekoa moves his page, they will still be available.
Somebody asked how to get a complete ROM image. Supposing you wanted to do that, and that you knew all the risks that were involved and were willing to take them, here is one set of steps you might follow to get yourself an image:
|
|
Return To The Main Research Page | |
Return To My Personal Homepage |