|
home | lewin's resume | contact lewin | larwe.com |
|
Embedded System Design on a ShoestringIn 1999, I began to work intensively on a range of products based around several different 32-bit cores; initially PA-RISC, and later both ARM and x86. Since I work for a small company, tool and prototype cost has always been a very important factor for me, so obviously GNU tools were my first choice. (In the case of the PA-RISC controller, gcc was also the only compiler supported by the chip vendor). Previously, I had used gcc, binutils and gdb only in the relatively sheltered environment of developing Linux applications. I quickly discovered that building and using cross-compilers to create embedded applications is a good deal more complex!The first few months of working with GNU tools in this way - the GNU linker, in particular - were very frustrating. I found myself wishing for a single reference that would just show me how to build a working toolchain, and exactly what support files I would need to write in order to be able to compile a simple "Hello, World!" program (in C) for the target platform. I also had a lot of difficulty building the toolchain, because although there are numerous scripts and HOWTOs on the Internet, apparently none of them are archived alongside the tool versions with which they were tested. I had no luck at all getting these one-step "point and click" solutions to work, so I had to wrestle with the build process the hard way. Embedded System Design on a Shoestring is the book I wanted when I was getting started, spiced with additional hints and tips based on my last four years of experience developing these complex 32-bit systems on a practically zero budget. My book is intended - bluntly - for people with no money, who want to develop systems based around high-end (16/32-bit) microcontrollers. It includes a CD-ROM with illustrative example sourcecode and free tools. The most important idea presented in this work is how to get up and running quickly with free tools, and in particular an introduction to the structure and usage of the GNU cross-compiling toolchain. Topics discussed in the book include:
If you buy my book - and who wouldn't want to? - you'll want to bookmark this site. You should also email me with any questions and suggestions for further application notes, errata, and requests of that nature. I know a fair number of copies have already been sold; come on, people - let me know what additional material you need! Additionally, if you would like to download the example sourcecode files from the book, you can do so at this link. Stay tuned for my next book, which will be finished in mid-2004 (and probably on the shelves by Q4, 2004). It applies the principles mentioned in this first book to a very complex project: an autonomous, robotic submarine. The submarine is built around Atmel AVR microcontrollers and a Geode-based single-board computer (Advantech PCM-5820) running Linux. The book contains a wealth of ready-to-use modules; tach-feedback PWM motor controller, stepper controller, temperature sensors, and more - in addition to a complete soup-to-nuts description on how to assemble a tiny bootable Linux distribution for your embedded application (small enough to put on a CompactFlash card or ElTorito CD-ROM boot area) and useful information on developing graphical overmonitoring applications on Linux. Also sidebarred in the new book are applications to process control and overmonitoring. |