From Pigmeo - .NET/Mono/CLI (C#, VB.NET, C++/CLI, Nemerle...) for microcontrollers (PIC, dsPIC, AVR...)

This is the entire list of features currently supported by Pigmeo.


Supported architectures and Operating Systems

Pigmeo Compiler should run on top of any .NET virtual machine (CLR). It has been tested on Windows and Linux using Microsoft .NET and Mono, but there are more architectures and OSs where it should work too:

  • Microsoft .NET
    • Windows NT 4.0
    • Windows 2000
    • Windows Server 2003
    • Windows Server 2008
    • Windows 98
    • Windows ME
    • Windows XP
    • Windows Vista
  • Mono
    • Linux
      • x86
      • SPARC 32 y 64 bits
      • PowerPC
      • ARM
      • S390 32 y 64 bits
      • IA64
      • HPPA
      • Alpha
    • Windows
    • OpenBSD, NetBSD, FreeBSD
      • x86
    • Mac OS X
      • PowerPC
      • x86
    • Solaris
      • SPARC 32 bits
  • DotGNU
  • Microsoft Shared Source Common Language Infrastructure
    • Windows XP
    • FreeBSD
    • Mac OS X
  • .NET for Symbian
    • Symbian (mobile phones)

Supported target architectures

This is the list of architectures Pigmeo Compiler can generate assembly language code for:


Microchip PIC microcontrollers. 8-bit RAM registers, 12 and 14-bit instructions.

Families and devices:

  • PIC12 (not yet)
  • PIC14
    • PIC16F59
    • PIC16F716
    • PIC16F887

Note: it's very easy to support new devices

Supported features:

  • Access static variables defined locally and on external libraries
  • Custom Attribute [AsmName]
  • Custom Attribute [Location]
  • Assign constants to uint8/byte static variables
  • Copy uint8/byte static variables
  • uint8/byte additions
  • uint8/byte additions with overflow check
  • uint8/byte substractions
  • Infinite loops
  • goto
  • Choose what to do when the program ends
    • Infinite loop doing nothing
    • Restart the program
  • Choose how to implement exceptions
    • No exceptions allowed
    • End program when any exception is thrown

Pigmeo Compiler

  • Designed to be very efficient
  • Almost everything can be done in a couple of ways, so you can choose the best for you
  • Supported user interfaces:
    • Command-line
    • WinForms (tested on Windows XP and Linux)
  • Multiplatform (OS independent), all the user interfaces should work on any operationg system if your .NET CLR/virtual machine supports it
  • Retargetable. Designed to be ported to other target architectures easily
  • You can choose how the compiler will implement some things:
    • Exceptions
    • Local variables
    • Static variables

Pigmeo Framework

  • Classes for working with common peripherals easily (LEDs, buttons, 7-segment displays, LCDs, communication protocols...)
  • Extensions to .NET classes
  • More basic numeric types (others than UInt32, Byte, float64...), like UInt3 (3-bit unsigned integer, values from 0 to 7)
  • More math-related functions than those available in the .NET Framework
  • Most of the classes can be used in all the target architectures
  • You can use it for developing applications running on a computer, on top of a virtual machine (CLR)

See also