Main > Free Download Search >

Free microcontrollers software for linux

microcontrollers

Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 16
Rational PIC Assembler 2.0

Rational PIC Assembler 2.0


Rational PIC Assembler is a mid-range PIC assembler with Intel style syntax. more>>
Rational PIC Assembler is an assembler for the mid-range microcontrollers from Microchip. The project uses Intel style mnemonics and target-first operand ordering. Designed to feel comfortable to PC assembly programmers.
This assembler generates code compatible with Microchips midline microcontrollers but is incompatible with their assembler. It should feel familiar to any PC assembly programmer. The instruction mnemonics and operand order are Intel style ( i.e. right, as opposed to wrong ).
Command Line Syntax
pic-asm [ -c ] [ -l filename ] [ -o filename ] input_file
-c -- console mode
an assembly source is accepted from stdin. binary code is
output on stdout. errors are output to stderr
-l filename -- specify listing file
-o filename -- specify object file
Input
The input is a sequence of line each of which contains one or more of the following fields
label instruction operands ; comment
The label and comment are optional. The operands required depend on the instruction.
The assembler is case sensitive, even for instructions.
Constants
Hex values can be specified with C-style 0x[:xdigit:]+. Binary values can be specified with 0b[01]+. Decimal values require no prefix as decimal is the default base.
Character constants are specified by enclosing a single character or escaped character within single quotes. String constants are specified by enclosing zero or more characters and escaped characters within double quotes. String constants generate one character constant for each character in the string. There is no trailing zero stored. For example:
db "Hello worldn", 0, a, b, r, n, t
Labels
A label is a sequence of alphanumeric characters ( including underbar ) that starts a line. Labels do not have colons. Labels local to the last nonlocal label can be defined by prefixing the name with a dot. For instance
; example from example-1.asm
foo call .1
.1 jmp .2
.2 jmp .1
bar call .1
.1 jmp .2
.2 jmp .1
In this example, the labels defined are foo, foo.1, foo.2, bar, bar.1, and bar.2. The first call branches to foo.1. The second call branches to bar.1. The labels local to foo can not be referenced before foo has been declared nor after bar has been declared.
Directives
Data can be declared. The declarator takes the place of the instruction and is followed by one or more expressions separated by commas. Each expression corresponds to one word in the output code regardless of the declarator type.
db - each operand is AND-ed with 0xff before being stored
dw - full 14 bit word definition
dt - each operand is AND-ed with 0xff and OR-ed with 0x3400 ( the return-with-value opcode ). This allows generation of case tables. You can add the accumulator ( w ) to the offset of the table. The processor will branch to the location in the table and return with an eight bit result
For instance:
db 1,2,3
dw 0x3fff, 0x3ff * 16 + 15, -1
dt 0b001, 0b010, 0b100
Equates are a named sequence of tokens. They can be defined with equ. For instance:
led_1 equ 0x100 | 1
led_2 equ 0x100 | 2
combo equ ( led_1 ) | ( led_2 )
The org position can be changed with org. For instance
org 0x10o
Enhancements:
- This release adds support for sophisticated macros, include files, conditional compilation, and compatibility with Microchip headers.
<<less
Download (0.040MB)
Added: 2006-10-31 License: GPL (GNU General Public License) Price:
1090 downloads
ftRTOS 0.1

ftRTOS 0.1


ftRTOS is another free and small realtime kernel for microcontrollers focused on minimal RAM usage. more>>
ftRTOS is another free and small realtime kernel for microcontrollers focused on minimal RAM usage. The "ft" prefix means femto, the next order after nano and pico.
Primarily this kernel is intended for MSP430 family of microcontrollers. Porting to another architectures is quite simple but on some architectures performance may degrade.
The source code is written in pure C. The preference is given to GCC as free software should be compiled with a free compiler. Assembly language is used only where it is unavoidable.
Main features:
- Minimal use of RAM. For example, on MSP430 in minimalistic configuration it is required only 6 bytes of RAM per task not including stack.
- Static definition of tasks and protected shared objects.
- Multiple levels of priority, fixed priority scheduling. By design, the number of levels is limited by the maximum number that unsigned char data type can hold.
- Preemptive or cooperative scheduling policy.
- Unlimited number of tasks by design.
- No idle task.
- Simplicity and clarity as a design philosophy.
Two approaches are used to achieve the main design goal: avoiding dynamic memory management and splitting all structures into two parts.
Dynamic memory management adds overhead to all memory blocks and requires some additional code. Without dynamic memory management it is impossible to dynamically create tasks and synchronization objects (more precisely, protected shared objects, PSO). But for tiny systems it is not a key feature. So, all tasks and PSOs are defined at compile time.
Splitting structures that describe tasks and PSO means that they have constant (ROMable) and variable parts. The first one contains static properties, such as priority, address of entry point, address of stack, etc. The variable part is placed in RAM and contains only those properties that require changes at run time.
It is necessary to note that such division requires frequent access to the flash/ROM and on some architectures it may lead to performance degradation. For example in AVR family the access to the flash memory is very painful.
The simplicity of kernel as a design philosophy obliges to implement only minimal set of functions and only those which are absolutely necessary. Theres only one global critical section which disables context switching. There are no functions to suspend and resume tasks (their appearance in user code tells that something wrong in software design). Only one type of PSO, namely queue, is used for communications between tasks.
However, sticking to minimalistic design leads to inflexibility. Therefore in addition to minimalistic design a list-based design has been implemented. The user can choose either. The differences and features will be explained later. Generally, list-based design increases the size of variable part of task structure (on MSP430 it becomes 12 bytes) but allows several waiting tasks on each side of PSO, the priority inversion problem is handled (the users choice) and other types of PSO may be implemented.
<<less
Download (0.018MB)
Added: 2006-01-13 License: GPL (GNU General Public License) Price:
1387 downloads
dsflasher 0.9

dsflasher 0.9


dsflasher is a utility to flash Dallas (Maxim) DS89C450 microcontrollers using a ROM loader. more>>
dsflasher is a utility to flash Dallas (Maxim) DS89C450 microcontrollers using a ROM loader.

Usage:

dsflasher -f [input filename] -p [serial port]
<<less
Download (0.003MB)
Added: 2007-08-22 License: GPL (GNU General Public License) Price:
797 downloads
avrmon-stk200 0.7.1

avrmon-stk200 0.7.1


avrmon-stk200 is a port of Denis Chertykovs Linux debug monitor system for Atmel AVR microcontrollers. more>>
avrmon-stk200 is a port of Denis Chertykovs Linux debug monitor system for Atmel AVR microcontrollers.

avrmon-stk200 project is compatible with the connection scheme used in Atmels "STK200 Starter Kit", as opposed to the original version that used the "DAPA" (Alexs Direct Avr Parallel Access) scheme.

In short, the monitor system allows you to do in-systems source-level debugging on AVR microcontrollers with gdb (avr-gdb).

<<less
Download (0.32MB)
Added: 2006-05-31 License: GPL (GNU General Public License) Price:
1247 downloads
CANFestival GUI 0.2

CANFestival GUI 0.2


CANFestival GUI project is an implementation of the CANopen protocol. more>>
CANFestival GUI project is an implementation of the CANopen protocol.
CANopen SlaveLib is an implementation of the CANopen protocol for CAN bus devices.
It makes it very easy to create CANopen slave devices under Linux and on Microchips PIC microcontrollers.
Main features:
- Opensource and therefore available for everyone
- Standard-compliant
- Highly portable
- Programmed in ANSI-C (especially because of the portability)
<<less
Download (0.43MB)
Added: 2006-10-19 License: LGPL (GNU Lesser General Public License) Price:
1112 downloads
Virgil B-03

Virgil B-03


Virgil is an new, light-weight object-oriented programming language. more>>
Virgil projetc is an new, object-oriented, light-weight programming language that is designed for building software for resource-constrained embedded systems at the lowest level. Microcontroller programmers can now develop complete software systems, including hardware drivers and OS services, in one language, without the need to resort to unsafe libraries or native code.
Virgil also provides a whole-program compiler system that applies novel global optimization techniques to produce efficient machine code that runs directly on the hardware, without the need of a virtual machine or a language runtime system.
Why are microcontrollers important?
Embedded computers are everywhere. While the desktop computer revolution has brought computing to millions of users worldwide, the embedded system revolution has been quietly automating the world we live in--everything from the cars we drive to the roadways we drive them on; from factory production to the goods we use every day. In 2005, nearly 6 billion microcontroller units were manufactured. Today, microcontrollers outnumber people on this planet by more than 5 to 1. Soon, most electronic devices will have a software-programmable embedded computer with capabilities ranging from simple arithmetic to wireless communication, and microcontrollers offer a compelling solution for many of these products.
How is software for embedded systems different?
Software in this environment has very different requirements than traditional desktop and server computers. First, embedded programs must control devices that sense and interact with the physical world, in contrast to desktop and server software that is driven by databases, websites, and input from users. Second, embedded systems often operate in safety critical real-time scenarios, where software is tasked with controlling physical processes and actuators that can pose physical danger to people, infrastructure, and the environment. Third, the cost of software update for billions of devices makes it largely infeasible, vastly increasing the importance of software verification.
How can new language technology help?
Advances in programming languages over the past 30 years have yielded demonstrable productivity gains, including better static checking, more expressiveness, and better portability and maintability. Yet these advances have not been put into practical use in developing embedded systems software. The continued use of unsafe, low-level languages that frustrate automated program reasoning and verification poses a significant stumbling block to progress. While no magic bullet exists for software development, we believe that applying modern technology to this problem will produce real, tangible gains in both software quality and efficiency.
Main features:
Object-oriented Features
- Classes and single-inheritance
- Virtual methods
- Constructors
- Orphan classes
- Always pass by reference
Procedural Features
- Components
- Loops
- Switches
- Statements
Functional Features
- Delegates
- Aggressive inlining *
- Tail call optimization *
Other
- Arrays
- Bit-level types
- Compile-time Application Initialization
- Hardware register access
- Interrupt handlers
- Well-defined language semantics
- Heap optimization
- Exceptions *
- = the implementation of this feature is not yet complete in prototype compiler
<<less
Download (0.57MB)
Added: 2007-05-14 License: BSD License Price:
894 downloads
uLan Driver 0.7.2

uLan Driver 0.7.2


uLan Driver is an RS-485 link and uLan protocol driver for Linux and Windows. more>>
uLan Driver provides 9-bit message oriented communication protocol, which is transferred over RS-485 link.
Characters are transferred same way as for RS-232 asynchronous transfer except parity bit, which is used to distinguish between data characters and protocol control information. A physical layer consists of one twisted pair of leads and RS-485 transceivers.
Use of 9-bit character simplifies transfer of binary data and for intelligent controllers can lower the CPU load, because of the CPU need not to care about data characters send to other node. Producers of most microcontrollers for embedded applications know that and have implemented 9-bit extension in UARTs of most of todays MCUs. There is the list below to mention some of them:
- all Intel 8051 and 8096 based MCUs with UART
- members of Motorola 683xx family ( 68332, 68376, ... )
- Hitachi H8 microcontrollers
The driver is implemented as relatively independent layers and subsystems. Messages are prepared and received in the driver dedicated memory. This memory is divided into blocks with uniform size with atomic allocation routines.
When message is being stored into blocks, head of message with couple of data bytes is stored in the first allocated memory block. If all data cannot be stored in the first block, next blocks are allocated and linked together.
The message heads are linked in bidirectional linked lists of messages prepared for sending, processed messages and messages prepared for client notification. These lists or queues are main mechanism for transferring of messages between subsystems.
Link protocol is programmed as finite state automata with state stack, which state routines are executed by interrupt handler. State routine can return positive integer information, negative error notification or zero, which leads to wait for next interrupt. Information or error is used as input parameter when state routine is called.
When the state routine wants initiate transfer to another state routine it changes pointer to the actual state routine. If previous state routine returns nonzero value new routine is called immediately, in other case next interrupt invokes new state routine.
There is stack of callers of actual state routines which enables to constructs automata subsystems, which can be used in more places in main automata loop. Main purpose of this automata is to send or process messages coming in list of messages prepared for sending and if specified, move these messages onto list of messages prepared for client notification.
Received messages are put onto this list too. Subsystem is supervised by timeout handler, which can revitalize communication in case of die of other node. The interrupt and timeout handlers are fully SMP reentrant.
The automata subsystem uses pointers to chip driver routines for hardware port manipulation. This is only part dependent on used chip, today 82510, 16450 and OX16C950PCI. These routines can send and receive 9 bit character, connect to RS-485 line by the arbitration sequence, wait for specified time for character and initialize and close port.
File operation subsystem makes interface between OS kernel VFS and client message queues. It enables to prepare single or multi-frame messages and stores notifications of received or processed messages in clients private state structures. This part is heavily operating system dependent.
Enhancements:
- This release enables you to build the driver within the WDF framework for Windows.
- Updates to support the latest Linux 2.6.x kernels are included (tested to 2.6.19).
- Changes to allow stand-alone system-less build for ARM targets (LPC21xx) are included.
- The OMK has been selected as the default build.
- The "switch2std" script allows you to switch to the old build system.
<<less
Download (0.25MB)
Added: 2007-01-08 License: GPL (GNU General Public License) Price:
1022 downloads
PIC USB Framework 1.1

PIC USB Framework 1.1


PIC USB Framework is a USB application framework dedicated to Linux. more>>
PIC USB Framework is a USB application framework dedicated to Linux (on the host side) and to the PIC 18F4550 family of microcontrollers (on the device side).
PUF includes: a bootloader that can flash the PIC application through the USB, a PIC demo and its corresponding application on the host side, and docker, the host-side flash programming utility.
The PUF also contains gputils and sdcc as cross-building tools, and odyssey 0.4vasco as a parallel port PIC programmer.
Enhancements:
- sdcc optimization flags are now switched on by default.
- A component library (including a console mechanism and a small real time scheduler) has been added to help building user applications.
- Tools have been upgraded to automake 1.9.6, autoconf 2.59d, sdcc snapshot 4482, odyssey 0.5, and gputils 0.13.4.
- The applications size has been optimized.
<<less
Download (4.3MB)
Added: 2007-01-01 License: LGPL (GNU Lesser General Public License) Price:
1032 downloads
Pyastra 0.0.4.1-preview

Pyastra 0.0.4.1-preview


Pyastra is a python to assembler translator. more>>
Pyastra is a python to assembler translator. The project takes source file written in python and, if the code contains no errors, generates an assembler file.
Then you may comile it to hex-file using your favourite PIC assembler (gpasm, mpasm, or any other compatible with them).
Goals:
- to bring a python translator to the world of microcontrollers
- to support a wide range of microcontrollers and processors
- to generate compact and effective code
- to be developer- and user-friendly
<<less
Download (0.19MB)
Added: 2006-11-27 License: GPL (GNU General Public License) Price:
1061 downloads
Piklab 0.14.5

Piklab 0.14.5


Piklab is an integrated development environment for applications based on PIC and dsPIC microcontrollers. more>>
Piklab is an integrated development environment for applications based on PIC and dsPIC microcontrollers similar to Microchip MPLAB software.
The GNU PIC Utilities are used for compiling assembler files. Microchip programmers (currently only ICD2) and several direct programmers are supported. A command-line programmer is included.
Piklab is free software released under the GNU Public License.
Main features:
- compile and link assembler files with "gpasm" and "gplink" .
- disassemble hex files with "gpdasm".
- project manager.
- hex file editor (all but newest PIC and dsPIC are supported). Tested only with inhx32 format.
- programming with "direct" programmers (serial and parallel). Only some PIC are supported. This feature is directly copied from Pikdev 0.8.1 and hasnt been tested at the moment. See Pikdev homepage for details.
- programming with ICD2 programmer from Microchip (serial and USB). Debugging is not supported yet. Tested only with 16F871 and 18F452. Automatically upload the correct firmware for the programmer.
- command-line programmer ("piklab-prog"). It still uses some configuration values that can only be set with the complete graphical interface. It needs to run under a graphical environnement since it uses some KDE libraries.
<<less
Download (1.6MB)
Added: 2007-08-17 License: GPL (GNU General Public License) Price:
802 downloads
KTechlab 0.3.6

KTechlab 0.3.6


KTechlab is an IDE for microcontrollers and electronic circuits. more>>
KTechlab is a development and simulation environment for microcontrollers and electronic circuits, distributed under the GNU General Public License.
KTechlab consists of several well-integrated components:
- A circuit simulator, capable of simulating logic, linear devices and some nonlinear devices.
- Integration with gpsim, allowing PICs to be simulated in circuit.
- A schematic editor, which provides a rich real-time feedback of the simulation.
- A flowchart editor, allowing PIC programs to be constructed visually.
- MicroBASIC; a BASIC-like compiler for PICs, written as a companion program to KTechlab.
- An embedded Kate part, which provides a powerful editor for PIC programs.
- Integrated assembler and disassembler via gpasm and gpdasm.
Main features:
- Electronic Simulation
- PIC Simulation
- Logic Simulation
- Supported Components
- Programming
- MicroBASIC
- FlowCode
- Assembly
<<less
Download (MB)
Added: 2007-04-14 License: GPL (GNU General Public License) Price:
931 downloads
AVR Libc 1.4.1

AVR Libc 1.4.1


AVR Libc is a high quality C library for use with GCC on Atmel AVR microcontrollers. more>>
AVR Libc is a Free Software project whose goal is to provide a high quality C library for use with GCC on Atmel AVR microcontrollers.
Together, avr-binutils, avr-gcc, and avr-libc form the heart of the Free Software toolchain for the Atmel AVR microcontrollers.
They are further accompanied by projects for in-system programming software (uisp, avrdude [formerly avrprog]), simulation (simulavr) and debugging (avr-gdb, AVaRICE).
AVR Libc is licensed under a single unified license. This so-called modified Berkeley license is intented to be compatible with most Free Software licenses like the GPL, yet impose as little restrictions for the use of the library in closed-source commercial applications as possible.
Enhancements:
- This release fixed a problem where util/delay.h was missing an inline keyword.
- An incorrect definition of the IVSEL bit in the MCUCR register was fixed.
- The simple demo was modernized a bit.
- New "largedemo" and "stdiodemo" demo projects were added.
- The demo projects now install their source code as part of the documentation tree.
- ATtiny24, ATtiny44, and ATtiny84 are now supported.
<<less
Download (0.45MB)
Added: 2006-01-03 License: BSD License Price:
1405 downloads
uIP 1.0

uIP 1.0


uIP TCP/IP stack provide TCP/IP connectivity to tiny embedded 8-bit microcontrollers. more>>
uIP TCP/IP stack provide TCP/IP connectivity to tiny embedded 8-bit microcontrollers, with maintained interoperability and RFC standards compliance.
uIP is an implementation of the TCP/IP protocol stack intended for small 8-bit and 16-bit microcontrollers.
uIP project provides the necessary protocols for Internet communication, with a very small code footprint and RAM requirements - the uIP code size is on the order of a few kilobytes and RAM usage is on the order of a few hundred bytes.
uIP is open source software written in the C programming language and the documentation and source code is free to use and distribute for both commercial and non-commercial use as long as proper credit is given (the full BSD-style license is here). It has been ported a wide range of 8-bit microcontrollers and is used in a large number of embedded products and projects (see the Links page for a few examples).
Main features:
- Well documented and well commented source code - nearly every other code line is a comment.
- Very small code size.
- Very low RAM usage, configurable at compile time.
- ARP, SLIP, IP, UDP, ICMP (ping) and TCP protocols.
- Includes a set of example applications: web server, web client, e-mail sender (SMTP client), Telnet server, DNS hostname resolver.
- Any number of concurrently active TCP connections, maxium amount configurable at compile time.
- Any number of passively listening (server) TCP connections, maximum amount configurable at compile time.
- Free for both commercial and non-commercial use.
- RFC compliant TCP and IP protocol implementations, including flow control, fragment reassembly and retransmission time-out estimation.
Enhancements:
- A new socket-like API, protosockets, was added.
- uIP now has rudimentary IPv6 support.
- A DHCP client was added and the Web server was rewritten with protosockets.
- Device driver structure was simplified.
- Many bugfixes were made in the TCP code.
- A uIP mailing list was started.
<<less
Download (1.3MB)
Added: 2006-06-14 License: BSD License Price:
738 downloads
YASP 0.4

YASP 0.4


YASP project is a lightweight network protocol for micro controllers. more>>
YASP project is a lightweight network protocol for micro controllers.
YASP is a simple and open protocol for building networks with small microcontrollers. It is designed to have a small footprint for easy implementation with minimal hardware resources, but without sacrifice advanced features and future growth.
The protocol scalability is implemented using variable length fields.
The physical layer use the NRZ encoding as in RS-232, but using dominant and recessive bus states to provide a reliable way to detect collisions.
Main features:
- Node adresses: 1 to n bytes
- Medium access: CDMA/CS/NDA (Carrier Sense Multiple Access / Collision Detection / Non-Destructive Arbitration)
- Addressing modes: unicast, broadcast and multicast
- Smallest frame: 6 bytes
- Error detection: CRC16
- Bus signaling: 1-wire "open collector" or 2-wire diferential (CAN transceiver)
- Current PIC implementation: about 480 words of code and 25 bytes of RAM (interrupt driven)
Enhancements:
- Fixed minor framing bugs that affect reception of consecutive frames.
- Added sample code for analog inputs node using 16f876.
<<less
Download (0.19MB)
Added: 2007-01-16 License: LGPL (GNU Lesser General Public License) Price:
1014 downloads
SX-IDE 0.08

SX-IDE 0.08


SX-IDE is an IDE to program the Ubicom SX28/52 microcontroller from within Linux. more>>
This is an application to compile assembler files and transfer them from Linux to the XGS (SX28/52 microcontrollers) with the SX-Key.

It requires QT 4, WINE and the SASM assembler. The 0.02 version contains just the transfer part. The newer versions also contain the rest of the IDE to compile the source code and transfer the files.

<<less
Download (0.084MB)
Added: 2005-08-07 License: GPL (GNU General Public License) Price:
1538 downloads
Secleted [ 0 ] software to compare
  • Page: 1 of 2
  • 1
  • 2