Lego RCX Assembler and a Case Study - PowerPoint PPT Presentation

1 / 16
About This Presentation
Title:

Lego RCX Assembler and a Case Study

Description:

Virtual Machine Characteristics. Byte Code Interpreter. Sources and values. Byte Code Command Set ... Download Lego RCX Firmware (if not installed) Open the ... – PowerPoint PPT presentation

Number of Views:82
Avg rating:3.0/5.0
Slides: 17
Provided by: mcsA7
Category:

less

Transcript and Presenter's Notes

Title: Lego RCX Assembler and a Case Study


1
Lego RCX Assembler and a Case Study
  • Luis Paris
  • Dept. of Computer Science
  • University of Mississippi

2
Supported Languages/Firmwares
Language
Firmware
  • Java
  • C, C, Pascal
  • Forth
  • MindScript, NQC, Lego ASM
  • TinyVM, leJOS
  • brickOS
  • pbForth
  • Standard Lego RCX

3
RCX Internals
  • Hitachi H8 microcontroller
  • On-chip 16K ROM
  • External 32K RAM
  • I/O devices
  • Three motor ports
  • Three sensor ports
  • IR communications port

4
RCX Virtual Machine
  • Implemented by the Lego RCX firmware
  • Virtual Machine Characteristics
  • Byte Code Interpreter
  • Sources and values
  • Byte Code Command Set

5
Case Study Lego RCX Assembler
  • Motivation
  • Project for CSCI-450 Programming Languages
  • Lego Assembler hides output object file
  • Result Byte code nor object format cant be
    studied
  • Does not support definition list
  • Result Programs hard to read and maintain
  • Project Create a Lego RCX Assembler
  • More robust
  • Runs standalone

6
Solution Strategy
  • Two stages
  • Lexical/Syntax analysis (Parsing)
  • Finite State Machine
  • Library functions (scanf, string.tokenizer)
  • Code generation (one-to-one)
  • No one-to-many semantic analysis (as in
    compilers)
  • Mnemonic to Opcode conversion
  • Parameters to Byte Code conversion

7
Which language C/C or Java?
  • Java is a powerful OOP language butnot really
    suitable for system programming
  • No bit-fields support
  • No operator overloading
  • Both C/C support bit-fields
  • However, C has unnecessary, confusing features
    (multiple inheritance)

8
Bit-fields
  • After parsing ASM command out 6, 23
  • Variables contain instr out param1 6
    param2 23
  • Problem encode out param1, param2 into above
    data structure
  • C/C can declare P1 and P2 as bit-fields as
    follows
  • Java can NOT declare bit-fields so it must merge
    P1 and P2
  • Therefore, Java programmer must perform bit
    shifting and masking operationswhereas the
    C/C compiler does it for us.

then do
then do
9
Part 2 A Lego RCX pathfinderin Assembler using
ScriptEd
10
PreLab Instructions
  • Part 1
  • Click Start?Run
  • Type \\luis\lego\
  • Move workshop folder to your desktop
  • Close \\luis\lego\ folder
  • Part 2
  • Open workshop folder in your desktop
  • Install LEGOMindstormsSDK25.exe
  • Install bricxcc_setup_3377.exe (if not
    installed)
  • Download Lego RCX Firmware (if not installed)

11
Open the ScriptEd application
  • Click Start?LEGO SoftwareAll Programs?MindStorm
    s SDK?Tools?ScriptEd
  • On the ScriptEd application,Click Open?Port
  • Select your Tower Port (COM1, or USB1)
  • On the toolbar select LASM (2nd combo box)

12
Download pathfind.asm file to RCX
  • Part 1
  • On the ScriptEd application,Click File?Open
  • Browse to workshop folder
  • In File name, type .asm (instead of .rcx2)
  • Select pathfind.asm and open it
  • Part 2
  • Click on Script?Download
  • Test your RCX

13
Part 3 A Lego RCX pathfinderin NQC using BricxCC
14
Open the BricxCC application
  • Click Start?All Programs?Bricx Command
    Center?Bricx Command Center
  • On the Searching for the Brick window,Select
    your Tower Port (COM1, or USB1)

15
Compile Download pathfind.nqc
  • Part 1
  • On the BricxCC application,Click File?Open
  • Browse to workshop folder
  • Select pathfind.nqc and open it
  • Part 2
  • Click on Compile?Download
  • Test your RCX

16
References
  • The Bricx Command Center (BricxCC)http//bricxcc.
    sourceforge.net/
  • The Lego Mindstorms SDK 2.5 (ScriptEd)http//mind
    storms.lego.com/eng/community/resources/
Write a Comment
User Comments (0)
About PowerShow.com