
Embedded system development and labs for ARM (R. Muresan, 2005)
.pdf
Embedded Systems Development and Labs; The English Edition
Figure 1-2 ADW Window
1.3.2 ARM ADS
The ADS is called ARM Development Suite. The ADS is being used instead of ARM SDK. The latest version of ADS is 1.2. ARM ADS supports all ARM series processors. It is supported by Windows 2000/Me, RedHat Linux, etc. ARM ADS consists of 6 parts: Code Generation Tools, CodeWarrior IDE, Debugger (ADS and ARMSD), Instruction Set Simulators, ARM Firmware Suite and ARM Applications Library.
The CodeWarrior interface is shown in Figure 1-3 and the ADS interface is shown in Figure 1-4.
Figure 1-3 Source Code Window
21

Embedded Systems Development and Labs; The English Edition
Figure 1-4 ADS Windows
1.3.3 Multi 2000
Multi 2000 is developed by Green Hills (www.ghs.com). Multi 2000 supports C/C++, Embedded C++, Ada95 and Fortran, etc programming languages. It can be run on Windows and Unix and supports remote debugging. Multi 2000 supports various 16-bit, 32-bit and 64-bit CPUs and DSPs such as PowerPC, ARM, MIPS, X86, Sparc, Tricore and SH-DSP etc. Multi2000 also supports multiple CPU debugging. Multi 2000 consists of Project Builder (Figure 1-6), Source-Level Debugger (Figure 1-7), Event Analyzer (Figure 1-8), Performance Profiler (Figure 1-9), Run-Time Error Checking, Graphic Browser (Figure 1-10), Text Editor and Version Control System.
Figure 1-5 Multi 2000
22

Embedded Systems Development and Labs; The English Edition
Figure 1-6 Project Builder
Figure 1-7 Source-Level Debugger
Figure 1-8 Event Analyzer
23

Embedded Systems Development and Labs; The English Edition
Figure 1-9 Performance Profiler
Figure 1-10 Graphic Browser
1.3.4 Embest IDE for ARM
Embest IDE is called Embest Integrated Development Environment developed by Embest Info&Tech Co.,LTD (www.embedinfo.com). Embest IDE is a highly integrated graphic development environment that includes an editor, compiler, debugger, project manager, flash programmer, etc. Embest IDE currently supports all the processors based on ARM7 and ARM9. Also, the software can be upgraded to support the new ARM cores. The Embest IDE interface is shown is Figure 1-11.
24

Embedded Systems Development and Labs; The English Edition
Figure 1-11 Embest IDE for ARM Windows
1.3.5 OPENice32-A900 Emulator
OpenNice32-A900 emulator is produced by AIJI (www.aijisystem.com). OPENNice32-A900 is a JTAG emulator and supports ARM7/ARM9/ARM10 and Intel Xscale processor series.
The OPENNice32-A900 has the following features:
●Supports multiple CPUs or multiple CPU boards.
●Supports assembly and C language debugging.
●Provides On_board Flash programming tool.
●Provides memory controller configuration GUI.
●Software can be upgraded to support new ARM cores.
1.3.6 Multi-ICE Emulator
Multi-ICE is a JTAG emulator developed by ARM Ltd. The latest version is 2.1. Multi-ICE supports external power supply. This is important for debugging devices such as mobile phones, battery power supply devices, etc.
The following are the advantages of the Multi-ICE emulation:
●Rapid download and single step program execution.
●User controlled input/output at bit level.
●Programmable JTAG bit transfer rates.
25

Embedded Systems Development and Labs; The English Edition
●Open interface support for non-ARM cores and DSPs.
●Multiple debuggers can be connected to the network.
●Target board power supply or external power supply.
1.4 How to Study Embedded System Application Development Based on ARM
First, the readers need to study the basic knowledge related to the microprocessor organization and interfacing (Flash/SRAM/SDRAM/Catch, UART, Timer, GPIO, Watchdog, USB, IIC, etc), understand one CPU architecture, understand operating system basics (interrupt, priority, inter-task communication and synchronization, etc). For programming, readers need to master C, C++ and assembly language programming (at least C language programming), understand microprocessor architecture, instruction set, programming modes, application development, etc. Secondly, the student of embedded system development needs a good development platform. Also, good development system with basic examples and typical real life application are essential.
26

Embedded Systems Development and Labs; The English Edition
Chapter 2: Embest ARM Lab Development system
2.1 An Overview of the Lab Development system
The Embest ARM Lab development system includes:
●Embest IDE for ARM 2003
●Embest Emulator for ARM JTAG
●Flash Programmer
●Embest S3CEV40 Development Board
●Connection Cables, Power Adapters and Lab Guide
●Two CDs:
--An Embest IDE for ARM Software Installation CD
--A Compound Lab Development system CD
Embest IDE software and Flash Programmer software are on the Embest IDE for ARM Software Installation CD. The content of the compounded CD includes: Embest S3CEV40 Evaluation Board Manual, Schematics of Evaluation Board, Boot Program, Function Module Test Programs, uC/OS-II Real Time Operation System, etc. This CD also has all the source code of this Lab course. (PLEASE NOTE that some of the resources are in Chinese and the ones that are in English need to be corrected)
In order to run the sample programs of this Lab course, please copy the content of the CD in the following directory: C:\Embest\Examples\Samsung\S3CEV40. “C:” is the default hard drive. Users can select different hard drives during the installation process. In all the Labs of this book, the directory “C:\Embest\Examples\Samsung\S3CEV40” is called “sample program directory”.
Attached to this book is the latest version of the IDE Education Version. The installation process of this software is exactly the same as the installation process of normal version Embest IDE for ARM 2003 that provided in the full Embest IDE version. During the installation process of the IDE Education Version, the source code of Chapter 3 is automatically copied in the directory C:\Embest\Examples\Samsung\S3CEV40. A basic model of Embest ARM development system is shown in Figure 2-1.
27

Embedded Systems Development and Labs; The English Edition
Figure 2-1 Model diagram of the Labs
2.1.1 The Embest IDE
1. An Overview of Embest IDE
Embest is a new generation of integrated development environment that is being used in embedded software development. It provides high efficiency and clear graphic interface for embedded software development. It provides a set of development and debugging tools that include: editor, compiler, linker, project manager, etc. The style of the Embest IDE is similar to that of the Microsoft Visual Studio. It is a set of visual development system for embedded software development. In this IDE, the user can conveniently create or open projects; create or open files; compile, link, run or debug various kinds of embedded programs. The Embest IDE interface is shown in Figure2-2
28

Embedded Systems Development and Labs; The English Edition
Figure 2-2 Interface of Embest IDE
2. Features of Embest IDE
Embest IDE can be run under various operating systems such as Windows 98, 2000, NT, XP etc. It mainly supports ARM processors (currently ARM7 and ARM 9 series). The first version of Embest IDE for ARM was finished in 2001. The latest version is the 2003 Embest IDE for ARM.
The following are the important features of Embest IDE for ARM:
●Supported programming languages: C and assembly.
●Friendly and convenient interface: Microsoft Visual Studio user like interfaces.
●Project Manager: Graphic project management tools that organize and manage the source code files. It provides Windows for compiling, linking, library settings. Multiple software projects or multiple library projects can be managed in the same work zone.
●Source Code Editor: Standard text editor that supports color display for key words, syntax key word etc. The IDE also provides find string engine for quick search.
●Compile Tool: The GCC from GNU has been optimized and strictly tested in Win32 environment. The IDE provides a graphic compiler setting interface. The user can use simple, fast, and direct settings for a project compilation. The output of the compilation information is clear and organized for the users to quickly locate the syntax errors in their source code.
●Debugger: Source code level debugging. The debugger provides two debugging ways that are graphic interface debugging and command line debugging. The debugger is capable of setting break points, single step source code execution, exception processing, peer or modify memory, register values and variables,
29

Embedded Systems Development and Labs; The English Edition
peer the function stack, disassembly code, etc.
●Debug Device: Embest JTAG Emulator. One of its ends is DB25 interface that connect to the parallel port of a PC, another end is an IDC plug that connects to the JTAG interface of the target board. Users can use Embest IDE and Embest JTAG Emulator together for software development. Embest IDE also supports universal JTAG cables connectivity.
●Off-line debugging: Embest IDE for ARM provides an ARM instruction emulator. Users can debug ARM application software on PC without the target hardware connected.
●A rich set of sample programs: Provides sample programs for debugging and usage descriptions for ARM processors from many companies such as Atmel, Samsung, Cirrus Logic, OKI, etc.
●On-line Help: English and Chinese version on-line helps files.
When developing embedded software, the first step is the design, the second step is the programming, and the third step is the debugging. A few thousand lines program could have no warnings in the compilation, but will not meet the requirements when executed in hardware. Or, the program will cause system collapse and no startup. Errors such as run time random problems and system collapse are hard to solve. The Embest IDE debugger and debug devices provide Windows debugging environment for program loading, execution, run time control and monitoring of various debug information.
The Embest debugging functions include:
●Break points: Break point setting, break point shielding, break point cancellation, conditional break point, break point listing.
●Single step execution of programs.
●Variable monitoring functions: Variable value display can be changed while the program is executing, variables can also be modified at run time.
●Memory content display and modification, memory content display format setting.
●Stack display.
●Graphic interface debugging and command line debugging.
●Multiple display mode for the same source code: the source code can be displayed as source, assembly or mixed source/assembly.
●Provides MS Visual Studio like debug menu: Go, Stop, Step into, Step over, Step out, Run to Cursor, etc.
●Program uploads and downloads.
2.1.2 Embest Emulator for ARM JTAG
JTAG emulator is also called JTAG debugger. The JTAG emulator communicates with the ARM core through a JTAG loop interface. This debugging method doesn’t need to use the main resources on the chip. It doesn’t need the target memory and it doesn’t occupy any peripheral ports of the target system.
Because the target programs are executed by the target board, the emulation is closer to the hardware. Some interfacing problems such as high frequency restriction, AC and DA parameter matching problems, length of wires, etc have been minimized. The combination of IDE and JTAG Emulator is the most commonly used way of debugging. The Embest Emulator for ARM is shown in Figure 2-3.
30