GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - NETMF/llilum: Development Platform for MSIL and UWP apps targeting Micro Controllers. Part of the .NET Micro Framework family.

This repository was archived by the owner on Jun 5, 2019. It is now read-only.
BranchesTags
Open more actions menu

Latest commit

 

History

317 Commits
317 Commits

Folders and files

NameName
Last commit message
Last commit date
LlilumSDK
LlilumSDK
 
 
SDKHelpers
SDKHelpers
 
 
Samples
Samples
 
 
VisualStudio
VisualStudio
 
 
Zelig
Zelig
 
 
docs/CoAP
docs/CoAP
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
BuildEnv.props
BuildEnv.props
 
 
LICENSE
LICENSE
 
 
LlvmApplication.props
LlvmApplication.props
 
 
README.md
README.md
 
 
llilum.vssettings
llilum.vssettings
 
 
setenv.cmd
setenv.cmd
 
 
setenv32.cmd
setenv32.cmd
 
 

Repository files navigation

Welcome to LLILUM!

A development platform for IL based languages and UWP applications targeting Cortex-M processors.

Why LLILUM

Cortex-M processors are heavily resource constrained, and yet, because of their low power consumption and optimized interrupt dispatching, are arguably the most suitable solution for IoT applications. Existing development platfoms and tool chains that target this space are based on C/C++, and no native support for higher level languages and RAD environment exist that can take advantage of what a Cortex-M HW can offer. Previous efforts in this space include .NET Micro Framework and other Java solutions, which are sometimes too large in code size, too slow or too difficult to extend for mainstream adoption. LLILUM implements a scalable alternative to C/C++ that features comparable code size and speed, as well as easy extensibility from within the Visual Studio development tool chain.

What is LLILUM

LLILUM is an optimizing compiler tool chain based on the latest CLI standard and LLVM version 3.8.1. LLILUM relies on the compelling development experience of Visual Studio to transform source code into MSIL, and then into an intermediate represenation (IR) that is optmized for size and speed, taking into account the target platform constraints, such as memory layout, native ISA, calling convention, and, first and foremost, the application requirements. The method and type closure is optimized based on application usage of system facilities, and the type system is morphed to shrink into the smallest possible footprint. Debugging is carried out through Visual Studio and GDB. Standard features of CLI environments, e.g. type system (TS) introspection, garbage collection (GC) and a full featured multi-threaded execution engine (MTEE) are provided.

State of the Art

LLILUM can generate runnable images for ARMv4 and ARMv5 ISA, with partial FP support. We could have extended the code generator to support ARMv7-M but we decided to leverage LLVM instead, hoping we can get a wider set of targets over time. The current incarnation of the system successfully uses LLVM to target:

  • Cortex-M0/3/4 ISA with
  • A fully functional Managed Type System and FP support
  • A reference counting collector
  • A conservative tracing collector (Bohem GC)
  • A fully multi-threaded execution environment compatible with Cortex-M architecture for NVIC and SysTick standard controllers
  • lwIP TCP/IP stack
  • CMSIS-RTOS porting layer for easy network stack porting
  • Visual Studio SDK with GDB debugging

Supported Hardware

LLILUM supports a significant number of development boards from the mBed ecosystem, and specifically:

  • Freescale K64F-FRDM Cortex-M4 development board
  • NXP LPC1768 Cortex-M3 development board
  • STMicroelectronics STM32F091RC Cortex-M0 development board
  • STMicroelectronics STM32F401RE Cortex-M3 development board
  • STMicroelectronics STM32F411RE Cortex-M4 development board
  • STMicroelectronics STM32L152RE Cortex-M3 development board

Supported Languages

Currrent target language is C#; extensions to Python and possibly TypeScript are in the works. We are also targeting UWP app development, so that it will be possible to share code between a Windows 10 device app and a Cortex-M micro processor. Welcome to OneCore!

Further reading

Please see the following documents in our wiki: Welcome to the llilum wiki!

  1. Detailed system description
  2. Build System
  3. Front End Configuration
  4. Setup and build instruction
  5. Build and run test demo
  6. Performance considerations
  7. Next steps

Acknowledgments

A big thanks to Miguel Perez Martinez for helping bringing up this proof of concepts with exceptional dedication, perseverance and competency. An even bigger thanks to D.M., who created the vast majority of this codebase single-handedly.

About

Development Platform for MSIL and UWP apps targeting Micro Controllers. Part of the .NET Micro Framework family.

Resources

Readme
License
Activity
Custom properties

Stars

161 stars

Watchers

10 watching

Forks

49 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.