Phoenix Ambulatory Blood Pressure Monitor Project
Sub-project: 
Embedded Software Tools

Project Description

The purpose of the Embedded Software Tools subproject is to find hardware and software tools for use in doing Embedded Software subprojects.  

The idea here is to list a few tools that stand head-and-shoulders above the rest in terms of being useful to us (meeting certain basic requirements for us, such as being open-source or cost-free), then evaluate some or all of them, recording the results of the evaluation here.  This is not a page to list every possible bit of hardware or software that one can find with a Google search.


Project Deliverables

Sources for microprocessors and microcontrollers

Microchip PIC http://microchip.com/
AVR http://www.atmel.com/products/AVR/
Freescale http://www.freescale.com/
STMicroelectronics http://www.st.com
TI (Texas Instruments) http://www.ti.com/
TI MSP 430 Microprocessor
http://focus.ti.com/mcu/docs/mcuprodmsptoolsw.tsp?sectionId=95&tabId=1203&familyId=342&toolTypeId=1
TI MSP 430 Blood pressure monitor Design Contest entries
http://www.designmsp430.com/Rate.aspx?submission_uuid=4d583602-999c-4530-b59c-f2763f57fd2e
http://www.designmsp430.com/Rate.aspx?submission_uuid=9aaf27e5-e7f4-4870-84b3-f64d94300abc
TI's general reference blood pressure monitor design
http://focus.ti.com/docs/solution/folders/print/310.html
http://www.olimex.com/dev/index.html (development boards for different platforms)

Sources for non-interactive API-driven microprocessor simulators


Sources for microprocessor programming boards

Open source replacement for Basic Stamp
http://todbot.com/blog/2006/09/25/arduino-the-basic-stamp-killer/

Sources for BASIC Compilers/Interpreters

Some problems with BASIC that might limit its usefulness for the final device (though not necessarily for prototyping projects):  might not port to very many microprocessors, writing device drivers can be difficult, support might be minimal, underlying OSs might not be sufficient.
Great Cow BASIC compiler for PIC Micro, open source
http://gcbasic.sourceforge.net/

Picant C and BASIC compilers for Microchip PIC processors (generally not free, but claim to be "low cost")
http://www.picant.com/

Sources for C Compilers

For compilers, we need to be checking out what processors it can generate code for, what is the associated debugging tool, what's the license for use (commercial use allowed?)

GCC
Reportedly no longer suitable for generating code for microprocessors smaller than 32 bits
http://gcc.gnu.org/
GCC for ARM
http://www.gnuarm.com/
Windows Embedded Programming (might be interesting as it claims to include an ARM simulator)
http://msdn2.microsoft.com/en-us/library/ms838188.aspx

Microchip PIC MPLAB IDE (not a compiler, but an IDE framework that compilers fit into)
Windows only
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002

Hi-Tech C compiler for Microchip PIC processors
http://www.htsoft.com/products/compilers/PICClite.php

Picant C and BASIC compilers for Microchip PIC processors (generally not free, but claim to be "low cost")
http://www.picant.com/

SDCC open source compilers for 8051, 80DS390, Z80, HC08, working on PIC16 and PIC18
http://sdcc.sourceforge.net/

WinAVR open source compilers for AVR processors
Windows only
http://winavr.sourceforge.net/

Other people's lists of C compilers
http://www.devrs.com/pic/devsoft.php
http://www.gnupic.org/

Sources for Java

Questions about using Java include "does it drive the power requirements up significantly? (e.g., due to the use of the JVM, which is an interpreter)" and "does it drive development costs down significantly? (e.g., due the convenient networking packages available in the library)".  Prototyping projects to prove an answer one way or another would be welcome and helpful.

Java Micro Edition
http://java.sun.com/javame/index.jsp

Java Standard Edition for Embedded (requires a significant OS such as Windows Embedded or Linux on the device)
http://java.sun.com/javase/embedded/

Other people's lists of Java Embedded resources:
http://schmidt.devlib.org/java/embedded.html

Compilers for other Languages

It seems unlikely that languages other than C, and possibly Java or BASIC, would be useful for the final device.  Some small use of assembler might be required, but the bulk of the software should be in a high level language for maintainability.

Sources for RTOS

FreeRTOS
http://www.freertos.org/

About This Page

This page is maintained by Larry A. Beaty.  It was last updated on 8 July 2007.

The author(s) provide this information as a public service, and agree to place any novel and useful inventions disclosed herein into the public domain. They are not aware that this material infringes on the patent, copyright, trademark or trade secret rights of others. However, there is a possibility that such infringement may exist without their knowledge. The user assumes all responsibility for determining if this information infringes on the intellectual property rights of others before applying it to products or services.

(C) 2007 Larry A. Beaty. Copying and distribution of this page is permitted in any medium, provided this notice is preserved.

Back to the Phoenix Home Page