100 likes | 290 Views
Lego .Net. Bernhard Rabe. Fischertechnik .NET ?. Bernhard Rabe. Motivation. Common programming model Multiple language support Programms can not damage the RCX runtime system (memory access) important for Web experiments. Ways to Go. Compiling .NET usercode with a RCX library
E N D
Lego .Net Bernhard Rabe
Fischertechnik .NET ? Bernhard Rabe
Motivation • Common programming model • Multiple language support • Programms can not damage the RCX runtime system (memory access) • important for Web experiments
Ways to Go • Compiling .NET usercode with a RCX library • IL to target code compiler • IL interpreter • Sourcecode transformation
.NET Usercode and RCX Library • Original Lego firmware • No running program on the RCX • Sending Opcodes via infrared link • Not full feature set (Sensors must be polled) • All computation are made on the PC • Running as DCL Experiment (testing) • No autonomic processing
IL to Hitachi Compiler • Hitachi backend for GCC available • GCC frontend has to parse the IL (ILDASM Output at the moment) • Build a Code Tree for Backend • Includes no runtime system • Now: Calling of static functions with parameters implemented
IL Interpreter on RCX • Base runtime system which can process special prepared images • Assembly (Exe) has to be converted • Whole BCL doesn’t fit on RCX (32k – OS) • Link Assembly against a special class library • limited feature set • The image contains only references to the native RCX function
Source Code Transformation • Convert .NET Sourcecode to legOS • Converter for each .NET language required • Possibly loss of functionality and behavior
VisualRDK • GUI-based development • fit for pupils capabilities • can create source code for different targets • legOS • DCL API • C# based DCL API • Fischertechnik
Future Work • Fischertechnik in the DCL ? • GCC Frontend for IL and BCL • Virtual testbed in schools (VS + VisualRDK)