wiki:Hardware/jCM/cCM2/cSoftware

Version 8 (modified by Joseph F. Miklojcik III, 16 years ago) ( diff )

Software Description

Source Code

$ svn co http://svn.orbit-lab.org/svn/orbit/CM2/trunk

Documentation

This wiki holds all of the documentation associated with the CM2 software and its use.

Testing

There is currently no testing code or data associated with the CM2. As this improves, it should be stored in the SVN repository with the source code, and integrated with configuration and build scripts there.

Development Environment

Firmware Programming

JTAG Programmer Hardware

We are using Olimex ARM-USB-OCD USB based JTAG debugger that is attached to the JTAG port on the CM2 board (JXX).

JTAG Programmer Software

Software used for debugging and internal flash programming is OpenOCD (standard Debian package - apt-get isntall openocd ).

The file openocd.cfg, included in the source repository, has an appropriate configuration for programming the CM2 hardware, although you can experiment with different scripts to automate erasing the flash, verifying the image, and so forth.

Cross-compiler

Software development environment is based on GNU Toolchain for ARM Processor. Downloaded tarball is installed in /usr/{bin,lib,libexec,arm-none-linux-gnueabi}. The toolcahin was compiled with the arm-none-linux-gnueabi prefix so that (for example) compiler can be invoked with:

  arm-none-linux-gnueabi-gcc program.c -o program

You can also get the latest version of gcc, binutils, and newlib, and compile these as configure --target=arm-elf. Both the Makefile and the loader know (at least in theory) how to deal with ELF format CM2 images. In this case tools are prefixed with "arm-elf", so for example an appropriate value for CC in the Makefile would be CC=/usr/local/arm-elf-gcc

Libraries

newlib

Routines with entry points referenced by the GCC compiler, such as the ones for integer division, are provided by newlib, a library designed just for this sort of purpose. Impact on the size of the executeable from newlib is minimized. Newlib source is used unmodified, and not incorporated into the CM2 source repository.

STR71X Library

The ST's firmware library is used for peripheral management. We have made light modifications to ensure it works perfectly with GCC or other fully C99 compliant compilers. The source is included with the rest of the CM2 repository.

TCP/IP Library

We are using uIP TCP/IP stack developed by Adam Dunkels. Significant modifications have been made to the upstream uIP library to get it to support multiple protocols at the application layer. Source to this library is also include in the CM2 source repository.

Attachments (3)

  • uip-1.0-refman.pdf (1.3 MB ) - added by seskar 16 years ago. uIP Reference Manual
  • 10780.pdf (2.8 MB ) - added by seskar 16 years ago. STR71x Firmware Library Usre Manual
  • FlashProgramming.pdf (451.2 KB ) - added by seskar 16 years ago. STR7 Family Flash Programming User Manual
Note: See TracWiki for help on using the wiki.