Elektronika: ‘Podstawy techniki mikroprocesorowej’ - laboratorium
oprac. A. St
ę
pie
ń
strona 1/3
Jak przenosi
ć
programy z LPCXpresso1114 do STM32L053 Discovery
LPCXpresso1114
struktura projektu (i katalogów)
w
ś
rodowisku
µ
Vision 4.7x
STM32L053 Discovery
struktura projektu (i katalogów)
w
ś
rodowisku
µ
Vision 5.xx
Komentarz
Device:
startup_LPC11xx.s
system_LPC11xx.c
Device:
startup_stm32l053xx.s
system_stm32l0xx.c
Ka
ż
dy moduł (mikrokontroler) ma własne pliki konfiguracyjne
Source:
7_main.c
Source:
7_main.c
- ten sam plik w obu rozwi
ą
zaniach, z takimi samymi nazwami funkcji i
procedur
- doł
ą
czane te same pliki nagłówkowe z katalogu Include, z wyj
ą
tkiem
pliku user_xxxx.h (
user_LPC1114.h
lub
user_STM32L053Disco.h
)
Library:
GPIO.c
Library:
GPIO.c
-
te same nazwy plików i te same zadeklarowane funkcje i procedury
,
-
zawarto
ść
plików dostosowana do cech ka
ż
dego z procesorów
,
- wszystkie deklaracje funkcji i procedur w plikach nagłówkowych
katalog Include:
GPIO.h
…………………
user_LPC1114.h
katalog Include:
GPIO.h
……………………………
user_STM32L053Disco.h
- w katalogu Include (zaznaczone w opcjach kompilatora C/C++) zawarte
wszystkie konfiguracyjne pliki nagłówkowe,
- te same nazwy plików nagłówkowych (np. GPIO.h) i bibliotecznych (np.
GPIO.c) ale pliki w ró
ż
nych katalogach,
- pliki user_xxxx.h zawieraj
ą
deklaracje stosowanych układów
peryferyjnych, np. numery portów, linii steruj
ą
cych diodami LED, linii
odczytuj
ą
cej stan klawisza, generowanych sygnałów PWM itp.
Stała
cz
ę
stotliwo
ść
taktowania
rdzenia mikrokontrolera
F
CORE
= 48 MHz
Zmienna
cz
ę
stotliwo
ść
taktowania
rdzenia mikrokontrolera
F
CORE
= zale
ż
na od aplikacji
W module STM32L053 Disco cz
ę
stotliwo
ść
taktowania rdzenia F
CORE
mo
ż
e by
ć
ró
ż
na, zale
ż
na od aplikacji, np. w projekcie nr 7 mikrokontroler
jest taktowany wewn
ę
trznym generatorem MSI (MultiSpeed Internal
oscillator) o cz
ę
stotliwo
ś
ci F
MSI
= 2,1 MHz (domy
ś
lna warto
ść
po stanie
RESET F
MSI
podzakres 5
= 2,097 MHz)
Elektronika: ‘Podstawy techniki mikroprocesorowej’ - laboratorium
oprac. A. St
ę
pie
ń
strona 2/3
Przykład sygnalizacji stanu przycisku/klawisza przez diod
ę
LED
LPCXpresso1114
struktura projektu (i katalogów)
w
ś
rodowisku
µ
Vision 4.7x
STM32L053 Discovery
struktura projektu (i katalogów)
w
ś
rodowisku
µ
Vision 5.xx
Komentarz
Device:
startup_LPC11xx.s
system_LPC11xx.c
Device:
startup_stm32l053xx.s
system_stm32l0xx.c
ka
ż
dy mikrokontroler (moduł) ma własne pliki konfiguracyjne
Source: Main.c
#include <
LPC11xx.h
>
#include "gpio.h"
#include "
user_LPC1114.h
"
Source: Main.c
#include <
stm32l0xx.h
>
#include "gpio.h"
#include "
user_STM32L053Disco.h
"
- ró
ż
ne pliki nagłówkowe dla obu procesorów:
LPC11xx.h
lub
STM32L0xx.h
-
przykład obu plików user_xxxxxx.h na stronie 3
int main (void) {
uint32_t stan_klawisza;
GPIOSetDir(PORT_LED, PIN_LED, PORT_MODE_OUT);
GPIOSetDir(PORT_KLAWISZ, PIN_KLAWISZ, PORT_MODE_IN);
GPIOSetValue(PORT_KLAWISZ, PIN_KLAWISZ, LED_ON);
while(1) {
stan_klawisza = GPIOReadValue(PORT_KLAWISZ, PIN_KLAWISZ);
if (stan_klawisza == KLAWISZ_OFF) {
GPIOSetValue(PORT_KLAWISZ, PIN_KLAWISZ, LED_OFF);
} else {
GPIOSetValue(PORT_KLAWISZ, PIN_KLAWISZ, LED_ON);
}
}
}
- ten sam plik w obu rozwi
ą
zaniach, z takimi samymi nazwami
funkcji i procedur (podprogramów)
- doł
ą
czane te same pliki nagłówkowe z katalogu Include, z
wyj
ą
tkiem pliku:
user_LPC1114.h
dla projektu z procesorem LPC1114
user_STM32L053Disco
dla modułu Discovery
- w pliku po lewej stronie pomini
ę
to wszystkie komentarze
Library:
GPIO.c
Library:
GPIO.c
- te same nazwy plików i te same zadeklarowane podprogramy,
-
zawarto
ść
plików dostosowana do ka
ż
dego procesora
,
- wszystkie deklaracje podprogramów w plikach nagłówkowych
Elektronika: ‘Podstawy techniki mikroprocesorowej’ - laboratorium
oprac. A. St
ę
pie
ń
strona 3/3
Przykład katalogu Include
LPCXpresso1114
struktura projektu (i katalogów)
w
ś
rodowisku
µ
Vision 4.7x
STM32L053 Discovery
struktura projektu (i katalogów)
w
ś
rodowisku
µ
Vision 5.xx
Komentarz
katalog Include:
GPIO.h
user_LPC1114.h
katalog Include:
GPIO.h
user_STM32L053Disco.h
- w katalogu Include (zaznaczone w opcjach kompilatora C/C++)
zawarte wszystkie konfiguracyjne pliki nagłówkowe
- te
same nazwy plików nagłówkowych
(np. GPIO.h) i
bibliotecznych
(np. GPIO.c) ale pliki w ró
ż
nych katalogach,
- pliki user_xxxx.h zawieraj
ą
deklaracje stosowanych układów
peryferyjnych, np. numery portów, linii steruj
ą
cych diodami LED,
linii odczytuj
ą
cej stan klawisza, generowanych sygnałów PWM
itp.
Przykład pliku
user_LPC1114.h
oraz
user_STM32L053Disco.h
user_LPC1114.h
user_STM32L053Disco.h
Komentarz
#define PORT_MODE_IN
0
#define PORT_MODE_OUT
1
#define PORT_KLAWISZ
0
#define PORT_LED
0
#define PIN_KLAWISZ
8
#define PIN_LED
7
#define KLAWISZ_OFF
1
#define KLAWISZ_ON
0
#define LED_OFF
0
#define LED_ON
1
#define PORT_MODE_IN
0
#define PORT_MODE_OUT 1
#define PORT_KLAWISZ
PortA
#define PORT_LED
PortA
#define PIN_KLAWISZ
0
#define PIN_LED
5
#define KLAWISZ_OFF
1
#define KLAWISZ_ON
0
#define LED_OFF
0
#define LED_ON
1
W module LPCXpresso1114:
- czerwona dioda LED (LED2) doł
ą
czona do linii PIO0_7,
- symulowany przycisk/klawisz doł
ą
czony do linii PIO0_8.
http://www.embeddedartists.com/products/lpcxpresso/
lpc1114_xpr.php
W module STM32L053 Discovery:
- czerwona dioda LED (LD4) doł
ą
czona do linii PA5,
- przycisk/klawisz (User Button B1) doł
ą
czony do linii PA0.
UM1775 User manual Discovery kit for STM32L0 series with
STM32L053C8 MCU. STMicroelectronics, June 2014