Embedded Systems Development and Labs; The English Edition Embedded System Development and Application Course Series Embedded System Development and Labs for ARM Edited, revised, and updated by Radu Muresan (cid:31) Compound with Embest ARM Labs System (cid:31) Compound with Multimedia Teaching Demo Modules Embedded System Development and Application Course Series Embedded Systems Development and Labs; The English Edition To Readers (cid:31) Embedded System Application Development and Labs Textbook is compounded with the Embest ARM Development System that was developed by Embst Inc. at Shenzhen, China. Any reader who is interested in using the Embest development tools for ARM can contact Embest Inc. The following is the Embest contact information: Room 509, Luohu Science&Technology Building, #85 Taining Road, Shenzhen, Guangdong, China ZIP: 518020 Tel: +86-755-25635656, 25635626 Fax: +86-755-25616057 Web: http://www.armkits.com or http://www.embedinfo.com E-mail: [email protected] Embedded System Development and Applications Textbook and Embedded System Application Development and Labs Textbook are compounded with teaching demo modules separately. If you are interested in any of these demo modules please contact Embest Inc. 2 Embedded Systems Development and Labs; The English Edition An Introduction to This Book This book is a Lab manual and is part of the “Embedded System Development and Application” course series. This Lab manual is based on the Embest ARM Labs System development platform hardware, which uses an ARM processor as its core. The Lab manual is a complete teaching and training tool for developing Embedded Systems. The book contains 22 Labs that include: Labs for the embedded software development fundamentals; Labs for basic interfaces; Labs for human-machine interface; Labs for communication and audio interfaces; Labs for uC/OS-II embedded real-time operating system porting and application; etc. This book offers many examples for the embedded system learners. The Labs form an embedded system teaching or training tool and are introduced in a gradual manner from simple to complex applications that are close related to the engineering world. This book is accompanied by a free CD that contains the Embest IDE Pro Education Version software produced by Embest Inc. This book can be used as a Lab teaching material for embedded and real-time embedded systems at undergraduate or graduate level with majors in Commuter Science, Computer Engineering, Electrical Engineering; or for professional engineers. 3 Embedded Systems Development and Labs; The English Edition About the Editor of the English Version of the Embedded System Development and Labs Radu Muresan is the editor of the English version of the “Embedded System Development and Labs” book offered first in Chinese by Embest as an accompaniment book to their ARM development platform. Radu Muresan has a PhD in Electrical and Computer Engineering from the University of Waterloo Canada and is currently an assistant professor at the University of Guelph Canada. He is currently teaching the Real-Time Systems Design course in the School of Engineering using the “Embedded System Development and Labs” book and the Embest development platform and tools. 4 Embedded Systems Development and Labs; The English Edition FOREWORD The Evolution of the Embedded Technology The embedded systems based on 8-bits single-chip microprocessors have already being used in many fields. Even today, most of the embedded applications are still belonging to the early stage of embedded system. A general characteristic of these applications is that they include a MCU (micro-controller unit), sensors, monitoring or testing devices, service systems, display devices, etc. Also, these applications have functions such as testing, displaying, processing and automatic control of information. In some industrial control applications such as automobile electronic systems and intelligent home electronic devices, these MCUs are interconnected in a network through common buses such as CAN, RS-232, RS-485, etc. This kind of network has limited applications. The related communication protocols are relatively simple and excluded to the Internet that is being widely used. Today Internet has become a fundamental communication system that is serving the society and also becomes an important way of exchanging information needed by the people. The embedded systems can be integrated to the Internet, helping to transfer information world wide. With the process of integration of embedded devices and Internet, complex high-end applications, mobile phones, PDAs, routers, modems, etc will demand high performance from the embedded processors. Although the embedded technologies that are based on the 8-bit single-chip computer still exist, these kinds of technologies can’t meet the requirements of the evolution of the future embedded system technology due to its limited functions. The market and technology competition consistently requires a higher function/price ratio. On the other hand, the time development of an embedded system is also being required to be shorter and shorter. From the early 70s when the embedded system concept has been introduced, the embedded systems have evaluated rapidly and high performance and low power consumption systems have been developed. In the early stages, many embedded system had no real time operation system (RTOS) support; those embedded system were merely processing some functions such as simple controls that respond to the outside input through a simple loop control algorithm, etc. With the evolution of technology, the system complexity increased and the application fields of the embedded system expanded. Every time when some new functions were introduced, the system software design needed to be completely changed. So, the lacking of real time operating system support became an important issue. Due to the fact that running RTOS on an 8-bit single-chip processor has some difficulties, the 32-bit microprocessor (as core of high performance embedded systems) became a common trend of technology development. From the early 90s, the way of embedded system design had gradually been changed from “Integrated Circuit” level to “Integrated System” level. The “Integrated Circuit” is based on embedded microprocessors and DSPs. The “Integrated System” is based on SoC (System on Chip) concept that was introduced at that time. Nowadays, the embedded system has entered a design phase that is based on SoC and the SoC standardization is used more and more. SoC provide complex hardware features for high performance embedded system. SoC also provides the basic hardware support for real time embedded operating system. During 80s, some real time operating systems emerged. The most common RTOS include VxWorks, Windows CE, Palm, ucLinux, pSOS, uC/OS etc. However, the real application on these RTOS happened only in recent last few years. There are two reasons for this development. One is the increased requirement of the complexity of embedded 5 Embedded Systems Development and Labs; The English Edition software development in the last few years; another is the SoC. RTOS can be run in a dependable, effaceable and affordable way. Most of the RTOS are expensive. As a result, some open sourced RTOS such as uc/OS-II, ucLinux are being chosen by many users. These open sourced RTOS are also suitable as teaching tools. The RTOS functionality and principles are relatively complex. Anyone who is interested in the RTOS research or development, please refer to related books in the field. Embedded systems based on embedded processor are characterized by small size, lightweight, low cost and high performance. The largely used 32-bit microprocessors are ARM from ARM Ltd, Alpha from Compaq, PA-RISE from HP, Power-PC from IBM, MIPS from MIPS Technologies Inc., SPARC from Sun etc. ARM processors have merits of high performance, low power consumption, low cost, etc. ARM processors are the most widely used microprocessors amongst the 32 bit and 64 bit microprocessors. In the early 90s, the semiconductor industry formed a production chain that combined the design industry, manufacture industry, packaging and testing industry. Some real semiconductor companies were greatly developed and some fabless (chipless) companies also emerged. The Advanced RISC Machines (ARM), is the most successful company based on the fabless chipless mode. ARM doesn’t produce or sale chips but provides high performance IP cores that are being sold to authorized semiconductor companies. Let’s look back to the development history of ARM technologies. At the time when ARM7 system architecture (system architecture v3) was just been accepted and applied, the embedded microprocessor market was overwhelmingly occupied by 8-bit and 16-bit microprocessors. However these microprocessors can’t meet the requirements of developing high-end applications such as mobile phones, modems, etc. These high-end products needed the 32-bit microprocessors processing power and higher programming code density than the 16-bit CISC processors. In order to meet these requirements, a T variety of ARM architecture was developed. This T variety is called 16-bit Thumb Instruction Set. Thumb technology is one of the best characteristics of ARM technology. The ARM7TDMIT (system architecture v4T) is the first microprocessor that supports Thumb instruction set. ARM7TDMIT’s work mode can be switched to the Thumb working state. The 32-bit processor can be run with 16-bit Thumb instruction set. So, thumb is a bridge between the 16-bit older system and the 32-bit new system. ARM architecture provided higher performance processor solutions to the users who were looking for higher performance processors. These features greatly increased the embedded development as well as ARM technology. The 16-bit microprocessors were not developed as people expected. The reason was complicated. Maybe one of the reasons was that the 32-bit ARM processors provided higher performance and lower price than the 16-bit processors and enabled the high-end embedded applications to jump to the new 32-bit generation. Many semiconductor companies have accepted the ARM processor production development. There are more than 100 IT companies that are currently using the ARM processors. Among them 19 of the 20 largest semiconductor companies are developing chips based on the ARM architecture. These semiconductor companies include TI, Philips, Intel etc. The excellent processor performance and the punctual marketing enabled ARM to get tremendous resources. These resources greatly accelerated many kinds of system chips developed for different applications. ARM has already established its lead position in the embedded technologies and the ARM technologies are being widely used. ARM has gained great success in the field of high performance embedded applications and the number one position in 32-bit embedded applications in the world. In 2002, ARM processors occupied 79.5% of 32-bits and 64-bit microprocessor market in the world. There were 20 billion ARM cores used by 2002. Nowadays, ARM processors are almost in everybody’s pocket 6 Embedded Systems Development and Labs; The English Edition because almost all of the mobile phones, PDAs are developed based on ARM cores. As a result, in order to keep up with the modern embedded technologies, people need to study the embedded development technologies that are based on 32-bit ARM processors and also need to study its development environment and platform technologies. If integrated circuit and related technologies are the drivers of PC development that have increased the IT technologies in the last twenty years, we could say that, besides the PC technologies, the portable, mobile and Internet related embedded Internet information processing devices will be the main drivers that will enable a Post-PC time becomes true in the next few decades. Currently the embedded Internet is merely limited to some applications such as mobile business, intelligent electronic home devices, control and intelligent devices etc. With the development of related technologies, embedded technology will be developed more and more at an unimaginable speed with more complex applications. The area of embedded applications will be expanded and the embedded systems and applications will be more valuable to the society. Currently the Wintel (Microsoft an Intel federation established at early 90s) has dominated the computer industry. With the development of information technology and network technology, the embedded technology will make this monopoly not exist in the Post-PC time. Embedded System will be the main portion of non-PC devices. Current Status of Embedded System Tools for Teaching and Development Human resource is the key of developing embedded system technology. Enhancing the embedded technology teaching in the universities is to provide the embedded development human resources. On the other hand, the existing engineering staffs in the companies are also needed to be trained by modern embedded technology. The engineering staffs in companies welcome the embedded system training courses that are based on ARM. To this point, establishing a new embedded system training system that is based on ARM is very necessary and urgent. This kind of university training courses will resolve the problem of lacking technology human recourses for developing embedded systems. Although the ARM processors have higher performance and higher processing power than 8-bit single chip computers such as 51 series microprocessors, the complexity and difficulty of developing embedded system hardware and software based on ARM are greater. The main purpose of establishing new tools based on ARM embedded technologies, is the need to enhance the traditional embedded system training by adding complex embedded sample program modules, real time operation system, etc to the text book to make the teaching closer to the real world of electrical and computer engineering. About the Course Series and Related Labs In order to establish tools based on 32-bit ARM embedded technologies, the main requirement is to develop the basic knowledge about ARM architectures. The “ARM System on Chip Architecture” by Steve Furber together with the “ARM Architecture Reference Manual” by David Seal can provide the necessary background. 7 Embedded Systems Development and Labs; The English Edition The Course Series consists of the following basic textbooks: (cid:31) Embedded System Development and Applications Textbook (Available in Chinese) --Compound with multimedia demo modules Major Contents: Basic concepts of embedded system application development, an overview of ARM technology, ARM instruction set, the foundation of embedded program design based on ARM, development samples based on ARM, open sourced real time operating system uC/OS-II and uCLinux, porting and application software development. The readers can completely master the basic concepts and the design flow of developing an embedded system, the embedded software development skills based on ARM, the basic concept of porting and application development of embedded operating systems. (cid:31) Embedded System Application Development and Labs Textbook -- Compound with Embest ARM Labs System --Compound with Multimedia Teaching Demo Modules Major Contents: The embedded system application development Labs is based on the Embest ARM development system. The Labs are coordinated with the course textbook Embedded System development and Applications. The Labs include five parts: basic labs for embedded development, basic device interfacing labs, complex human-machine interfacing labs, communication and voice interface labs, embedded RTOS (Real-Time Operating Systems) porting and application development. These five parts have 22 Labs in total. The labs increase in their difficulty as the book progresses through more material. The labs are very practical and target real world applications. The readers can quickly master the skills that are needed to develop real projects. The purpose of this book is to develop students’ creation ability, design ability, real world engineering project development ability. In order to coordinate with the course teaching and Lab teaching, we developed Multimedia Demo Modules for the Embedded System Development and Applications and Embedded System Application Development and Labs courses. As a start point, we will continually change or add new course textbooks, lab textbooks or multimedia demo modules based on real practical teaching techniques and the evolution of related technologies. This set of textbook combined with class teaching and lab teaching, provides a solution for students to master embedded system development technologies based on ARM. The tools used in the ARM embedded application development include the Integrated Development Environment (IDE), the Embedded Real-Time Operating System, the evaluation board, the JTAG emulator, and other auxiliary tools. Generally, an Integrated Development Environment (IDE) with its basic functions is the only nedded tool for embedded system development. Others tools are optional. The major IDEs used in the world include: SDT and ADS from ARM, Multi2000from GreenHill, Embest IDE for ARM from Embest Inc, etc. The emulators used are Muti-ICE from ARM and ARM JTAG Emulater from Embest Inc. SDT and ADS is the IDE produced by ARM Ltd in its early state (discontinued). The S3C series chips from SAMSUNG are the most widely used ARM based microprocessors. Embest Inc has developed the Embest ARM Development board based on the S3C44B0 chip. This development board has memory, I/O, digital LCD display, touch screen, keyboard, IIS, Ethernet interface, USB interface IIC interface, advanced extension including IDE hard disk, CF card, flash disk etc. The Embest software and hardware tools are complete, reliable and easy to use. These qualities are most needed in an university environment and made us use these tools for 8 Embedded Systems Development and Labs; The English Edition our embedded based courses. NOTE that other microprocessor and interfacing courses and textbooks can provide the basic background for using the Embest development system. The Prerequisites for Studying This Course Series Before studying this course, students should have studied courses such as Microcomputer Interfacing, C Language Programming, and have some basic knowledge of operating systems, computer architecture and network protocols. The text book series have also presented background knowledge of basic networks protocol, touch panel basics, keyboard interface programming basic etc. 9 Embedded Systems Development and Labs; The English Edition Thanks (from Radu Muresan) I am using this book to teach the “Real-Time Systems Design” course at the University of Guelph Canada. I want to thank the Embest engineers {Liuchi, Zhang Guorui, Xu Guangfeng, Baidong} for their full support during editing the English version of this book. They have provided detailed technical support and materials for the assimilation of the existing labs and development of new labs. I also want to thank Oliver Zhihui Liu for providing the first English draft of the Chinese version of the “Embedded Systems Development and Labs” book. I have worked with his translation and generated the English version of the “Embedded Systems Development and Labs”. In this version, I have updated the technical content of the labs based on the “ARM Architecture Reference Manual”, I have verified all the labs and I have added a new real-time lab. Finally I want to thank my master students Zhanrong Yang and Shukla Nupoor for their contributions to the testing of the labs. Zhanrong Yang has work hard to help with the board setup and with providing support with the Chinese documentation. Unfortunately, I was not able yet to edit other books based on the Embedded System Development series. However, this lab manual can be combined with any microcomputer interfacing or real-time system design courses offered in other universities. Due to the fact that the translation draft was sort of word by word translation there are still English and technical errors throughout the book. I have issued this version so the students can perform the required labs for my Real-Time System Design course. I am still working on editing and updating the book and I hope to produce a better version soon. Also, I am planning to produce an Embedded Real-Time system design text book that can accompany this lab manual. However, I believe that this lab book is an excellent tool for teaching embedded systems based on the ARM architecture. I have used other IDEs and I can say that the Embest engineers have developed an excellent product. I want to congratulate the Embest engineers for putting together this product. Radu Muresan, 2005 10
Description: