MSP430X

background image

MSP430X

background image

Godziny kontaktowe:

wt. 13 - 15

śr. 11 - 13

slau056g.pdf

slac050q.zip

background image

MSP430X zawiera elementy specjalnie przeznaczone do nowoczesnych

technik programowania takich jak wyliczane rozkazy skoków i rozgałęzień,

przetwarzanie tablicowe. Jest przystosowany do wykorzystania języków

wysokiego poziomu takich jak C.

MSP430X może bezpośrednio adresować do 1 MB pamięci bez

stronicowania. W porównaniu do MSP430 – MSP430X ma kilka przerwań o

mniejszej liczbie cykli, program może być większy objętościowo. MSP430X

jest w pełni kompatybilny z poprzednimi mikrokontrolerami.

background image

Właściwości CPU mikrokontrolerów MSP430X:

- architektura RISC

- architektura ortogonalna

- pełny dostęp do rejestrów w tym do licznika rozkazów (PC), rejestru

statusowego (SR)

i rejestru stosu (SP)

- jednocyklowe operacje na rejestrach

- duża liczba rejestrów zmniejszająca liczbę odwołań do pamięci

- 20-bitowa magistrala adresowa umożliwiająca bezpośredni dostęp do

całego obszaru pamięci bez stronicowania.

- 16-bitowa magistrala danych pozwalająca na bezpośrednie

operowanie na argumentach typu słowo.

- generator 6 najczęściej używanych stałych

- bezpośrednie przesyłanie danych pomiędzy pamięcią bez używania

rejestrów

pośredniczących.

- adresowanie bajtu, słowa, i 20 bitowego słowa adresowego.

background image

background image

background image

Wektory przerwań zawierają 16-bitowe adresy wskazujące na niższą 64
KB pamięć. Oznacza to, że wszystkie programy obsługi przerwań muszą
się zaczynać w tym obszarze pamięci.
Podczas przerwań licznik rozkazów i rejestr statusowy są chowane na
stos tak jak na poniższym rysunku:

Gdy jest wykonywana instrukcja RETI odtwarzana jest pełna 20
bitowa zawartość licznika rozkazów. Umożliwia to powrót do
dowolnego miejsca w obszarze pamięci programu.

background image

Licznik programu

PC może być adresowany każdą instrukcją i każdym trybem
adresowania:
MOV.W #LABEL,PC ;

skok do etykiety LABEL (dolny obszar

pamięci 64 KB)
MOVA #LABEL,PC ;

skok do etykiety LABEL (pamięć 1MB)

MOV.W LABEL,PC ; skok do adresu wskazanego w słowie LABEL ;
(64 KB)
MOV.W @R14,PC ; skok pośredni do adresu w R14 (dolny obszar
pamięci 64 KB)
ADDA #4,PC ;

przesunięcie o 2 słowa (1 MB memory)

Instrukcje BR i CALL zerują 4 najbardziej znaczące bity licznika
rozkazów. Stąd odnoszą się one tylko do dolnych 64 KB pamięci. Do
górnej części pamięci należy używać tylko rozkazów BRA i CALLA.
Rozkaz CALL chowa na stos 16 bitów PC, A rozkaz CALLA pełne 20
bitów

Rozkaz RET odtwarza 16 bitów, rozkaz RETA – 20 bitów

background image

Rejestr stosu (SP)
Rejestr stosu jest 20 bitowym rejestrem używanym do przechowywania
adresów powrotu z podprogramów lub programów obsługi przerwań.
Rejestr stosu można stosować wszystkie instrukcje i sposoby
adresowania.

PUSHX.A

background image

Rejestr Statusowy (SR)

background image

CLR dst

> MOV R3,dst

INC dst > ADD 0(R3),dst

background image

Rejestry ogólnego przeznaczenia R4 to R15

Operacje 8
bitowe

background image

Operacje 16
bitowe

background image

20 bitowe operacje
adresowe

background image

MSP430 i MSP430X instrukcje

Instrukcje MSP430 są to instrukcje w liczbie 27 zaimplementowane w

jednostce centralnej MSP430. Instrukcje te mogą być używane w całym
zakresie 1 MB pamięci z wyjątkiem przypadków, gdy wymagany jest
zakres większy niż 16 bitów.

Instrukcje MSP430X są używane gdy adresowanie operandów lub

dane przekraczają zakres 16 bitowy.

Istnieją trzy możliwości wyboru między instrukcjami MSP430 a

MSP430X:

1. Używanie tylko instrukcji MSP430 z wyjątkiem CALLA i RETA. Może

być to realizowane przy spełnieniu poniższych reguł

- umieszczanie wszystkich danych, tablic itd. W dolnych 64 KB.

Wykorzystuje się wtedy tylko instrukcje MSP z 16 bitowym
adresowaniem danych.

- umieszczanie danych stałych podprogramów bezpośrednio za

podprogramem. Umożliwia to użycie adresowania symbolicznego z 16
bitowym indeksem do adresowania w zakresie +/- 32 KB.

2. Użycie tylko instrukcji MSP430X. Niedogodnościa tego sposobu jest

zmniejszenie prędkości działania programu związane z dodatkowymi
cyklami i zwiększenie objętości programu spowodowane koniecznością
rozszerzenia niektórych instrukcji o dodatkowe słowo.

3. Optymalne użycie obydwu typów instrukcji.

background image

ADDX.A

dodawanie dwóch adresów 20 bitowych

ADDX[.W]

dodawanie dwóch słów

ADDX.B

dodawanie dwóch bitów

Syntax ADDX.A src,dst

ADDX src,dst ADDX.W src,dst

ADDX.B src,dst

background image

// RAM memory.
//
-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,HEAP+_HEAP_SIZE=1100-
20FF
-Z(DATA)CSTACK+_STACK_SIZE#
// ---------------------------------------------------------
// Read only memory.
//
// Information memory (FLASH)
// -------------------------------------------------------------------
-Z(CODE)INFO=1000-10FF
-Z(CODE)INFOA=1080-10FF
-Z(CODE)INFOB=1000-107F
// -----------------------------------------------
// Constant data.
-Z(CONST)DATA16_C,DATA16_ID,DIFUNCT=2100-FFBE
// -----------------------------------------------
// Code.
-Z(CODE)CSTART,ISR_CODE,IVCODE=2100-FFBE
-P(CODE)CODE=2100-FFBE,10000-1FFFF
// -----------------------------------------------
// Interrupt vector.
-Z(CODE)INTVEC=FFC0-FFFF
-Z(CODE)RESET=FFFE-FFFF

background image

Kompilator C lokuje programy obsługi przerwań w segmencie
ISR_CODE. Segment ten musi być utworzony w obszarze pamięci
poniżej 64 KB poprzez odpowiednią deklarację w pliku sterującym
linker. Jeżeli przerwanie wystąpi gdy program jest realizowany w
pamięci powyżej 64 KB to funkcja obsługi przerwania powinna zawierać
polecenie

--save_reg20

Odpowiednie polecenie w asemblerze ma postać

__save_reg20


Document Outline


Wyszukiwarka

Podobne podstrony:
3 LCD LCD MSP430 id 755238 Nieznany (2)
msp430f1122
msp430g2553
MSP430 2005www
MSP430 wprzykładach cz2
msp430f123
MSP430 wprzykładach cz3
msp430f149 (2)
msp430fg4618
msp430 opis p ytki
MSP430 wprzykładach cz1
msp430f133
MSP430 wprzykładach cz8
msp430f110
msp430f1101a
msp430f149
MSP430 wprzykładach cz6

więcej podobnych podstron