Formatting for the industry
Digest those technical nuts and bolts in a logical way. Instead of following a particular manufacturer’s reference databook, follow a generic approach to know the microcontrollers. Learn how the general principles are implemented in practice. Then mug up the marketable stuff, whether it is a specific architecture, operation of a specific controller or syntax of any object-oriented program.
Explore the microcontroller systems step by step. Start with the foundation level, i.e., the architecture. From the architectural point of view, a microcontroller—the dedicated application system—and other general-purpose computers are quite similar. So the basic operation of a general-purpose computer is to be assimilated first. Get acquainted with registers, the arithmetic and logic units, read-write memory for data storage, read-only memory for program storage, flash memory for permanent data storage, peripherals, input/output interfaces and how a computer works.
Turn now to the central processor: the steps you take here will be the same as for any processor you may come across later in your career. Evaluate a processor by looking at the hardware resources. At the basic level, these include the registers in the CPU, such as accu-mulators, memory addressing registers and condition code registers. For some advanced processors, such as Motorola’s M8HC11 or Intel’s 8051 microcontroller, the CPU may contain other hardware resources like timers, parallel and serial I/Os, and analogue I/O. Pay attention to the programmer’s model concept associated with each type of processor.
Next, see how these principles are applied in a specific RISC (reduced instruction set computing) microcontroller. In this phase, you can explore the architecture of 16-bit, 32-bit or the high-end ones like ARM, MIPS and PPC. Working knowledge of any of these high-end microcontrollers may make you the potential candidate for a job.
How to proceed further?
The system is unveiled. What’s next? The key is with you. Walk through the execution of micro-controller instructions. At this point, you will encounter operands and operations. The combination of an operation and an operand generates an instruction in Assembly language program. Fundamentals of any Assembly language program such as operation and operand fields, comment fields and mnemonics should be registered properly to step through the instruction execution cycle. It is important to understand system timing and control instructions to get control over the subject.
Project-driven learning, backed by a steady exposure to seminars on contemporary topics and interaction with the industry people, gives the course structure an edge. A microcontroller-based project in the area of data acquisition or automation may be a turnkey to enter a good organisation; any parallel course on microcontrollers may also be helpful
—Rajan Arora, team leader-testing, Barco Electronic Systems
The instruction set of a real processor has only a few categories of instru-ctions, such as data transfer, arithmetic and logic ope rations, and brunch and control instructions. But most of these have a variety of ways to address operands. The different ways in which an instruction can specify operands are called addressing modes. If you learn these along with the few categories of instructions, generating programs in any Assembly language will no longer be a daunting task.
As you begin programming in Assembly language, you will use the addressing modes. Your task is to look through the instructions in this category, to find the correct mnemonic for the operation required and then to find the correct addressing mode and the suitable assembler.
Here are some tricks of the Assembly language trade:
1. Use register addressing when possible
2. Use register indirect or indexed addressing
3. Use the stack for temporary data storage
4. Do not use magic number