Keil Software ... Embedded Development Tools For ... Keil Elektronik GmbH (Germany) Consumer Electronics Industrial Control Networking and Office Automation Automotive and Space Exploration Chip Support For ... Keil Software, Inc. (USA) Distributor Network 8051 Microcontrollers MCS® 251 Microcontrollers 166 and ST10 Microcontrollers Representatives In ... 30 Countries World-Wide Munich Germany Dallas, TX USA µVision2 IDE Features ... Simplifies Project Development Create Applications in C and Assembly Optimized Library and Real-Time Kernel Centralized Interface for Development Tools Device Database µVision2 Main Screen C166 Compiler Options µVision2 Projects Target Group Source File Books Tab Targets Multiple Targets in Each Project Create Targets for Simulation, Emulation, & Production Groups Composed of One or More Source Files Help Subdivide and Structure a Project Options for Development Tools Configure At Each Level (Target, Group, & Source File) Flexible Project Organization On-line Documentation Development Tools Manuals Datasheets and Device Manuals ANSI C Compilers Support Extensions For ... 8051 Microcontroller Family (Intel, Dallas Semiconductor, Philips, Atmel, …) MCS® 251 Microcontroller Family (Intel, Temic) C166/ST10 Microcontroller Family (Infineon, ST Microelectronics) Optimizer ... Tuned For Each Architecture High Level Of Code Density Fast Execution Speed Full Control Of Your Embedded Platform ... Register Banks (void function (void) using my_register_bank) Memory Areas (unsigned char xdata myvar) Bit Variables (bit test_flag;) Special Function Registers (sbit P0_1 = P0 ^ 1;) Assembly Code is Not Required Write Interrupt Routines in C (void isr (void) interrupt 3 using isr_rb) Compiler Optimizations Keil C Compilers ... Professional High-Quality Code High-Performance Optimizations extern char *func2 (void); int val; extern strup (char *); char buf[20]; char *func1 (void) { int a,b,c; char *s; char *func2 (void) { int i = 0; while (1) { buf[i] = P1; if (!buf[i]) { strup (buf); return (buf); } i++; } } Global Register Optimization Analyzes Register Usage Optimizes Registers Program-Wide Smaller, Faster Programs Iterative Compilation Steps In This Example ... TEST1 Calls TEST2 And TEST3 90 Bytes Before Optimization 64 Bytes After Optimization 28% Savings In Code Space b = c = 0; for (a = 0; a < 100; a++){ c += (b + 1); s = func2 (); b = strlen (s); } val = c; return (s); } TEST2.C char *func0 (void) int j; char *x; { x = (void *) 0; for (j = P1; j < 100; j++) { x = func1 (); } return (x); } TEST1.C /* Convert to Upper */ void strup (char *s) { while (*s) { *s = toupper (*s); s++; } } TEST3.C µVision2 Debugging Bookmark No Program Code Enabled Breakpoint Program Code (Executed) Program Counter (Next Statement) Disabled Breakpoint Selected Line from Output Window Program Code (Not Yet Executed) Source/Debug Window µVision2 Simulation /* Toggle Port P2.0 and Set P2.8 */ FUNC void SetP28_ToggleP20 (void) { PORT2 ^= 0x0001; /* invert P2.0 */ PORT2 |= 0x0100; /* set P2.8 */ } /* Simulate analog input ramp on AIN0 */ SIGNAL void analog0 (float limit) { float volts; printf (“ANALOG0 (%f) ENTERED\n”, limit); volts = 0; while (volts < limit) { volts += 0.1; AIN0 = volts; twatch (1000); } } MACRO Language Allows High-Fidelity Simulations On-chip Peripheral Dialogs µVision2 IDE for C51 & C166 Third-Party Support Case Tools (DAvE, Easy-Case, VCS) Libraries (USB, CAN, TCP/IP) Emulators (Nohau, Hitex, Signum, Metalink) Device Programmers Real-Time Operating Systems (ESP, CMX, RTX) Technical Support One Year Free (Priority Support via Telephone) In-House And On-Site Training Programs Internet Support Support Solutions Database Application Notes FREE Product Updates µVision2 Tour To Get More Information ... Browse the Tutorials on this CD Visit our Web Site www.keil.c m