embedded quiz 1

0.0(0)
Studied by 2 people
call kaiCall Kai
Locked
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/50

flashcard set

Earn XP

Description and Tags

Vocabulary practice flashcards covering ARM Assembly, CPSR bits, GDB commands, Raspberry Pi 4 hardware limits, and number systems based on the lecture notes.

Last updated 9:18 PM on 9/14/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai
Chat

No analytics yet

Send a link to your students to track their progress

51 Terms

1
New cards

Microcontroller vs Processor

A microcontroller integrates a CPU with memory and I/O on one chip for embedded control; a processor (like a CPU alone) typically needs external memory/IO support.

2
New cards

RP4 SoC Cores

4x ARM 64-bit Cortex-A72 cores, plus SDRAM controller and video decode (H.264/H.265).

3
New cards

Instruction Execution Chain

High-level code compiles to assembly, which assembles into machine code (opcodes) that the CPU executes.

4
New cards

Flowchart

A graphical/visual diagram showing program flow; easy to read overall structure but hard to modify, best for smaller jobs or documentation.

5
New cards

Pseudocode

Natural-language description of an algorithm; flexible and easy to modify, can evolve into code comments, but has no overall visual structure.

6
New cards

Bare Metal Programming

Code that runs directly on hardware with no operating system present.

7
New cards

EABI

Embedded Application Binary Interface; a compiler directive commonly used for bare-metal programming.

8
New cards

ELF

Executable and Linkable Format; a compiler directive commonly used for assembly programs run under Linux.

9
New cards

as -g Flag

Compiles assembly with debug symbols included so GDB can step through source and see labels/registers.

10
New cards

GDB Command: r or run

Starts (or resumes) execution of the program in the debugger.

11
New cards

GDB Command: i r

Displays the values of all registers, including the CPSR.

12
New cards

GDB Command: s

Steps through the program one instruction at a time.

13
New cards

GDB Command: b

Sets a breakpoint at the given label (e.g., b _start stops execution at the program's entry point).

14
New cards

Makefile Clean Target

A custom target (commonly 'clean') whose recipe deletes build artifacts (.o files and the executable) to force a fresh rebuild.

15
New cards

Makefile Pattern Matching Wildcard (%)

Represents a pattern match, e.g., %.o : %.s means 'for any .s file, build a matching .o file'.

16
New cards

Makefile ifdef/else/endif

Conditional logic in a makefile; e.g., ifdef DEBUG sets flags like -g only when the DEBUG variable is defined.

17
New cards

File Extension .s

Human-readable ARM assembly source code that you write.

18
New cards

File Extension .o

Object file; machine code produced by the assembler (as), not yet linked, with unresolved references.

19
New cards

Executable File (No Extension)

The final linked executable, produced by the linker (ld) from one or more .o files; this is what you actually run.

20
New cards

RP4 GPIO Current Limit (Single Pin)

16mA16\,mA maximum for a single GPIO pin.

21
New cards

RP4 GPIO Current Limit (Multiple Pins)

Stay under about 3mA3\,mA per pin when driving multiple GPIOs; total should stay below ~51mA51\,mA.

22
New cards

RP4 GPIO 0-8 Default State

Default high with a pullup resistor (~50kΩ50\,k\Omega).

23
New cards

RP4 GPIO 9+ Default State

Default low with a pulldown resistor (~50kΩ50\,k\Omega).

24
New cards

RP4 I2C GPIO Pullups

GPIO 2 and 3 use 1.8kΩ1.8\,k\Omega pullups to meet the I2C spec, instead of the usual ~50kΩ50\,k\Omega.

25
New cards

2's Complement Negation

Flip (complement) every bit, then add 1. Example: +2 = 00000010 -> complement 11111101 -> +1 = 11111110 = -2.

26
New cards

2's Complement Range (n bits)

2n1-2^{n-1} to +2n11+2^{n-1} - 1.

27
New cards

Hex Digit to Binary Conversion

One hex digit equals exactly 4 binary bits; two hex digits equal one byte (8 bits).

28
New cards

ARM General Purpose Registers

R0-R12, 32-bit, visible for general programming use.

29
New cards

R13 (SP)

Stack Pointer; used by compilers to track the stack location.

30
New cards

R14 (LR)

Link Register; stores the return address for subroutine calls or exceptions.

31
New cards

R15 (PC)

Program Counter; points to the next instruction, incremented by 4 or loaded with a branch destination.

32
New cards

XZR

The zero register; always reads as 0x00000000.

33
New cards

CPSR

Current Program Status Register; holds condition flags (N,Z,C,V), interrupt masks, and processor mode bits.

34
New cards

CPSR Bit 31 (N)

Negative flag; set to 1 if the signed result is negative, 0 if positive.

35
New cards

CPSR Bit 30 (Z)

Zero flag; set to 1 if the result is exactly zero, cleared otherwise.

36
New cards

CPSR Bit 29 (C)

Carry flag; set on unsigned overflow for addition, or 'no borrow' for subtraction; also holds the last bit shifted out.

37
New cards

CPSR Bit 28 (V)

oVerflow flag; set when a signed overflow occurs.

38
New cards

CPSR Bit 7 (I)

IRQ mask; when set, IRQ interrupts are disabled.

39
New cards

CPSR Bit 6 (F)

FIQ mask; when set, FIQ interrupts are disabled.

40
New cards

CPSR M Bits (4-0)

Processor execution mode bits (User, FIQ, IRQ, Supervisor, Abort, Monitor, Hyp, System).

41
New cards

Overflow (V) Technical Definition

V=1 if there's a carry into bit 31 but not out of it, OR a carry out of bit 31 but not into it.

42
New cards

S Suffix in ARM Instructions

Added to an instruction (e.g., ADDS, SUBS, MULS) to make it update the N, Z, C, V flags in CPSR; the plain instruction (ADD, SUB, MUL) leaves flags unchanged.

43
New cards

ADD vs ADDS

ADD performs addition without touching CPSR flags; ADDS performs the same addition but also updates N, Z, C, V based on the result.

44
New cards

SUB vs SUBS

SUB performs subtraction without touching flags; SUBS performs subtraction and updates N, Z, C, V.

45
New cards

ARM Load-Store Architecture

ALU instructions operate only on registers, never directly on memory; data must be loaded into a register, operated on, then stored back to memory.

46
New cards

MUL Instruction

MUL Rd, Rn, Op2 computes Rd = Rn * Op2 (result fits in one 32-bit register).

47
New cards

UMULL Instruction

UMULL RdLo, RdHi, Rn, Rm computes an unsigned 64-bit product, split across two 32-bit registers (RdHi:RdLo).

48
New cards

SMULL Instruction

Signed 64-bit multiplication, splitting the product across two registers, similar to UMULL but signed.

49
New cards

MLA Instruction

Multiply-accumulate: Rd = Rm * Rs + Rn.

50
New cards

UDIV Instruction

UDIV Rd, Rn, Op2 computes Rd = Rn / Op2 as unsigned integer division; the remainder is truncated (not stored anywhere automatically).

51
New cards

Assembler Directives (.byte / .hword / .word / .float)

Reserve and initialize memory for a byte, halfword, word, or floating-point value respectively, often used to set up data tables.