|ARM Technical Support Knowledge Articles|
Applies to: General Topics
Information in this article applies to:
How do I know if the Keil Compiler supports the chip I will be using?
The Keil Compilers support all 8051, 251, C16x/ST10, and ARM compatible devices. However, there are various meanings to "support", all of which are explained below.
The Keil Compiler generates code for any device that is compatible with the 8051, 251, C16x/ST10, or ARM microcontrollers. The only exception to this would be a device that has removed or altered the instruction set. However, that device would no longer be a compatible part.
When you start a project using the Keil uVision IDE, you must select a chip from the Device Database. We are constantly updating the database and adding new parts. To ensure that you always have the latest database, you may download the latest updates from the Keil Website.
If the latest software's Device Database does not include the part you use, you may add a Device Database entry. Refer to UVISION: ADDING CUSTOM PARTS TO THE DEVICE DATABASE for more information. The Device Database is simply a way to specify the default compiler, assembler, and linker settings. For new devices, you may simply copy the settings for a similar device.
Each microcontroller has its own unique set of Special Function Registers. The SFRs for a chip MAY be identical to those of another device. Keil Software provides custom header files that define the SFRs for almost every 8051, 251, and C16x compatible device. However, there may be new devices for which we have not yet created a header file. That does not mean that this chip is not supported. Creating header files for new devices is easy. Refer to C51: CREATING CPU HEADER FILES for more information.
On occasion, new devices have architectural changes that require new instructions or addressing modes to be added to the compiler. Thankfully, there are only a few such devices. In most cases, these devices offer a 100% compatible mode of operation. Typically, we are able to add compiler support before these chips are available. Sometimes, however, this is not the case. When support is not yet available, you may use these new devices in the compatible mode of operation. When support is integrated into the compiler, assembler, and linker, the device database will be updated with the appropriate controls.
Once you compile, assemble, and link your program, you will need a method of testing it. The Keil uVision IDE supports two distinct methods of program testing: simulation and target debugging.
In simulation, Keil Software or the silicon vendor has created a DLL that simulates the on-chip peripherals of the selected device. With over 350 devices in the database, it is impossible to provide simulation support for all of them. However, it is our goal to simulate as many as possible. Even if complete simulation is not available, partial simulation (base timers, counters, interrupts, and I/O ports) are supported. To discover what on-chip peripherals for a particular chip are simulated, check the Device Database.
You may create your own simulation drivers that plug-in to uVision. Refer to Application Note 154 for more information.
Target debugging allows you to run your program on your target hardware. There are several different ways to do this. Each utilizes an interface DLL that is created either by Keil Software or by the silicon vendor or by the emulator vendor.
The first method of target debugging is via the Keil target monitor. When you use the monitor, you must configure the monitor for your target hardware. Then you must specify the MON51, MON251, or MON166 driver for the uVision Debugger. Refer to MON51: CONFIGURING FOR TARGET for more information.
The second method of target debugging is via an emulator. Many emulator vendors provide uVision Debugger drivers for their products. Contact your emulator vendor to see if they have a driver available.
The third method of target debugging is via debugging hardware (JTAG, OCDS, Serial) that is built into the chip. Companies like Triscend, Infineon, and Cygnal all have built-in debugging solutions. Contact your silicon vendor to see if they have uVision Debugger Drivers for their parts.
You may create your own target debugger drivers that plug-in to uVision. Refer to Application Note 145 for more information.
Article last edited on: 2007-06-13 16:38:25
Did you find this article helpful? Yes No
How can we improve this article?