Friday, December 12, 2014
Today's uClinux as an operating system includes Linux kernel releases for 2.0 2.4 and 2.6 as well as a collection of user applications, libraries and tool chains.
uClinux - Embedded Linux Microcontroller Project
This is a picture of Rob Scott's Motorola M5206eLITE board.
The Linux/Microcontroller project is a port of Linux to systems without a Memory Management Unit (MMU).
Pronounced "you-see-linux", the name uClinux comes from combining the greek letter "mu" and the english capital "C". "Mu" stands for "micro", and the "C" is for "controller". uClinux first ported to the Motorola MC68328: DragonBall Integrated Microprocessor.
The first target system to successfully boot is the PalmPilot using a TRG SuperPilot Board with a custom boot-loader created specifically for our Linux/PalmPilot port.
The module has been tested with a port of RTLinux 0.9J. A copy of an early oscilloscope tracing can be found on the uCsimm Real-time port page
Thursday, April 05, 2012
Usable in all but the tightest micro-controller environments, The focus is on the tiny-to-small, deeply embedded environment. Fully scalable from tiny (8-bit)to moderate embedded (32-bit). Fully pre-emptible, fixed priority and round-robin scheduling.
Towards high degree of standards compliance. The primary governing standards are POSIX and ANSI standards. Free Service - Port NuttX to run on your custom hardware.- Gregory Nutt.
Sunday, November 13, 2011
Electronic Product Design and Engineering Services. Embedded hardware and software development.
Example Project - "Designed the RASID interface (electronic hardware, embedded real-time software and packaging), a PC peripheral used for industrial automation. This peripheral's design is based on a 16-bit DSP (TMS320LF2407) with 16 analog inputs 2 analog outputs, 41 digital I/O, serial I/O (RS-422) and a USB interface to the PC."
XMK is a preemptive multitasking kernel for microcontrollers. Its goal is to provide a RTOS small enough (RAM+ROM) to run on 8bit microcontrollers. XMK provides additional/optional features when scaling up to 16bit and 32bit platforms.
Tuesday, September 07, 2010
Nano-RK - Wireless Sensor Networking RTOS
- C GNU tool-chain
- Real-Time Priority Based Scheduling
- Built-in Fault Handling
- Energy Efficient Scheduling
- Small Footprint <2K RAM, 16K ROM,
- SLIPstream a simple gateway to IP
- Eclipse IDE allows for easy development
The CMUcam extends upon this idea by providing a flexible and easy to use open source development environment that complements a low cost hardware platform. The CMUcam3 is an ARM7TDMI based fully programmable embedded computer vision sensor. The main processor is the NXP LPC2106 connected to an Omnivision CMOS camera sensor module.
The goal of the CMUcam project is to provide simple vision capabilities to small embedded systems in the form of an intelligent sensor. The CMUcam open source programmable embedded color vision sensors are low-cost, low-power sensors for mobile robots. You can use the CMUcam vision systems to do many different kinds of on-board, real-time vision processing tasks
2014 - Pixy is a fast, low-cost vision sensor you can quickly “teach” to find objects, and it connects directly to Arduino and other controllers.
Thursday, August 05, 2010
Chris O'Byrne created YAVRTOS for understanding how RTOS can be built and how they Tick.
What is a real-time operating system?
Processors are only actually only able to do one thing at a time, whereas we need them to do more than one thing at a time (e.g. update the display while checking for keypresses while reading the serial port). A real-time operating system (RTOS) provides facilities for achieving that.
What is a task?
A task does one of the things (e.g. update the display, check for keypresses, read the serial port) that the application needs done. The real-time operating system allows tasks to execute concurrently, while providing facilities for e.g. tasks to communicate with each other.
What is a tick?
The RTOS needs to be able to switch between tasks - they way it does this is by using a regular processor interrupt (e.g. one of the timer interrupts). Every such interrupt is called a "tick". These interrupts must be set up before the RTOS is started.
My Notes -
There are two things to learn from Chris, build something to completely learn a concept. This is a tough but thorough way of learning. The easier way is to learn from examples. Hacking and Reverse Engineering also good for students to digest methods exhaustively.
The way chris follows leads to things like innovation/improvement and inventions. That is A Better way. This phrase is probably attributed to hp, now called Agilent Technologies. The computing/printing division carries the hp brand name.
I had once serviced a DMM by hp(agilent) decades ago. It had something like a custom 8039. This was decades back. It was a 5-1/2 or more. It had a Watchdog built with CMOS 40xx chips. I never understood watchdogs then, they were not even called watchdogs.
The "Tick" is the heartbeat of a RTOS, not only it keeps polling all peripheral chips or I/O, It cannot skip a beat, even high priority interrupts cannot stop the routine tasks or even delay them. If it has to sample a Analog level ten times a second and produce a output control byte at the same speed; It could be RTOS for Process Control. For a rocket this will not be RTOS. Speed and not missing a step. Many times faster than the process it is meant for, probably ?
Single-Chip Microcontroller Real-Time Operating System. OSS, tiny preemptive Real-Time Operating System intended for use with Single-Chip Microcontrollers.
For - MSP430 (Texas Instruments); AVR (Atmel); Blackfin (Analog Devices); ARM7; FR (Fujitsu); Cortex-M3.
Some Features are
- Low Resource Requirements
- Preemptive multitasking
- Interprocess communication
Wednesday, August 04, 2010
TNKernel performs a preemptive priority-based scheduling and a round-robin scheduling for the tasks with identical priority. The current version of TNKernel includes semaphores, mutexes, data queues, event flags and fixed-sized memory pools. The system functions calls in the interrupts are supported.
Ports -Microchip PIC24/dsPIC; Freescale HCS08; ARM Cortex-M3; Freescale ColdFire.
Things of Interest - TN NET TCP/IP stack; USB bulk firmware.
Monday, August 02, 2010
Contiki - Open Source Multi-Tasking OS
Contiki is designed for microcontrollers with small amounts of memory. A typical Contiki configuration is 2 kilobytes of RAM and 40 kilobytes of ROM.
Contiki provides both full IP networking and low-power radio communication mechanisms. For communication within wireless sensor network, Contiki uses the Rime low-power radio networking stack.
The M-12 module from Redwire is a fast and easy way to create a 6LoWPAN, Zigbee, or general 2.4GHz 802.15.4 device without additional RF design or certifications and without the need for an external host microcontroller. This is a Hardware for Contiki.
Instant Contiki is a complete development environment in a single-file download: a virtual machine with all Contiki software development tools installed. All that is needed to start using and developing Contiki software is the free VMWare Player software, 4 Gb free hard drive space, and the Instant Contiki development environment.
Updated Oct 2013
Contiki is an open source operating system for the Internet of Things. Contiki connects tiny, low-cost, battery-operated and low-power systems to the Internet.
The Internet of Things is a collection of technologies that connect things—sensors and actuators—to the Internet, allowing the physical world to be accessed through software.
Monday, July 05, 2010
BeRTOS - Real Time Operating System
BeRTOS was born as a extremely modular, highly optimized and fine-tuned operating system for embedded programming. As a result, each module has its own scope and can be used alone or in cooperation with other modules. It's even possible to use most of the drivers without activating the kernel module.
New architectures are supported at every new release. Here are a few
- Arduino Duemilanove ATmega328P
- ARM7TDMI Atmel AT91SAM7 series, NXP LPC2XXX series
- ARM Cortex-M3 Luminary Stellaris (LM3S),ST Microelectronics STM32
This section includes real world examples of BeRTOS usage. These examples are full featured programs that you can download, compile and flash directly on your board.
DevelGPS - Stellaris
The purpose of this project is to implement a portable GPS locator / geocaching finder with the Cortex-M3 based Luminary Micro LM3S1968 evaluation board. The device proposes a user interface to configure the GPS coordinates of a target location and shows on the OLED display the direction and distance to reach the target.
Tuesday, January 12, 2010
FreeRTOS - Portable Open-Source Mini RT Kernel
Scaleable real time kernel designed specifically for small embedded systems. FreeRTOS is truly free, even for use in commercial applications. The FreeRTOS license does not pose any risk to your proprietary software.
STM32 Connectivity Line ARM Cortex-M3 demo Including a uIP Embedded Web Server Example.
- Free RTOS kernel - preemptive, cooperative and hybrid configuration options.
- The SafeRTOS derivative product provides a high level of confidence in the code integrity.
- Official support for 23 architectures (counting ARM7 and ARM Cortex M3 as one architecture each).
- FreeRTOS-MPU supports the Cortex M3 Memory Protection Unit (MPU).
- Designed to be small, simple and easy to use.
- Free development tools (Cortex-M3, ARM7, MSP430, H8/S, AMD, AVR, x86 and 8051 ports).
Microchip publish an application note showing how to integrate their libraries and stacks with FreeRTOS.
Saturday, January 10, 2009
OnARM - ARM Developer Resource
- IDE, project manager
- Evaluation Boards and Single-Board Computers
- Device Programmers
CMSIS - Cortex Microcontroller Software Interface Standard
The ARM Cortex Microcontroller Software Interface Standard (CMSIS) is a vendor-independent hardware abstraction layer for the Cortex-M processor series.
The MDK-ARM is a complete software development environment for Cortex-M, Cortex-R4, ARM7 and ARM9 processor-based devices. MDK-ARM is specifically designed for microcontroller applications, it is easy to learn and use, yet powerful enough for the most demanding embedded applications.