This book was written with the help of many individuals who contributed their time and ideas to the project.
First and foremost, we give our thanks to Bernard Goodwin for championing this project at Prentice Hall. Christine Hackerd, Project Editor at Prentice Hall, made the production process easier and helped educate us in the finer points of book layout. Gayle Johnson's copy editing gave new life to the text; her thousands of red-pen decorations were greatly appreciated.
Special thanks go to Ralph Bodenner for his deep knowledge of Impulse C programming, his assistance with the image filter example in Chapter 11, and his careful technical editing of the manuscript. Thanks also to Brian Durwood, Impulse co-founder, for his support of the project.
We owe a particular debt of gratitude to Maya Gokhale and her group at Los Alamos National Laboratories. Maya's research into streams-based programming provided the basis for the methods and tools presented in this book, and was the impetus as well behind Impulse C.
Bryan Fletcher of Memec wrote the paper (first presented at the 2005 Embedded Systems Conference in March of 2005) that appears in modified form as Appendix A. His insights into embedded processor performance are timely and useful. Ross Snider and Scott Bekker of Montana State University contributed Appendix B, which provides valuable information on streaming hardware interfaces.
The uClinux example presented in Chapter 12 builds on work done by John Williams at the University of Queensland, and we thank John for his assistance and his enthusiastic support.
Some of the optimization and debugging techniques presented in this book originated from discussions with Impulse customers and early users of the Impulse C tools. Carl Ebeling at the University of Washington, along with his students George Huang and Tsz (Oscar) Ng, deserve particular credit for their ongoing work and valuable feedback. Katsumi Kurashige and Tsuyoshi Okayama of Interlink, Inc. (Japan) deserve similar credit for their probing questions and their continued focus on user education.
Bjorn Freeman-Benson provided valuable feedback on the sections relating to programming models. Bjorn's advice and friendship has helped in many ways through the years.
Devi Pellerin created many of the figures, as well as providing help in the page layout process.
To all Impulse C users we extend our thanks, and our promise to keep those bug fixes coming.