Frequently Asked Questions

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

(Difference between revisions)
Current revision (10:03, 2 May 2009) (edit) (undo)
 
(2 intermediate revisions not shown.)
Line 1: Line 1:
Frequently Asked Questions about the Pigmeo Project
Frequently Asked Questions about the Pigmeo Project
 +
{{TocRight}}
==Pigmeo==
==Pigmeo==
-
===What is its license?===
+
===What's its license?===
-
See [[Pigmeo_Licenses|Pigmeo Licenses]].
+
All programs and libraries provided by the Pigmeo Project are open source and free software. See [[Pigmeo_Licenses|Pigmeo Licenses]].
===What hardware architectures are supported?===
===What hardware architectures are supported?===
Line 10: Line 11:
===What microcontrollers are supported?===
===What microcontrollers are supported?===
[[Supported_architectures_and_devices|Full list of supported architectures and devices]].
[[Supported_architectures_and_devices|Full list of supported architectures and devices]].
 +
 +
===Are you affiliated to Microsoft, Novell or any other company?===
 +
No.
 +
 +
===Is it really free?===
 +
Absolutely. Free as in "no cost" and also as in [[Pigmeo_Licenses|freedom]].
 +
 +
===Do you have any problem with patents?===
 +
No. Pigmeo is free software, and everything used by Pigmeo is also free software of standarized languages (such as C#) and libraries (such as the .NET Framework) not prone to patent violations.
 +
 +
===Does C#/.NET applications run on linux?===
 +
Yes. As in any other operating system you just need to install a CLI/.NET/Mono CLR (virtual machine). See [http://mono-project.com/ Mono Project].
 +
 +
===Can I use the .NET Framework in my apps for microcontrollers?===
 +
Yes, you can call any library from your programs, including those found in the Pigmeo Framework, .NET Framework, Mono Framework, or third-party libraries, as long as they are [[managed code]].
 +
 +
===I've just found some useful code (or library) in the forums (or somewhere else), can I use it?===
 +
Yes, as long as it is [[managed code]], but we extremely discourage it. If that code is useful and good enough, it will be integrated into Pigmeo Framework. If we haven't integrated it into Pigmeo Framework that's because you shouldn't use it.
==Pigmeo Compiler==
==Pigmeo Compiler==
 +
===Aren't object-oriented and garbage-collected languages very inneficient?===
 +
It depends on what your program really does. Pigmeo Compiler can usually generate binaries as efficient as C or even assembly language code.
 +
 +
Also, Pigmeo Compiler has a bunch of optimizations not available in commercial C compilers, so it can generate binaries even more efficient than other compilers.
 +
 +
Anyway, you always have the choice to write your code not-object-oriented and without using the classes available in the Pigmeo Framework, the same way you write code in assembly or C.
 +
===What is a device library?===
===What is a device library?===
-
Device libraries are ''.dll'' files named after a specific microcontroller device that contains all the information required by Pigmeo Compiler about that device, and all the variables, classes, objects, structs and functions you need when you are developing your application for that device.
+
Device libraries are ''.dll'' files named after a specific microcontroller device that contains all the information required by Pigmeo Compiler about that device, plus all the variables, classes, objects, structs and functions you need when you are developing your application for that device.
Examples of device libraries: PIC16F877A.dll, PIC16F716.dll, dsPIC30F6010A.dll...
Examples of device libraries: PIC16F877A.dll, PIC16F716.dll, dsPIC30F6010A.dll...
 +
 +
==Pigmeo Framework==
 +
===Can I access low-level registers instead of using classes from the Pigmeo Framework?===
 +
Of course. Those classes available in the Pigmeo Framework are designed to be easy to use, so you don't need to implement complex interfaces and protocols by yourself, but if you want to learn how things work you can access the microcontroller registers as you do in assembly and C.
 +
 +
[[Category:Documentation]]

Current revision

Frequently Asked Questions about the Pigmeo Project

Contents


Pigmeo

What's its license?

All programs and libraries provided by the Pigmeo Project are open source and free software. See Pigmeo Licenses.

What hardware architectures are supported?

Full list of supported architectures and devices.

What microcontrollers are supported?

Full list of supported architectures and devices.

Are you affiliated to Microsoft, Novell or any other company?

No.

Is it really free?

Absolutely. Free as in "no cost" and also as in freedom.

Do you have any problem with patents?

No. Pigmeo is free software, and everything used by Pigmeo is also free software of standarized languages (such as C#) and libraries (such as the .NET Framework) not prone to patent violations.

Does C#/.NET applications run on linux?

Yes. As in any other operating system you just need to install a CLI/.NET/Mono CLR (virtual machine). See Mono Project.

Can I use the .NET Framework in my apps for microcontrollers?

Yes, you can call any library from your programs, including those found in the Pigmeo Framework, .NET Framework, Mono Framework, or third-party libraries, as long as they are managed code.

I've just found some useful code (or library) in the forums (or somewhere else), can I use it?

Yes, as long as it is managed code, but we extremely discourage it. If that code is useful and good enough, it will be integrated into Pigmeo Framework. If we haven't integrated it into Pigmeo Framework that's because you shouldn't use it.

Pigmeo Compiler

Aren't object-oriented and garbage-collected languages very inneficient?

It depends on what your program really does. Pigmeo Compiler can usually generate binaries as efficient as C or even assembly language code.

Also, Pigmeo Compiler has a bunch of optimizations not available in commercial C compilers, so it can generate binaries even more efficient than other compilers.

Anyway, you always have the choice to write your code not-object-oriented and without using the classes available in the Pigmeo Framework, the same way you write code in assembly or C.

What is a device library?

Device libraries are .dll files named after a specific microcontroller device that contains all the information required by Pigmeo Compiler about that device, plus all the variables, classes, objects, structs and functions you need when you are developing your application for that device.

Examples of device libraries: PIC16F877A.dll, PIC16F716.dll, dsPIC30F6010A.dll...

Pigmeo Framework

Can I access low-level registers instead of using classes from the Pigmeo Framework?

Of course. Those classes available in the Pigmeo Framework are designed to be easy to use, so you don't need to implement complex interfaces and protocols by yourself, but if you want to learn how things work you can access the microcontroller registers as you do in assembly and C.