Unit I _04.09.24_
Unit I _04.09.24_
Course handled by
Dr.Saru Meena R.
Assistant Professor
Coimbatore
Microprocessor
arithmetic and logical operations over the operands according to the program
stored in the memory and produces the output
§ Microprocessor is a silicon chip that has just the processing power. It has no
RAM, ROM or other peripherals on-chip
critical Microcontroller
3
Use cases of microprocessor
§ Personal Computers (PCs): Microprocessors power the central processing units (CPUs) of PCs, laptops,
and workstations, enabling users to perform various tasks such as web browsing, document editing,
§ Smartphones and tablets: Microprocessors are integral components of smartphones and tablets,
handling tasks like running applications, managing user interfaces, processing images and videos,
§ Servers and data centers: Microprocessors are used in servers and data centers to handle large-scale
computational tasks, manage network traffic, store and retrieve data, and run virtualization software
4
Use cases of microcontroller
§ Embedded systems: Microcontrollers are extensively used in embedded systems for various
applications such as home appliances (microwaves, washing machines, air conditioners), automotive
systems (engine control units, airbag systems, anti-lock braking systems), industrial automation
(PLCs, robotic arms, CNC machines), consumer electronics (remote controls, digital clocks, smart
thermostats), and medical devices (blood glucose meters, infusion pumps, medical imaging
equipment)
§ IoT devices: Microcontrollers play a vital role in IoT devices for collecting sensor data, processing it
locally, and communicating with other devices or the cloud. Examples include smart home devices
(smart locks, doorbell cameras), wearable devices (fitness trackers, smartwatches), environmental
monitoring systems (weather stations), and industrial IoT solutions (predictive maintenance sensors)
5
Use cases of microcontroller
§ Robotics: Microcontrollers are used in robotics for controlling the movement, sensing, and decision-
making capabilities of robots. They power robot arms, mobile robots (like vacuum cleaners and
drones), robotic toys, educational robots, and industrial robots used in manufacturing processes
controlling various functions such as engine management, airbag deployment, anti-lock braking,
§ Medical devices: Microcontrollers are used in medical devices for monitoring vital signs, controlling
drug delivery systems, powering prosthetic limbs, managing insulin pumps, and operating diagnostic
equipment such as blood pressure monitors, ECG machines, and pulse oximeters
6
Use cases of microcontroller
§ Remote sensing: Microcontrollers are employed in remote sensing applications for collecting data
monitoring, agricultural sensing (soil moisture, temperature, and humidity), and wildlife tracking
§ Security systems: Microcontrollers are used in security systems such as access control systems,
surveillance cameras, alarm systems, and biometric identification systems to monitor and protect
routers, WiFi modules, Bluetooth modules, and RF transceivers to enable wireless communication and
In summary, microprocessors are suited for applications requiring high computational power and running
complex software, while microcontrollers excel in embedded systems that demand real-time control, low
power consumption, and cost-effectiveness 7
Difference between microprocessor and microcontroller
8
Difference between microprocessor and microcontroller
M
Microcontroller has the
i Microcontroller is the Since memory and I/O components
processor, memory , I/O
01 heart of the embedded 02 03 are present internally , the circuit
c components and other
system peripherals within a becomes small and cost effective
r
single chip
o
c Since memory , I/O and all the
More no.of registers ;
o Can be used in compact 05 peripherals are internal, the
04 No.of memory based
speed is fast since most of the 06
n systems
operations are less
instructions require only
t
internal components access
r
§ Power consumption is less
o
since all the peripherals are § Clock speed : in KHz or MHz
l 07
on – chip Architecture : Harvard
08 § Communication interface : 09
l § Power saving mode to reduce architecture
SPI,I2C,UART
e the power consumption still § Used in washing machine
10
r further
Microprocessor architectures
02
Instruction set architecture § ISA defines the set of instructions that a processor can execute,
(ISA) along with the processor's registers, data types, addressing modes,
and the overall instruction format
§ The two main types of ISA are : (a) Complex Instruction Set
Computing (CISC) and (b) Reduced Instruction Set Computing
(RISC)
11
Memory architectures of the processor
and data
§ In a Harvard architecture system, the CPU accesses instruction Von Neumann architecture
improved performance
System bus : (a) Data bus (b) Address bus and (c) Control bus
Data bus :
§ The data which is to be sent or retrieved from a device is placed on these lines
§ The size of the data bus = size of the data that the processor can hold
§ These lines are bidirectional, data flow in both directions between the processor and memory
13
Memory architectures of the processor
Address bus :
14
Memory architectures of the processor
Control bus :
§ Complex instructions: Instructions can perform multiple low-level operations, such as memory access and
§ Variable instruction length: Instructions vary in length, allowing more flexibility but complicating the
instruction decoding
§ Rich addressing modes: Supports multiple addressing modes, enabling more complex data manipulation
§ Since each instruction can perform multiple operations, fewer instructions are needed to do a given task ⟹
§ Instruction may take more than a single clock cycle to get executed
§ Simple Instructions: Each instruction performs a single operation, typically executed in a single clock cycle
§ Fixed instruction length: Instructions are of uniform length, simplifying instruction decoding and
pipelining
§ Load/store architecture: Memory access is limited to specific load and store instructions. The operands will
be loaded from memory to registers (via.) load instructions , the manipulation will be done on the operands
and the result of the computation will be stored from a register to a memory (via.) store instruction
§ Faster instruction execution (one clock cycle) due to the simple instruction set
§ Lower power consumption: RISC processors consume less power than CISC processors, making them ideal
for portable devices
§ Requires more instructions to perform complex tasks ⟹ Larger program size compared to CISC for the
17
same task
Instruction set architectures of the processor
Use case : Add 2 numbers from memory and store the result back in memory
This instruction will load the values from memory 2 and 3, add them, and store the result in memory 1
Lorem Ipsum
Designed to minimize the § Large set of instructions
number of instructions per Lorem ipsum dolor sit amet,
§ Variable size instructions
01 02 est. A magna
nibh maecenas,
program, sacrificing the More addressing modes
quam magna §nec quis, lorem
number of clock cycles nunc.. § Less no.of registers
needed to execute an § Instructions can directly
instruction CISC summary interact with memory
Lorem Ipsum
§ Less no.of instructions per Lorem ipsum dolor sit amet,
program thereby being § Instructions take more than one
nibh est. A magna maecenas,
04 03 clock cycle to get executed
memory efficient quam magna nec quis, lorem
nunc.. § More power consumption
§ Pipelining is difficult
19
Instruction set architectures of the processor
Lorem Ipsum
Designed to minimize the § Small set of instructions
clock cycles needed to Lorem ipsum dolor sit amet,
§ Fixed size instructions
01 02 est. A magna
nibh maecenas,
execute an instruction Less addressing modes
quam magna §nec quis, lorem
cycles per instruction at the nunc.. § More no.of registers
cost of the number of § Separate load/store instructions
instructions per program. RISC summary for memory access
Lorem Ipsum
§ More no.of instructions per Lorem ipsum dolor sit amet,
program thereby being § Each instruction takes only one
nibh est. A magna maecenas,
04 03 clock cycle to get executed
memory inefficient quam magna nec quis, lorem
nunc.. § Less power consumption
§ Pipelining is easy
20
Little endian vs Big endian
§ A little-endian system stores the least significant byte (LSB) at the lowest memory address
§ The “little end” (the least significant part of the data) comes first
21
Little endian vs Big endian
§ A big -endian system stores the most significant byte (MSB) at the lowest memory address
§ The “big end” (the most significant part of the data) comes first
22
Development board
circuits on breadboard
23
Development board
§ The ARM (Advanced RISC Machine) architecture is a family of Reduced Instruction Set Computing
§ ARM processors are widely used in a variety of devices due to their power efficiency and high
performance
§ The architecture is known for its simplicity, making it a popular choice in the embedded systems
25
Introduction to ARM
RISC principle:
Load/store architecture:
§ Memory access is only performed through specific load and store instructions.
Power efficiency:
§ Optimized for low power consumption, making it ideal for mobile and embedded applications
Performance:
§ High performance per watt ratio (Performance per watt ration tells how much performance is obtained
for each watt of power consumed. A higher ratio means the system is more efficient, providing more
§ Ability to execute multiple instructions per clock cycle through advanced pipeline techniques
Advantages of ARM :
§ Cheap
§ The devices with ARM processor can have a much better battery life than other processors
§ Barrel shifter in the data path to perform shifting or rotation of data in one clock cycle
§ For a regular shift register, no.of clock cycles = no.of shifts to be done on data
§ Auto increment and auto decrement addressing modes to facilitate block transfer of data (multiple data
28
ARM processor families
29
ARM architecture
§ A processor architecture is characterized by : (a) Data path and (b) Control path
§ Datapath: Performs the actual data processing tasks within the CPU, including arithmetic and logic
§ Control path: Manages the execution of instructions by generating control signals that direct the
Registers: Small, fast storage locations within the CPU used to hold data temporarily during computation
Arithmetic Logic Unit (ALU): A critical component that performs arithmetic operations (such as addition
and subtraction) and logic operations (such as AND, OR, and NOT)
Multiplexers (MUX): Devices that select one of several input signals and forward the selected input to a
Buses: Pathways that transfer data between different components of the CPU, such as between the
Shifters: Circuits that shift the bits of a data word left or right, often used for multiplication or division by
powers of two
Memory Access Units: Elements that manage reading data from and writing data to memory.
31
ARM architecture
Control path :
§ The control path, also known as the control unit, is responsible for managing and coordinating the
§ It interprets the instructions fetched from memory, generates control signals to direct the data path,
Instruction decoder: A circuit that translates machine language instructions into control signals that guide
Control signals: Electrical signals generated by the control unit to control the operation of the data path
components (e.g., selecting which operation the ALU should perform, directing data flow through
multiplexers)
32
ARM architecture
Program Counter (PC): A register that holds the address of the next instruction to be fetched from memory
Timing and sequencing logic: Circuits that manage the timing of operations and ensure that instructions
are executed in the correct order
§ The data path and control path work together to execute instructions in a coordinated manner
§ Instruction fetch: The control unit fetches the next instruction from memory using the program counter
§ Instruction decode: The fetched instruction is decoded by the instruction decoder to generate
appropriate control signals
§ Execution: The control signals direct the data path to perform the necessary operations (e.g., reading
data from registers, performing arithmetic operations in the ALU).
§ Memory access: If needed, the control unit directs the data path to access memory to read or write data
§ Write-back: The results of the computation are written back to the appropriate registers or memory
33
locations
ARM architecture
executed
34
ARM architecture
architecture
data in and out of the processor : load instructions copy data from
data in memory
Figure 1 : ARM data path
§ The data processing is carried out solely in registers
35
ARM architecture
§ Data items are placed in the register file—a storage bank made up
of 32-bit registers
§ Since the ARM core is a 32-bit processor, most instructions treat the
§ The sign extend hardware converts signed 8-bit and 16-bit numbers
register
36
ARM architecture
§ Source operands are read from the register file using the internal
takes the register values Rn and Rm from the A and B buses and
computes a result
37
ARM architecture
register file
§ Together the barrel shifter and ALU can calculate a wide range of
§ For load and store instructions, the incrementer ensures that the
40
ARM programmer’s model
§ ARM programmer’s model → structured way to understand and program ARM processors
§ It includes details about processor’s register, memory, processor modes and instruction set
§ By knowing the register set, memory model, instruction set, processor modes and exception handling
mechanisms, programmers can effectively write and optimize code for ARM-based systems
§ There are two types of registers : (a) General purpose registers (GPRs) and (b) Special function
registers (SFRs)
§ General purpose registers → 𝑟" − 𝑟#$ . These GPRs are used to hold the operand or address of the
operand
§ Special function registers → 𝑟#% , 𝑟#&, 𝑟#' and Current program status register (CPSR)
§ 𝑟#% : Stack pointer (SP) . SP holds the address of the top of the stack
41
ARM programmer’s model
§ 𝑟#& : Link register (LR) . The LR is used to store the return address whenever
§ After executing the subroutine, the processor looks at the LR and comes
back to the main program to complete the execution of the remaining part
§ 𝑟#' : Program counter (PC) . PC hold the address of the next instruction to be
executed
42
ARM programmer’s model
operations
control
43
ARM programmer’s model
C=0 if the result of ALU doesn’t have carry out Figure 3 : CPSR in ARM
within 32 bit
44
ARM programmer’s model
§ 𝐵) ∶ 𝐵* → Interrupt masks
§ 𝐵' : T bit
45
Operating modes of ARM 7 processor
flags
46
Operating modes of ARM 7 processor
§ High privilege (a.k.a. Privileged) ⟹ full access to all system resources, including critical hardware and
SFRs
§ There are 7 processor mode namely : (a) User mode (b) FIQ (c) IRQ (d) Supervisor (e) Abort mode (f)
User mode :
47
Operating modes of ARM 7 processor
FIQ:
§ This mode is enabled when high priority interrupt comes in nFIQ pin
IRQ :
Supervisor mode :
§ The programmer can enter into the system mode from user mode via. software interrupt
48
Operating modes of ARM 7 processor
Abort mode :
§ This mode is entered when unsuccessful attempt is made to access the memory
Undefined mode :
§ This happens when a coprocessor instruction is encountered but coprocessor is not available
49
Banked registers
from user mode to IRQ mode , the CPSR of user mode has
Sequence of operations that happens when an interrupt occurs while the processor is in user mode:
Stack operations:
§ Upon entering the IRQ mode, the processor typically pushes the current state of the shared registers
onto the stack. This includes any shared registers (e.g., R0-R12) that the ISR might modify
§ The stack pointer (R13) in IRQ mode is different from the stack pointer in User Mode because it is
52
Banked registers
§ Since the original values of these registers were saved on the stack, the ISR can use them without
Restoring registers:
§ Before exiting IRQ mode, the ISR pops the saved register values from the stack, restoring them to their
original state
§ This ensures that when the processor switches back to the user mode, the shared registers have the
53
Banked registers
§ The ISR executes a special return instruction which typically involves restoring the Program Counter
§ The PC must be changed back to the relevant instruction address in the user instruction stream
§ The processor resumes execution of the main program as if the interrupt had never occurred
§ Total no.of registers : 37 (User mode : 13 GPRs + 3 SFRs + CPSR ; No.of SPSR : 5 ; Banked registers in FIQ
mode : 7 ; Banked SP and LR in other processor modes apart from user and FIQ mode : 8)
54
Addressing modes in ARM
§ In immediate addressing mode, the operand is a constant value specified directly in the instruction itself
Example :
ADD R1, R0, #0x10 ; Add the immediate value 0x10 to R0 and store the result in R1
Example :
ADD R2, R0, R1 ; Add the values in R0 and R1, store the result in R2
55
Addressing modes in ARM
§ In register indirect addressing mode, the operand is located in memory, and that memory address is
held in a register
Example :
LDR R0, [R1] ; Load the value from the address in R1 into R0
§ This mode uses a base register and an offset to calculate the effective address of the operand
56
Addressing modes in ARM
LDR R0, [R1, #4] ; Load the value from the address (R1 + 4) into R0
LDR R0, [R1, #8] ; Load the value from the address (R1 + 8) into R0
STR R3, [R2, #12]; Store the value in R3 to the address (R2 + 12)
Register offset
LDR R0, [R1, R2] ; Load the value from the address (R1 + R2) into R0
STR R4, [R3, R5] ; Store the value in R4 to the address (R3 + R5)
57
Addressing modes in ARM
§ In pre-indexed addressing mode, the address of the operand is calculated using a base register and an
Example :
§ LDR R0, [R1, #4]! ; Load the value from the address (R1 + 4) into R0, and update R1
§ STR R2, [R3, #8]! ; Store the value in R2 to the address (R3 + 8), and update R3
§ In post-indexed addressing mode, the address of the operand is the value in a base register
Example : LDR R0, [R1], #4 ; Load the value from the address in R1 into R0, then update R1 by 4
STR R2, [R3], #8 ; Store the value in R2 to the address in R3, then update R3 by 8
58
Addressing modes in ARM
§ This mode uses a base register and an offset that is scaled (shifted) by a certain amount before being
Example :
LDR R0, [R1, R2, LSL #2] ; Load the value from the address (R1 + R2 * 4) into R0
STR R3, [R4, R5, LSR #1] ; Store the value in R3 to the address (R4 + R5 / 2)
59
ARM instruction set
Types of instructions:
§ Branch instructions
§ Co – processor instructions
60
Load store instructions
61
Load store instructions
62
Load store instructions
63
Load store instructions
64
Load store instructions
65
Load store instructions
R1 = R1+4
66
Load store instructions
Load store pre indexing , post indexing and pre indexing with write back
67
Load store instructions
Load store pre indexing , post indexing and pre indexing with write back
68
Load store instructions
STORE instruction
69
Load store instructions
STORE instruction with pre indexing
70
Load store instructions
STORE instruction with post indexing
71
Load store instructions
72
Load store instructions
73
Load store instructions
74
Load store instructions
75
Load store instructions
76
Load store instructions
77
Load store instructions
78
Load store instructions
79
Load store instructions
80
Load store instructions
LDMIB : Increment the memory pointer by 4 first and then load the
data from the memory location pointed by (memory pointer +4)
into the register
81
Load store instructions
LDMDA R0! , {R1,R2,R3} LDMDA : Load the data from the memory location pointed by memory
pointer into the register first and then decrement the memory pointer by
Take R0 = 0x01C
4
R3 ← data from [0X01C] ; R0 = R0-4
Note : The data from the lowest memory address has to be loaded into
= 0x018
the register with lowest index and the data from the highest memory
R2← data from [0X018] ; R0 = R0-4 address has to be loaded into the register with highest index
= 0x014
After execution ,
R1 = 20 ; R2=30 ; R3 = 40 ; R0=0X10
82
Load store instructions
LDMDB R0! , {R1,R2,R3} LDMDB : Decrement the memory pointer by 4 and then load the data
from the memory location pointed by (memory pointer -4) into the
Take R0 = 0x01C
register
R3 ← data from [R0 - 4] ; R0 = R0-4
Note : The data from the lowest memory address has to be loaded into
= 0x018
the register with lowest index and the data from the highest memory
R2← data from [0X018 - 4] ; R0 = address has to be loaded into the register with highest index
R0-4 = 0x014
After execution ,
R1 = 30 ; R2=20 ; R3 = 10 ; R0=0X10
83
Load store instructions
84
Load store instructions
85
Load store instructions
86
Load store instructions
87
Stack operations
88
Stack operations
89
Stack operations
90
Stack operations
91
Stack operations
92
Stack operations
Stack in ARM
93
Stack operations
Stack in ARM
94
Stack operations
Stack in ARM
95
Stack operations
Stack in ARM
96
Stack operations
Stack in ARM
97
Stack operations
98
Stack operations
99
Stack operations
Stack instructions
100
Stack operations
Stack examples
101
SWAP instruction
§ It swaps the contents of the memory with the contents of the register
§ This instruction is an atomic operation- it reads and write in the same bus operation preventing any
102
SWAP instruction
In this example :
1) Rd is the register R0
2) Rm is the register R1
3) Memory pointer is register R2
Temp = data in the memory location 0x00009000
(i.e.) temp = 0X12345678
Data in memory location 0x00009000 = data in
register R1 = 0X11112222
Data in R0 = temp = 0x12345678
103
ARM instruction for loading 32 bit constant
§ Since ARM instructions are 32 bits in size , the ARM instructions cannot specify a general 32 bit constant
§ To aid programming , two pseudo instructions are used to move a 32 bit value into a register
§ Syntax : LDR Rd, = 32 bit constant ; This instruction is the load 32 bit constant pseudo instruction ; Rd = 32
bit constant
§ ADR Rd, label ; Load address pseudo instruction ; Rd = 32 bit relative address
104
Data processing instructions
105
Data processing instructions
106
Data processing instructions
107
Data processing instructions
108
Data processing instructions
109
Data processing instructions
Logical instructions
110
Data processing instructions
111
Data processing instructions
112
Data processing instructions
113
Data processing instructions
Comparison instructions
114
Data processing instructions
Comparison instructions
Note : cc stands for conditional flags which is also known as conditional codes
115
Multiplication instructions
116
Multiplication instructions
117
Multiplication instructions
118
Multiplication instructions
119
Multiplication instructions
120
Multiplication instructions
121
Multiplication instructions
122
Conditional execution instructions
123
Conditional execution instructions
124
Conditional execution instructions
125
Conditional execution instructions
126
Conditional execution instructions
127
Branch instructions
128
Branch instructions
129
Branch instructions
130
Branch instructions
131
Branch instructions
B (Branch) Instruction:
§ B (unconditional): If no condition code is specified, the branch is unconditional, meaning it will always
§ B{cond} (conditional): If a condition code is specified (e.g., BEQ, BNE, BGT, etc.), the branch will occur only
§ Operation: The program counter (PC) is updated to the address specified by the label, causing execution
BEQ label – Branches to label only if the Zero flag (Z) is set.
132
Branch instructions
§ Purpose: The BL instruction is used to branch to a subroutine or function. It also saves the return address
§ BL{cond} : With a condition code, the branch occurs only if the condition is met.
Operation:
§ The current value of the program counter (PC) plus 4 (address of the next instruction) is saved in the link
register (LR)
§ The program counter is then updated to the address specified by the label, effectively jumping to the
subroutine
133
Branch instructions
§ At the end of the subroutine , the instruction MOV PC , LR should be given to load PC with the address
§ Example: BL func – Unconditionally branches to the function func and saves the return address in LR.
BLNE func – Branches to func only if the Zero flag is not set, and saves the return address in LR.
134
Branch instructions
§ Purpose: The BLX instruction is used to branch to a subroutine while also potentially switching the
instruction set (between ARM and Thumb). It saves the return address in the link register (LR).
§ BLX with a label (unconditional): The branch is unconditional and switches the instruction set based on
§ BLX with a register (unconditional): The branch is unconditional, and the instruction set is switched
135
Branch instructions
Operation:
§ The program counter is then updated to the target address (label or register value).
§ If the least significant bit of the target address is 1, the processor switches to Thumb state; if it is 0, it
Example:
§ BLX R0 – Unconditionally branches to the address in R0 and potentially switches the instruction set.
136
Branch instructions
137
Branch instructions
138
Branch instructions
139
Branch instructions
140
Binary encoding of data processing instructions
141
Binary encoding of data processing instructions
142
Binary encoding of data processing instructions
143
Binary encoding of data processing instructions
144
Binary encoding of data processing instructions
145
Binary encoding of data processing instructions
146
Introduction to LPC 2148
147
Introduction to LPC 2148
§ Two 32-bit timers/external event counters (with four capture and four compare channels each), PWM
unit (six outputs) and watchdog
§ Low power Real-Time Clock (RTC) with independent power and 32 kHz clock input
§ Multiple serial interfaces including two UARTs, two Fast I2C-bus (400 kbit/s), SPI and SSP with buffering
§ Vectored Interrupt Controller (VIC) with configurable priorities and vector addresses
§ 60 MHz maximum CPU clock available from programmable on-chip PLL with settling time of 100 𝜇𝑆
§ On-chip integrated oscillator operates with an external crystal from 1 MHz to 25 MHz
§ Individual enable/disable of peripheral functions as well as peripheral clock scaling for additional power
optimization
§ CPU operating voltage range of 3.0 V to 3.6 V (3.3 V ±10%) with 5 V tolerant I/O pads
149
Introduction to LPC 2148
Types of buses:
In LPC2148 three types of busses are used to connect the core with other peripherals on chip.
§ Local Bus to connect the on chip memory controllers and fast GPIO’s
150
Introduction to LPC 2148
AHB :
bus
151
Introduction to LPC 2148
VPB :
153
Introduction to LPC 2148
Local bus:
operation.
§ The direct access path allows the ARM7 core to
Bus architecture
read from and write to these memories very
154
Introduction to LPC 2148
System functions:
§ This block is used to handle the clock input given to the microcontroller
§ Crystal oscillator is used for generating accurate clock for microprocessor / microcontroller
§ Crystal oscillator will be connected across XTAL1 and XTAL2 (ref. architecture fig.)
§ From the microcontroller, a small frequency clock will be given to the crystal via. XTAL2
§ When the crystal gets a small frequency signal , it will start vibrating in the desired frequency and
generate a clock signal at this desired frequency (say 12 MHz for example)
§ This desired frequency clock signal will be fed to the microcontroller through XTAL1
§ PLL0 is used for multiplying or dividing the clock given by XTAL1. The output of the PLL0 (system
ARM 7 TDMI – S :
§ ARM : ARM stands for Advanced RISC Machine. ARM is a family of RISC architectures for computer
processors. RISC architectures are designed to perform a smaller number of types of computer
instructions so that they can operate at a higher speed (perform more millions of instructions per
second, or MIPS)
§ 7: The number 7 indicates the version of the ARM architecture. ARM7 is the seventh generation in the
ARM family, known for its balance between performance, power consumption, and cost, making it
compressed instructions rather than the standard 32-bit instructions of the ARM instruction set. The
Thumb instruction set reduces code size and, in some cases, can improve performance due to more
156
ARM 7 TDMI – S explanation
ARM 7 TDMI – S :
§ D: D stands for Debug. The ARM7TDMI includes a debugging feature that allows developers to debug
their programs directly on the processor. This is done through the EmbeddedICE logic, a set of
debugging hardware that allows the setting of breakpoints, watchpoints, and single-step execution.
§ M: M stands for Multiplier. The ARM7TDMI features a hardware 32-bit multiplier which enhances its
ability to perform arithmetic operations, especially useful in signal processing and other
§ I: I stands for ICE (In-Circuit Emulation). This is related to the debugging capabilities mentioned
earlier. In-circuit emulation allows developers to test and debug code on the physical hardware,
157
ARM 7 TDMI – S explanation
ARM 7 TDMI – S :
§ S: S stands for Synthesizable Core. This means the ARM7TDMI-S core can be synthesized into a
silicon chip using a hardware description language like VHDL or Verilog. This makes it highly
flexible for integration into various types of embedded systems, allowing manufacturers to include
158