Developing Atmel AT45DB DataFlash Device Driver for eCos - PEEDI in Action

It is essential for product development to have a low startup cost; thus, it is best if proven free development tools like the GNU GCC toolchain and the royalty free RTOS eCos can be used for your project.

GNU GCC needs no introduction, since it is the official Linux development toolchain, but in a few words: GNU GCC tools are a high quality, free, open-source bundle that has support for a large number of processors, from the 8-bit AVR to the 32-bit ARM.

eCos has been ported to many platforms, including the recently popular ARM7TDMI core (a.k.a. the 8051 of the 21st century) that has been designed into most 32-bit microcontrollers today. eCos is so configurable, that its ROM footprint may vary from 20KB (kernel configuration only) to hundreds of kilobytes (including a fully functional TCP/IP stack, file system support, etc.). eCos comes with many ready to use packages, such as a FAT file system implementation, TCP/IP stack, Ethernet and other device drivers. But the volunteers working on that OS cannot possibly write every driver you may need, so you need to write your own driver if the device you use in your project is not already supported in eCos.

This article will show you how to build an eCos device driver for Atmel's SPI DataFlash chips family.

The piece of hardware that we are going to run eCos on is the Ronetix EB55 evaluation board, which is powered by an Atmel AT91M55800 CPU. The board is equipped with 512KB external SRAM, 2MB of FLASH and an AT45DB011B 1 megabit DataFlash for data storage.

Every debugger needs a hardware interface to debug embedded devices. I use Ronetix's PEEDI, which I designed as a 2-in-1 tool: a debugger interface supporting most debuggers and a FLASH programmer with its own database of more than 780 supported FLASH chips. PEEDI can also operate as a stand-alone device (no desktop PC connected to or any file servers, just a power cord) in a push-to-program manner, saving huge amounts of time when many boards need to be programmed.

View Entire Paper | Previous Page | White Papers Search

If you found this page useful, bookmark and share it on: