Download presentation
Presentation is loading. Please wait.
Published byMiguel Ángel Gómez Vidal Modified over 6 years ago
1
32-bitni mikrokontroleri i primena - MS1BMP
2017/2018 Nenad Jovičić Marija Janković
2
Organizacija kursa Predavači: Web: tnt.etf.rs/~ms1bmp
doc. Dr Nenad Jovičić As. Marija Janković Web: tnt.etf.rs/~ms1bmp Projekat 40% ocene Ispit (60% ocene): Demonstracija projekta Diskusija o projektu Teorijska diskusija
3
Timeline U ovom kursu ćemo se baviti kako praktičnom realizacijom projekata koji u sebi sadrže Cortex mikrokontroler, tako i specifičnim teorijskim aspektima ove tehnologije. Gruba struktur kursa: KEIL razvojno okruženje. Pisanje softvera po CMSIS standardu. Detaljno proučavanje hardverskih sklopova STM Cortex mikrokontrolera. Specifičnosti arhitekture Cortex mikrokontrolera. Napredne tehnike debagovanja Projektovanje softvera STM mikrokontrolera na bazi HAL drajvera Cortex u DSP aplikacijama
4
Projekat Implementacija jednostavnog hardversko-softverskog sistema/uređaja na Cortex-M3 , M4 ili M7 razvojnoj platformi. Projekat ne treba da bude obiman po broju korišćenih periferija, ali treba da bude detaljan u ispitivanju mogućnosti izabranih periferija. Ide se u dubinu a ne u širinu.
5
ST Nucleo F103 ARM®32-bit Cortex®-M3 CPU 72 MHz max CPU frequency
128 KB Flash 20 KB SRAM GPIO (51) with external interrupt capability 12-bit ADC (2) with 16 channels RTC Timers (4) I2C (2) USART (3) SPI (2) USB 2.0 full-speed CAN
6
ST Nucleo L476 ARM Cortex-M4 CPU with FPU at 80MHz 1 MB Flash
128 kB RAM 3× 12-bit ADC 5 MSPS 2x 12-bit DAC Up to 16 timers Up to 3x I2C, 6x USARTs, 4x SPIs, CAN USB OTG 2.0 full-speed
7
ST Nucleo F746 ARM® 32-bit Cortex®-M7 CPU with FPU 216MHz
1MB of Flash memory SRAM: 320KB 3×12-bit, 2.4 MSPS ADC: up to 24 channels and 7.2 MSPS in triple interleaved mode 2×12-bit D/A converters Up to 18 timers Up to 4x I2C, 8x USARTs, 6x SPIs, 2xCAN USB 2.0 full-speed device/host/OTG controller with on-chip PHY USB 2.0 high-speed/full-speed 10/100 Ethernet MAC with dedicated DMA ......
8
Projekat - rokovi Period 1 - Prikupljanje predloga projekata.
Faza 1 - Izveštaj 1. - Idejno rešenje. Period 2 – Definisanje spiska potrebnih komponenti. Faza 2 - Izveštaj 2. - Dizajn hardvera na nivou električne šeme, i dostavljanje spiska komponenti. Period 3 – Nabavka komponenti. Period 4 – Rad na prototipu. Faza 3 - Izveštaj 3. – Prototip hardvera i softvera. Minimalna konfiguracija koja potvrđuje izvodljivost projekta. Period 5 - Finalizacija projekta. Ispitni rok januar 2018 – Finalni izveštaj.
9
Projekti Primeri projekata na stranici:
10
Komponente Preferirani dobavljač modula je kompanija Mikroelektronika. . Najzgodnije za upotrebu su Click pločice. Moguća je u posebnim slučajevima i nabavka nekih specijalnih komponenti iz stranih kataloga, kao na primer iz .
11
Komponente Povezivanje može da bude izvedeno pomoću kratkospojnika, ali može da se realizuje i preko namenski napravljene/izlemljene matične ploče. Nabavka standardnih elektronskih/električnih komponenti se vrši u kelco-u ili mikroprincu. ,
12
Literatura - knjige The Designer's Guide to the Cortex-M Processor Family, Trevor Martin, Elsevier, 2013. ( tnt.etf.rs/~ms1bmp/BOOK1.pdf ) The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors, Joseph Yiu, Elsevier, 2013. ( tnt.etf.rs /~ms1bmp/BOOK2.pdf )
13
Literatura – ARM-ova dokumentacija
ARMv7-M Architecture Reference Manual (ARM DDI 0403) ARM Cortex-M3 Integration and Implementation Manual (ARM DII 0240) ARM AMBA® 3 AHB-Lite Protocol (v1.0) (ARM IHI 0033) ARM AMBA™ 3 APB Protocol Specification (ARM IHI 0024) AMBA® 3 ATB Protocol Specification (ARM IHI 0032) ARM CoreSight™ Components Technical Reference Manual (ARM DDI 0314) ARM Debug Interface v5 Architecture Specification (ARM IHI 0031) ARM Embedded Trace Macrocell Architecture Specification (ARM IHI 0014). IEEE Standard Test Access Port and Boundary-Scan Architecture (JTAG). ...
14
Sadržaj predavanja Alati za razvoj softvera za CortexM KEIL – MDK ARM
Instalacija Softverski paketi Prvi program (simulator) Konfiguracija projekta Debagovanje Prvi program (hardver)
15
Cortex-M razvoj softvera
Osnovna prednost je mnoštvo ranovrsnih softverskih alata, od onih koji su free do onih koji koštaju hiljade dolara. Striktno govoreći GCC nije okruženje već kompjaler koga u pozadini koriste mnogi proizvođači softvera.
16
KEIL Mi koristimo KEIL kompajler, jer nudi kompletnu podršku za Cortex-M mikrokontrolere. KEIL koristi ARM-ov C kompajler Poseduje i svoj Real-Time Operating System (RTOS) nazvan RTX Poseduje i svoju DSP biblioteku, takođe pisanu od strane ARM-a.
17
MDK-ARM MDK-ARM je sam po sebi tzv. core toolchain, što znači da nema u osnovi podršku za bilo koji konkretan mikrokontroler. Instalacijom takozvanih PACK-ova (paketa) dobija se podrška u vidu biblioteka i primera za pojedinačne mikrokontrolere ili čak i razvojne sisteme.
18
KEIL – softverski simulator
MDK ARM obezbeđuje i softverski simulator koji sadrži modele svakog Cortex-M procesora. Pored modela procesora, postoje i modeli periferijea određenog broja mikrokontrolera koji sadrže ove procesore. Time je podržano pokretanje i debagovanje većeg broja osnovnih primera bez konkretnog hardvera i hardverskog debagera. Omogućeno je pisanje i novih programa i testiranje pomoću simulatora.
19
Instalacija Download-ovati eval verziju koja podržava 32k koda sa Intalirati MDK ARM i pokrenuti instalaciju pack-ova
20
Potrebni paketi Devices tab -> STMicroelectronics -> STM32F1 Series Pack tab -> Device Specific -> Keil::STM32F1xx_DFP Update ili install : Pack tab -> Generic -> ARM::CMSIS ARM::CMSIS-Driver_Validation Keil::ARM_Compiler Example paketi: dupli klik na oba .pack fajla
21
Tutorial Examples Pack
22
Kreiranje prvog projekta
Koristimo fajlove iz Primera 2.2 – iskopirati fajlove u odgovarajući folder (odčekirati Use Pack Folder Structure) Project -> close project
23
Mikrokontroler STM32F103RB/
Opis prvog projekta Blinky projekat – Očitavanje analognog ulaza ADC_IN14 paljenje i gašenje dioda na svakih 50ms Mikrokontroler STM32F103RB/ MCBSTM32E LE diode sa GPIO B porta Napon sa ADC_IN14
24
Prvi projekat Project -> New uVision Project
Sačuvati u folderu u kome je i Blinky projekat.
25
Izbor uređaja Nakon toga se bira ili generičko jezgro ili konkretni mikrokontroler. Biramo STM32F103RB Izborom uređaja se konfiguriše projekat: compiler options linker script file simulation model debugger connection Flash programming algorithms.
26
“Run-Time Environment” (RTE) Manager
Uključivanje delova sotverskih paketa (prethodno instaliranih kroz Packet manager) koji su potrebni za aktivaciju i korišćenje procesora i željenih periferija ploče. Bira se minimalni set komponenti koji su potrebne za uspešno izvršavanje konkretnog projekta (analogno #include opciji)
27
RTE Biramo ponuđenu podršku za ploču, ali i osnovnu podršku za CPU i startup fajl CMSIS – Core Device – Startup Koristimo i odgovarajuće periferije ADC i LED, a podrška za njih se uključuje kroz softversku podršku evaluacione ploče (u našem slučaju Keil MCBSTM32E) Board Support – A/D Converter Board Support – LED Narandžasto ukazuje da je potrebna podrška, obično nekih low-level funkcija. U ovom primeru onih iz Device modula.
29
startup_stm32f10x_md.s This module performs:
Set the initial SP Set the initial PC == Reset_Handler Set the vector table entries with the exceptions ISR address Configure the clock system Branches to __main in the C library (which eventually calls main()). After Reset the CortexM3 processor is in Thread mode, priority is Privileged, and the Stack is set to Main.
30
Promenom veličine u Configuration Wizard-u menja se i vrednost u startup fajlu.
31
Dodavanje postojećeg source fajla
desni klik Source Group -> Add Existing -> Blinky.c Blinky.c ukazuje koji include fajlovi su mu potrebni
32
Potpun projekat – build it!
F7
33
Debug Učitali smo i build-ovali projekat, sada želimo da ga debagujemo – postavlja se pitanje da li debagger očekuje hardversku podršku ili se poziva simulator? Project -> Options for Target 1
34
Debug
35
Dbg_Sim.ini Skripta modeluje ponašanje eksternog hardvera.
Svi simulirani pinovi mikrokontrolera se pojavljuju kao virtuelni registri iz kojih može da se čita, ali i u koje skripte može da upiše. Skripta generiše simuliranu rampu na kanalu 14 ADC1
36
Debug – analogni ulaz u simulaciji?
37
Debugging – pre nego što počnemo
Kreirali smo projekat za mikrokontroler STM32F103RB Kroz RTE smo uključili softverske komponente za CMIS Core, Device Startup i potrebne periferije (ADC, LED, GPIO) Dodali smo main funkciju koja ima željenu funkcionalnost – Bliky.c Postavili smo projekat u simulacioni režim Definisali drajvere za konkretnu ploču Definisali skriptu za ulazne podatke
38
Ctrl F5 – Start Debug Session
uVision se povezuje sa simulacionim modelom i projekat se „spušta“ u simuliranu memoriju mikrokontrolera. Kada se load-uje program, mikrokontroler se resetuje i izvršavaju se instrukcije dok se ne stigne do main() funkcije. Time se započinje debagovanje.
39
μVision debugger je podeljen u više prozora koji omogućavaju analizu i kontrolu izvršavanja koda.
40
Dissasembly
41
Kontrola izvršavanja Breakpoint
42
Praćenje vrednosti Memory Register window Promenljive
Watch Logic Trace Periferijski registri Peripherals -> periph_name
43
Watch
44
Logic Trace – Logic Analyzer
45
Vrednosti registara periferija
GPIOB Probajte da upisete nesto?
46
Praćenje izvršavanja instrukcija - TRACE
View->Trace->Enable Trace Recording View->Trace->Trace Data Stop the execution to show the instructions
47
Šta znamo do sada Sadržaj svih registara, promenljivih, registara periferija Sadržaj memorije Možemo da prikazujemo vrednosti promeljivih pomoću Logic Analyzer-a Imamo uvid u svaku izvršenu instrukciju Možemo da prekinemo izvršavanje i očitamo sve ove parametre. Šta je još korisno?
48
Performanse View->Analysis->Code coverage
49
Performanse View->Analysis->Code coverage
50
Hardver kaže Hello world!
51
NUCLEO-103RB Podrška za ploču NUCLEO-103RB
Nakon instalcije otvoriti Blinky example
52
Demo projekat za Nucleo ploču
53
Opcije projekta Učestanost Xtal se koristi samo pri simulacijama.
54
Zone u memoriji Moguće je i drugačije definisati memorijske banke, i linkeru ukazivati gde šta da “pakuje”. Koriste se samo niži blokovi, osim ako se linkeru ne kaže drugačije. Prilikom startup-a briše se RAM moerija osim ako nije validirana opcija NoInit.
55
Memory assignment Za svaki fajl posebno može da se sugeriše gde će biti smešten njegov kod i podaci.
56
Standard Library set Standardna ANSI biblioteka ili MicroLIB koji je više prilagođen mikrokontrolerima. Na primer funkcija printf se razlikuje u te dve biblioteke. U MicroLIB biblioteci je optimizovana tako da zauzima manje prostora. Sa druge strane MicroLIB biblioteka ne podržava C++.
57
Options->Output
58
Options->Listing
59
MAP fajl
61
Options->C/C++ Optimizacije treba držati na nuli jer je tako debug-ovanje jasno i jednoznačno. Podrazumevana optimizacija je po veličini image-a, tj. programa. As you increase the optimization level, the compiler will use more and more aggressive techniques to optimize the code. At the high optimization level, the generated code no longer maps closely to the original source code which then makes using the debugger very difficult. For example, when you single step the code, its execution will no longer follow the expected path through the source code. Setting a break point can also be hit and miss as the generated code may not exist on the same line as the source code. By default, the compiler will generate the smallest image. The compiler menu also allows you to enter any #defines that you want to pass to the source module when it is being compiled. If you have structured your project over several directories you may also add local include paths to directories with project header files. The Misc Controls text box allows you to add any compiler switches that are not directly supported in the main menu. Finally, the full compiler control string is displayed, this includes the CPU options, project includes paths and library paths, and the make dependency files.
62
Options->Linker Glavna informacija za linker je memorijska mapa preuzeta iz target menija, koja se zatim konvertuje u Scatter fajl. Scatter fajl daje tekstualni opis podele memorije linkeru.
63
Options->Utilities
64
Build & Load Povezati ploču na računar
U Device Manager-u proveriti da li je instaliran STLink Ako nije Desni klink Update driver Browse my Computer for Driver Software Folder Keil_v5 Pronaći će se drajver
65
Build & Load
66
main.c Gde piše printf?
67
Serial.c za 103RB || stdout_USART.c za L476RG
68
Hterm – serijska komunikacija
69
printf u simulaciji Vratimo se na First project tj. naš simulacioni projekat Start debugging View -> Serial Windows -> Debug (printf) viewer Nismo omogućili u Run Time Environment-u da se uključi STDOUT ITM – Instrumentation Trace Macrocell
70
printf u simulaciji
71
printf u simulaciji
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.