Assembler [1#2]
Absolute / Relocatable
Podstawy techniki
object file
mikroprocesorowej
Assembler
ETEW006 object file
".obj
Assembler
Architektura
source file
Assembler
".asm
wybranych
".s
mikrokontrolerów
Assembler
listing file
".lst
Andrzej Stępień
Katedra Metrologii Elektronicznej i Fotonicznej
Compiler Linker
Absolute / Relocatable
Compiler
object file Absolute file
Compiler
object file
Compiler
Compiler
".
object file
object file".obj
object file
".abs
".obj
".obj
".obj
".hex
Compiler
Absolute / Relocatable object file
source file
Linker
Compiler
".c
[Converter]
Symbol file
Assembler
".c51
".sym
Assembler
object file
Assembler
Compiler
object file
object file".obj
listing file
".obj
".obj
Source file ".lst
Map file
on
".asm
".map
some
".s Library file
". m51
compilers
".src ".lib
http://en.wikipedia.org/wiki/Integrated_development_environment
http://en.wikipedia.org/wiki/Microprocessor_development_board
http://pl.wikipedia.org/wiki/Zintegrowane_środowisko_programistyczne
Zestaw uruchomieniowy
IDE
(Integrated Development Environment) (Development Board = Kit)
znany jako Microcontroller Development Board lub Development Kit lub
zintegrowane środowisko programistyczne (IDE) lub interaktywne
Evaluation Board / Kit lub Reference Design Board / Kit
środowisko programistyczne to aplikacja, zapewniająca kompleksowe
wsparcie dla programisty przy tworzeniu oprogramowania
Kit = zestaw
zazwyczaj złożone z: edytora kodu zródłowego, asemblera, kompilatora,
to płytka drukowana zawierająca mikrokontroler i minimalną liczbę układów
linkera, debugger a, bibliotek (np. dla zapisu stało- i zmienno-
logicznych umożliwiających naukę działania i programowania
przecinkowego, funkcji trygonometrycznych itp.), formatek / ekranów / okien
mikrokontrolera
dialogowych, menu, raportów, elementów graficznych (ikony, obrazy itp.),
tworzenie baz danych (np. struktura projektu), ...
stosowany jako prototypowy zestaw mikroprocesorowy
zaprojektowane do optymalizacji procesu tworzenia, modyfikowania
posiada minimalną liczbę wyprowadzeń / interfejsów lub ich brak
oprogramowania, programowania urządzenia docelowego (mikrokontrolera)
umożliwia zaprogramowanie i testowanie mikrokontrolera za
rozwiązania komercyjne (np. MDK-ARM) lub otwarte (np. GCC / GNU
pośrednictwem specjalizowanego portu szeregowego (Single/Serial Wire
system developed to be 100% free software)
Debug)
1
http://en.wikipedia.org/wiki/Embedded_system
http://pl.wikipedia.org/wiki/System_wbudowany
Dobry mikrokontroler to ... [1#2]
Embedded system
Jakie znam języki programowania, jakie mam doświadczenia i jaki język
System wbudowany
chciałbym stosować przy programowaniu systemów embedded ?
Najczęściej wybór pada na język C
to system komputerowy (mikroprocesorowy) z dedykowanymi funkcjami,
część większego systemu mechanicznego lub elektrycznego,
Które procesory są najłatwiejsze do poznania ?
zaprogramowany do wykonywania ograniczonej ilości zadań lub tylko jednego
Najczęściej wymienia się: C51, PIC, AVR itp.
zadania
Które istniejące zestawy mikroprocesorowe są najkorzystniejsze ?
zawiera oprogramowanie dedykowane jednemu zadaniu lub (często
Arduino + Arduino IDE / Atmel AVR + AVR Studio 4 / Freescale HCS12 or
uproszczony) system operacyjny ze specjalizowanymi funkcjami
Coldfire + CodeWarrior / Microchip PIC+ MPLAB / ARM Cortex-M3 + ARM
zaletami są: niski pobór mocy, małe rozmiary, niskie koszty jednostkowe, RealView / ??????????
odporność na zakłócenia, znaczna liczba sprzętowych kontrolerów interfejsów
Jakie jest wsparcie programistyczne (IDE) i ewaluacyjne, biblioteki
komunikacyjnych, łatwa współpraca z różnorodnymi czujnikami (sensorami)
programów oraz literatura ?
wadą jest znacznie wyższy koszt opracowania, napisania i przetestowania
Jaka jest stabilność produkcji, liczba producentów rodziny procesorów,
oprogramowania sterującego systemem
poziom kosztów ?
przykłady: urządzenia przenośne (zegarki, odtwarzacze MP3, automaty do
gier, telewizory, ..), pogodowe sterowniki ogrzewania, pralki, lodówki, kuchenki, Które rozwiązania (architektury) są najbardziej perspektywiczne ?
sterowniki pojazdów hybrydowych, sygnalizacja świetlna, avionika, .. Cortex-Mx.
Dobry mikrokontroler to ... [2#2]
Procesor vs Rdzeń (Core)
Równie ważne cechy:
szeroka gama układów peryferyjnych, Crossbar- Peripherals Architecture
nietypowe rozwiązania, np. zwiększona wydajność portów do sterowania
wskazników 7-segmentowych, krótki czas dostępu do tych układów
System
System
Rozwijane przez
wysoka częstotliwość taktowania, niski pobór energii, tryby redukcji mocy testujący
Rdzeń
producenta rdzenia
(Debug
(Core)
szeroki zakres napięć zasilania i temperatur pracy
(licencjonodawcę)
System)
różnorodność obudów, w zależności od stopnia komplikacji układów
peryferyjnych,
Wewnętrzna magistrala (Internal Bus)
właściwa długość słowa (zapis całkowitoliczbowy / zmiennoprzecinkowy)
Rozwijane przez
typy wykonywanych operacji: bajtowe, słowowe, bitowe
Peripherals
Pamięć producentów
&
System
efektywność, wydajność pracy, przetwarzanie potokowe, struktura RISC
(Memory) układów scalonych
I/O
wsparcie dla wyjątków, wielowątkowości, bankowanie rejestrów (chipów)
wsparcie do aplikacji systemu operacyjnego, współpraca z zewnętrznymi
pamięciami ...
MSP430FR57xx, MSP430FR58xx, MSP430FR59xx,
MSP430FR68xx, and MSP430FR69xx Bootstrap Loader.
User's Guide. TI, SLAU550C December 2013 Revised January 2015
Procesor vs Rdzeń (Core) MSP430FRxxxx
Features
Cortex-M0/M0+
16-Bit RISC Architecture up to 16-MHz Clock
Cortex-M0/M0+ Components
Execution Trace Interface
Wide Supply Voltage Range (1.8 V to 3.6 V)
Number of breakpoint
Cortex-M0/M0+ Core
comparators: 0 .. 4 Optimized Ultra-Low-Power Modes:
Interrupts (NMI)
Nested
Breakpoint Active Mode: Approximately 100 A/MHz .. Shutdown: 0.02 A
Cortex-M0
1 .. 32 ext. inputs Vectored
&
Cortex-M0+
(Typical)
Interrupt
Watchpoint
processor
Controller
Real-Time Clock (RTC): 0.35 A (Typical)
Units
core
(NVIC)
Number of watchpoint
4 priority Ultra-Low-Power Ferroelectric RAM (FRAM):
comparators: 0 .. 2
levels
Fast Write at 125 ns per Word (64KB in 4 ms)
Optional
Optional
Optional
Unified Memory = Program + Data + Storage in One Single Space
Debug
Wakeup Debugger
Memory
Access
Interrupt interface 1015 Write Cycle Endurance
Protection Unit
Port
Controller
(MPU)
Radiation Resistant and Nonmagnetic
(DAP)
(WIC) System timer
32-Bit Hardware Multiplier (MPY)
(24-bit
SysTick Timer)
RTC With Calendar and Alarm Functions
Bus matrix
Fast or small
Five 16-Bit Timers With up to Seven Capture/Compare Registers Each
Multiplier
16-Channel Analog Comparator
Cortex"!-M0 Technical Reference Manual.
Rev. r0p0. ARM DDI 0432C, p.2-2 AHB-Lite Optional Optional 12-Bit Analog-to-Digital Converter (ADC) With Internal Reference and
interface single cycle Serial-Wire or
Cortex"!-M0+ Technical Reference Manual.
Sample-and-Hold and up to 16 External Input Channels
to system I/O port JTAG debug port
Rev. r0p1. ARM DDI 0484C, p.2-2
Integrated LCD Driver With Contrast Control for up to 320 Segments
2
MSP430FR57xx, MSP430FR58xx, MSP430FR59xx, MSP430FR57xx, MSP430FR58xx, MSP430FR59xx,
MSP430FR68xx, and MSP430FR69xx Bootstrap Loader. MSP430FR68xx, and MSP430FR69xx Bootstrap Loader.
User's Guide. TI, SLAU550C December 2013 Revised January 2015 User's Guide. TI, SLAU550C December 2013 Revised January 2015
Access
Memory Data Memory Address
only Word for CODE
von-NEUMANN Architecture
MSP430
Word/Byte for Data Bus (MDB) Bus (MAB)
CPU Architecture
Bytes are located at even or odd Flash/ROM Word/Byte
Memory Address Register (MA)
10000h
addresses
Interrupt
Word/Byte
Vector Table
Words are only located at even 0FFE0h Register R0 (PC)
addresses Instruction
Fetch
Increment logic
Low byte of a word is always an Word/Byte
Flash/ROM
Register
even address
Register R1 (SP)
The end address of RAM
BootLoader
depends on the amount of RAM Register R2 (SR/CG1)
0C00h
present and varies by device.
Reserved
Register R3 (CG2)
RAM can be used for both code
RAM
Word/Byte Register R4
and data.
200h
...........
Temp
16-Bit
only Word
Peripheral Modules
Register
Register R15
100h
16-bit
the same
8-Bit
Addr NOT
program and data Peripheral
only Byte
Modules C (Carry)
bus for code 10h memory
CPU
Z (Zero)
Cin
Special
memory, data ALU + Shifter
access
Data
only Byte N (Negative)
Function
memory and SFR
Registers V (oVerflow)
16-bit
0
MSP430x4xx Family User s Guide. MSP430x4xx Family User s Guide.
Texas Instruments, SLAU056G, 2007, p.4-9 Texas Instruments, SLAU056G, 2007, p.4-61 ...
MSP430 MSP430
Status Register Constant Generator
R2 - Status Register SR / Constant Generator CG1 (+4, +8)
R3 - Constant Generator CG2 (0, +1, +2, 1 a" FFh, FFFFh):
a"
a"
a"
R0 - Program Counter PC
R1 - Stack Pointer SP CLR* Clear destination: MOV #0, dst ; 0 dst *): MOV #0, dst
R2 - Status Register SR / Constant Generator CG1 (+4, +8) CLRC* Clear Carry bit: BIC #1, SR ; 0 C *): BIC #1, SR
CLRZ* Clear Zero bit: BIC #2, SR ; 0 Z *): BIC #2, SR
SCG SCG OSC CPU
RESERVED V GIE N Z C
1 0 Off Off
SETN* Clear Negative bit: BIS #4, SR ; 1 N *): BIS #4, SR
most used constant: +8 +4 +2 +1
EINT* Disable general BIS #8, SR ; 1 GIE *): BIS #8, SR
interrupts:
R3 - Constant Generator CG2 (0, +1, +2, -1)
-
-
-
INV* Invert destination: INV.W dst ; *): XOR #0FFFFh, dst
R4 .. R15 - User working Registers
*) Emulation
Joseph Yiu (Senior Embedded Technology Specialist, ARM):
Which Cortex-M ? A Selection Guide.
Cortex-M Instruction Set
VABS VADD VCMP VCMPE VCVT VCVTR VDIV VLDM
C or ASM (1/6)
VLDR VMLA VMLS VMOV VMRS VMSR VMUL VNEG
Floating Point
VNMLA VMMLS VNMUL VPOP VPUSH VSQRT VSTM VSTR
VSUB VFMA VFMS VFNMA VFNMS
Cortex-M4 FPU
PKH QADD QADD16 QADD8 QASX QDADD QDSUB QSAX
DSP (SIMD, fast MAC)
QSUB QSUB16 QSUB8 SADD16 SADD8 SASX SEL SHADD16
SHADD8 SHASX SHSAX SHSUB16 SHSUB8 SMLABB SMLABT SMLATB
SMLATT SMLAD SMLALBB SMLALBT SMLALTB SMLALTT SMLALD SMLAWB
C instruction:
SMLAWT SMLSD SMLSLD SMMLA SMMLS SMMUL SMUAD SMULBB
ADC ADD ADR AND ASR B SMULBT SMULWT a = b + c ;
CLZ BFC BFI BIC CDP CLREX SMULTB SMULWT
CBNZ CBZ CMN CMP DBG EOR LDC SMULWB SMUSD
LDMIA LDMDB LDR LDRB LDRBT LDRD SSAT16 SSAX
Compiled ARM instruction:
LDREX LDREXB LDREXH LDRH LDRHT LDRSB SSUB16 SSUB8
Advanced data processing
LDRSBT LDRSHT LDRSH LDRT MCR LSL SXTAB SXTAB16
ADD R1, R2, R3
Architecture Bit field manipulations
LSR MCRR MLS MLA MOV MOVT SXTAH SXTB16
ARMv7-M UADD16 UADD8
MRC MRRC MUL MVN NOP ORN
UASX UHADD16
ORR PLD PLDW PLI POP PUSH
RBIT REV REV16 REVSH ROR RRX UHADD8 UHASX
ADD R1, R2, R3
RSB SBC BSBFX UHSAX UHSUB16
BKPT BLX ADC ADD ADR
SDIV SEV SMLAL UHSUB8 UMAAL
BX CPS AND ASR B
SMULL SSAT STC
DMB BL BIC UQADD16 UQADD8
DSB CMN CMP EOR STMIA STMDB STR UQASX UQSAX
ISB LDR LDRB LDM
General data processing STRB STRBT STRD UQSUB16 UQSUB8
ADD {cond} {S} Rd, Rn,
MRS LDRH LDRSB LDRSH
STREX STREXB STREXH USAD8 USADA8
I/O control tasks
Architecture MSR LSL LSR MOV
STRH STRHT STRT USAT16 USAX
NOP REV MUL MOVN ORR
R1 = R2 + R3
ARMv6-M TBB TBH TEQ USUB16 USUB8
REV16 REVSH POP PUSH ROR
TST UBFX UDIV UXTAB UXTAB16
SEV SXTB RSB SBC STM R3
UMLAL UMULL USAT UXTAH UXTB16
SXTH UXTB STR STRB STRH
UXTH WFE SUB SVC TST UXTB UXTH WFE
Cortex-M4
WFI YIELD WFI YIELD IT
Cortex-M0/M0+/M1
Cortex-M3
3
Sequencer
C or ASM (3/6)
C or ASM (2/6)
C instruction:
if (Z == 1) R1 = R2 + ( R3 " 4)
C instruction: a = 8 " b
Compiled ARM instruction:
Compiled ARM instruction:
ADDEQS R1, R2, R3, LSL #2
MOV R1, R0, LSL #3 ; R1 ! R0 " 8
ADDEQS R1, R2, R3, LSL #2
MOV R1, R0, LSL #3
ADD {cond} {S} Rd, Rn,
R1 = R2 + R3 SHL 2
MOV {cond} {S} Rd, Rn,
Z=1 "! (Equal) EQ
R1 = R0 " 8
"
"
"
sets condition flags after instruction "! S
Logical Left Shift
Rm LSL #5bit_Imm "!
0 Multiplication
CF Destination
by a power of 2
Logical Shift Left
C or ASM (4/6) C or ASM (5/6)
C instruction: C instruction:
a = a " (2n + 1)
a = 100 " a + b
Compiled ARM instruction:
Compiled ARM instruction:
ADD R0, R0, R0, LSL #n ; R0 ! R0 + (R0 << n)
ADD R0, R0, R0, LSL #2 ; R0 = R0 " 5
ADD R0, R0, R0, LSL #2 ; R0 = R0 " 5
; R0 = R0 " 25
C instruction:
ADD R0, R1, R0, LSL #2 ; R0 = R1 + R0 " 4
a = a " (2n 1)
; R0 = R1 + (R0 " 25) " 4
Compiled ARM instruction:
MLA (Multiply Accumulate):
RSB R0, R0, LSL #n ; R0 ! (R0 << n) R0
MLA R0, R2, R1, R0 ; R0 ! R2 " R1 + R0
UM10398. LPC111x/LPC11Cxx User manual.
NXP, Rev. 12.3 10 June 2014, fig. 7
Architektura von-NEUMANN a
C or ASM (6/6)
Cortex-M0 [NXP LPC1114]
0xFFFF FFFF
4 GB
Zarezerwowane (Reserved)
0xE010 0000
Rdzeń (core): NVIC, SysTick,
C instruction:
Własna magistrala peryferii
System Control Block;
(PPB Private Peripheral Bus)
0xE000 0000
(only word)
if (a == 0) {
Zarezerwowane (Reserved)
0x5020 0000
b = 23 ;
Peryferia typu AHB
GPIO PIO3..PIO0
a in R0
(AHB Peripherals)
0x5000 0000
} else {
AHB Advanced High-performance Bus
b in R1
Zarezerwowane (Reserved) 0x4008 0000
APB Advanced Peripheral Bus
b = 42 ;
Peryferia typu APB
c in R2
pozostałe peryferia
c = a ;
(APB Peripherals) 0x4000 0000
1 GB
}
Zarezerwowane (Reserved)
0x1FFF 4000
32-bity 16KB BootLoader
0x1FFF 0000
Addr Zarezerwowane (Reserved) 0x1000 2000
Compiled ARM instruction:
Pamięć danych
CPU
(Data Memory 8KBMAX SRAM)
TEQ R0, #0 ; compare, set or reset Z flag
0x1000 0000
MOVEQ R1, #23 ; if Z=1 then R1 ! 23 Data Zarezerwowane (Reserved)
0x0001 0000
MOVNE R1, #42 ; if Z=0 then R1 ! 42 Pamięć programu
32-bity
(Program Memory
MOVNE R2, R0 ; if Z=0 then R2 ! R0
32KBMAX on-chip Flash)
0x0000 0000
4
ARMv6-M Architecture Reference Manual.
J. Yiu: The Definitive Guide to the ARM Cortex-M0.
Elsevier Inc. 2011, Fig. 3.1 ARM DDI 0419C, September 2010
ARMv7-M Architecture Reference Manual.
ARM DDI 0403D, Errata 2010_Q3
Cortex M0 / Cortex-M0+ (ARMv6M) Cortex M
tryby i stany procesora (Processor Modes and States) Rejestry ogólnego przeznaczenia
Procesor Cortex-M0/M0+
dostępne przez wszystkie 16-bitowe
R0
pracuje w:
instrukcje Thumb i wszystkie 32-bitowe
Thumb State R1
2 trybach (modes)
R2
instrukcje Thumb-2
Low
Exception
i 2 stanach (states) R3
Register
Handler Mode
Request
R4
rejestry ogólnego
Executing exception
R5
Debug State
handler przeznaczenia
R6
Debug
(wstrzymanie
R7
activities
wykonywania
dostępne przez wszystkie instrukcje Thumb-2
instrukcji) R8
Thread Mode
Start
ale nie wszystkie 16-bitowe instrukcje Thumb
R9
Executing normal
(reset)
stan Debug możliwy po
High
Exception R10
code
Rejestry specjalne
uruchomieniu debuggera
Register
return R11
R12
Program status
xPSR
register
praca standardowa (normal operation)
Stack
procesor wykonuje instrukcje Thumb R13 (MSP) R13 (PSP)
Pointer (SP)
PRIMASK Interrupt
mask
FAULTMASK
R14
Link Register (LR)
registers
BASEPRI
Procesory z architekturą ARMv6-M pracują wyłącznie w trybie
PC Program Counter (PC)
[DDI0419C, A2.1.1]
uprzywilejowanym (only privileged operation)
Control register
CONTROL
ARMv6-M Architecture Reference Manual.
ARMv6-M Architecture Reference Manual.
ARM DDI 0419C, September 2010 ARM DDI 0419C, September 2010, B1.4
ARMv7-M Architecture Reference Manual.
ARM DDI 0403D, Errata 2010_Q3
Cortex M0 / M0+ / M3 Cortex M0 / Cortex M0+
Wskazniki stosu (Stack Pointer Registers) Rejestry statusowe (Program Status Registers)
R0
Program Status Registers (xPSR)
R1
R2
Low
R3 rejestry ogólnego
5 0
Register
31 28 24
R4
przeznaczenia
Exception
R5
xPSR N Z C V Res T Reserved
(General Number
R6
2 najmniej znaczące bity wskazników
Purpose
R7
ARM Core
stosu (stack pointers) mają zawsze
R8
Register)
R9 wartość 0 wyrównanie słowowe
High
R10
Register
(always word aligned)
R11
R12
Main Stack Register 31 28 24 5 0
(SP_main after Reset)
MSP
APSR N Z C V Reserved
R13 (MSP) R13 (PSP) Stack Pointer (SP)
PSP Process Stack Register 0 or
(SP_process) IPSR Reserved Exception
R14 Number
Link Register (LR)
Program Counter (PC)
PC
EPSR Reserved T Reserved
ARMv6-M Architecture Reference Manual. Cortex"!-M0 Devices. Generic User Guide
ARM DDI 0419C, September 2010, B1.4
ARM DUI0497A, October 2009
Cortex M0 / Cortex M0+
Cortex M0 / Cortex M0+
Rejestr przerwań (Interrupt Program Status Register)
Rejestr aplikacji (Application Program Status Register)
Exception mumber:
kontroler przerwań (ARMv6-M NVIC)
0 = Initial SP value
obsługuje do 16 zródeł przerwań
1 = Reset
Application Program Status Registers (xPSR)
Program Status Registers (xPSR)
2 = NMI
Program Status Register
3 = HardFault
31 28 24 5 0
(APSR): 31 28 24 5 0
4...
APSR N Z C V Reserved = zarezerwowane
APSR N Z C V Reserved
...10
zawiera znaczniki (flags) 0 or
0 or
IPSR Reserved Exception
11 = SVCall
Reserved Exception
IPSR
(Negative, Zero,
Number
Number
11...
Carry/borrow, oVerflow)
= zarezerwowane
EPSR Reserved T Reserved
...13 EPSR Reserved T Reserved
rejestr APSR dostępny 14 = PendSV
przez instrukcje MSR lub MRS (także w trybie nieuprzywilejowanym): 15 = SysTick (zarezerwowane jeśli brak SysTick Timer a)
MSR (MSR{cond} spec_reg, Rn) ; APSR ! Rn
16 = IRQ0
MRS (MRS{cond} Rd, spec_reg) ; Rn ! APSR
...
max 32 przerwania (Interrupts)
n+15 = IRQ(n-1)
Niekreślony stan znaczników po resecie
n+16...
= zarezerwowane
...63
5
nieokre
ś
lony stan
rejestrów po resecie
ARMv6-M Architecture Reference Manual.
Keil Vision IDE
ARM DDI 0419C, September 2010, B1.4
Cortex M0 / Cortex M0+
Pętla FOR
Rejestr wykonania (Execution Program Status Register)
deklaracja zmiennej k [1#2]
Execution Program Status Register
Program Status Registers (xPSR) void Opoznienie(unsigned int czas_ms) {
(EPSR):
31 28 24 5 0
bit-T (bit stanu) identyfikuje
unsigned int k; // deklaracja 32-bitowej zmiennej
stan Thumb procesora: APSR N Z C V Reserved
0 or
for (k = 0; k < czas_ms " 6000; k++); // pojedynczy obieg pętli trwa 1
bit-T nie może być Reserved Exception
IPSR
Number ms
odczytywany przez
}
oprogramowania; EPSR Reserved T Reserved
; r0 ! czas_ms
bit-T dostępny w trybie debug) 0x00000278 2100 MOVS r1, #0x00 ; r1 ! k = 0
0x0000027A E000 B 0x0000027E ; skok do 0x027E
Bit-T = 1; procesor Cortex-M0/M0+ (architektura ARMv6-M) pracuje
0x0000027C 1C49 ADDS r1, r1, #1 ; r1 ! r1 + 1 (k++)
wyłącznie z instrukcjami Thumb
0x0000027E 4A10 LDR r2, [pc, #64] ; r2 ! 6000 = 0x1770
Bit-T = 0 generuje HardFault; (wskazanie na próbę wykonania instrukcji 0x00000280 4342 MULS r2, r0, r2 ; r2 ! czas_ms " 6000
innej niż typu THUMB 0x00000282 428A CMP r2, r1 ; porównanie r2 oraz r1
0x00000284 D8FA BHI 0x0000027C ; jeśli r1 < r2 to skok do 0x027C
Pozostałe bity są zarezerwowane.
unsigned int k; // deklaracja 32-bitowej zmiennej
void Opoznienie(unsigned int czas_ms) {
Pętla FOR
for (k = 0; k < czas_ms " 6000; k++); // pojedynczy obieg pętli trwa 1 ms
Problemy i pytania
}
deklaracja zmiennej k [2#2]
; r0 ! czas_ms
0x00000278 2100 MOVS r1, #0x00 ; r1 ! 0
0x0000027A 4A15 LDR r2, [pc, #84]
1. Co to jest mapa pamięci (memory map) ?
; r2 ! 0x1000000C (adres w zmiennej k w RAM)
2. Jakie elementy tworzą mapę pamięci ?
0x0000027C 6011 STR r1, [r2, #0x00] ; (r2) ! r1 (zapis k do RAM)
3. Jaką funkcję pełnią rejestry R0 i R1 w procesorze MSP430 ?
0x0000027E E004 B 0x0000028A ; skok do 0x028A
0x00000280 4913 LDR r1, [pc, #76] ; r1 ! 0x1000000C 4. Jaką funkcję pełnią rejestry R2 i R3 w procesorze MSP430 ?
0x00000282 6809 LDR r1, [r1, #0x00] ; r1 ! (r1) czyli wartość k
5. Podać przykłady instrukcji emulowanych w procesorze MSP430.
0x00000284 1C49 ADDS r1, r1, #1 ; r1 ! r1 + 1 (k++)
6. Jaki obszar pamięci przyporządkowano układom peryferyjnym w LPC1114 ?
0x00000286 4A12 LDR r2, [pc, #72] ; r2 ! 0x1000000C
7. Jaką rolę pełnią rejestry R0 .. R12 w procesorach ARM Cortex-M0/M0+ ?
0x00000288 6011 STR r1, [r2, #0x00] ; (r2) ! r1
8. Jaką rolę pełnią rejestry R13 i R14 w procesorach Cortex-M0/M0+ ?
0x0000028A 4912 LDR r1, [pc, #72] ; r1 ! 6000 = 0x1770
0x0000028C 4341 MULS r1, r0, r1 ; r1 ! czas_ms " 6000 9. Jaką rolę pełni rejestr R15 w procesorach Cortex-M0/M0+ ?
0x0000028E 4A10 LDR r2, [pc, #64] ; r2 ! 0x1000000C
10. Jaką rolę pełni rejestr xPSR w procesorach Cortex-M0/M0+ ?
0x00000290 6812 LDR r2, [r2, #0x00] ; r2 ! (r2) czyli wartość k
11. Jakie jest przeznaczenie Development Kit ?
0x00000292 4291 CMP r1, r2 ; porównanie r2 oraz r1
0x00000294 D8F4 BHI 0x00000280 ; jeśli r1 < r2 to skok do 0x0280
6
Wyszukiwarka
Podobne podstrony:
2 Architektura 15 www
7 Stos 15 www
4 Typy instrukcji Tryby?resowania 15 www (1)
3 Przetw?nych Typy proces 15 www (1)
12 DMA 15 www
13 Power 15 www
8 Przerwania 15 www
6 Pamieci ROM RAM 15 www
9 Liczniki 15 www
Ust z dn 15 12 2000 O samorządach zawodowych architektów, inżynierów budownicwa oraz urbanistów
www livemocha com angielski lekcja audio
15 3
więcej podobnych podstron