32-bitni mikrokontroleri i primena - MS1BMP

Slides:



Advertisements
Similar presentations
Cortex-M3 Implementation Overview. Chapter 6 in the reference book.
Advertisements

Embedded Computer ( Sisteme incorporate ) MPU vs. CPU / Alternative Texas Instrument, Freescale, ARM RISC and CISC approaches Single Chip Design System.
MS_uC / dnd / V Programming and GPIO Programming Microcontroller IDE usage, debugger GPIO – General Purpose Input/Output Week 2 - autumn term 2007.
Using PDG with e2studio: Example
Getting Started with a Cortex-M3 Board
ECE Department: University of Massachusetts, Amherst Lab 1: Introduction to NIOS II Hardware Development.
Asst. Prof. Dr. Alper ŞİŞMAN
SKP8CMINI-15,17 Tutorial 1 Software Development Process using HEW4
Introduction Purpose Objectives Content Learning Time
3-1 System peripherals & Bus Structure Memory map of the LPC2300 device is one contiguous 32-bit address range. However, the device itself is made up of.
Cortex-M3 Debugging System
111 Confidential RealView MDK v3.1x What’s New. 222 Confidential What’s New in MDK v3.1x  Compiler  MicroLib – optimised C libraries  RealView compiler.
Part 1 Using the ARM board And start working with C Tutorial 5 and 6
Silicon Labs ToolStick Development Platform
NET+OS 6.1 Training. BSP NET+OS 6.1 BSP Initialization Memory map New features Debugging Porting Issues.
The 6713 DSP Starter Kit (DSK) is a low-cost platform which lets customers evaluate and develop applications for the Texas Instruments C67X DSP family.
AT91SAM9261-EK WinCE 6.0 DEMO ATMEL AT91 Application & Support Group
NetBurner MOD 5282 Network Development Kit MCF 5282 Integrated ColdFire 32 bit Microcontoller 2 DB-9 connectors for serial I/O supports: RS-232, RS-485,
Introduction Purpose This training course covers debugging an application on an SH target in the Renesas HEW (High-performance Embedded Workshop) development.
COMPUTER SYSTEM LABORATORY Lab10 - Sensor II. Lab 10 Experimental Goal Learn how to write programs on the PTK development board (STM32F207). 2013/11/19/
AT91SAM9261-EK WinCE 5.0 DEMO ATMEL AT91 Application & Support Group Version 1.O February 2007.
Lab 1 Department of Computer Science and Information Engineering National Taiwan University Lab1 - Sensor 2014/9/23/ 13 1.
Microcontroller based system design Asst. Prof. Dr. Alper ŞİŞMAN.
Introduction Purpose This training course covers debugging an application on an SH target in the Renesas HEW (High-performance Embedded Workshop) development.
SAM9260-EK WinCE DEMO AT91 SAM9 Product Group. Version 1.0 October 2006.
SAM9260-EK WinCE DEMO AT91 SAM9 Product Group. Version 1.0 October 2006.
AT91 Products Overview. 2 The Atmel AT91 Series of microcontrollers are based upon the powerful ARM7TDMI processor. Atmel has taken these cores, added.
Implementation of Embedded OS Lab4 Cortex-M3 Programming.
ChibiOS/RT Demo A free embedded RTOS
Embedded Systems Design with Qsys and Altera Monitor Program
김민수 Cortex-M4 Processor - Getting Started with the GNU Compiler Collection(gcc)
3/6/2017 Richard Kuo Assistant Professor
Introduction to the ARM mbed Platform– A Hands-on Course
ARM Embedded Systems
Lab 1: Using NIOS II processor for code execution on FPGA
Microcontrollers & GPIO
Computer System Laboratory
Implementation of Embedded OS
Microcontroller Applications
PRU-ICSS Programming with CCS
CENG2400 Tutorial 1 Keil IDE CENG2400 tutorial 1 v.7a.
AVR32 UC3 EVK1100 Control Panel Tutorial
Programi zasnovani na prozorima
32-bitni mikrokontroleri i primena - MS1BMP
32-bitni mikrokontroleri i primena - MS1BMP
Introduction to Microprocessors and Microcontrollers
Programmable Logic- How do they do that?
32-bitni mikrokontroleri i primena - MS1BMP 6. deo
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
32-bitni mikrokontroleri i primena - MS1BMP
PROGRAMIRANJE MENIJA.
Microsoft Office 2007 MS Office je programski paket koji sadrži više programa: MS Word – program za obradu teksta MS Excel – program za izradu tabela sa.
Petlje FOR - NEXT.
REPEAT…UNTIL Naredbe ciklusa.
Komponente izbora i kontejnerske komponente
32-bitni mikrokontroleri i primena - MS1BMP
32-bitni mikrokontroleri i primena
Element form Milena Kostadinović.
predavanja v.as.mr. Samir Lemeš
Designing with ARM Cortex-M4 (and a Real Dev Board)
32-bitni mikrokontroleri i primena - MS1BMP
Osnovni simboli jezika Pascal
ECE 3567 Microcontroller Lab
Strukture podataka i algoritmi 5. VRIJEME IZVRŠAVANJA ALGORITMA
Software Setup & Validation
Wireless Embedded Systems
7. Baze podataka Postavke MS Accessa.
Computer System Laboratory
JTAG, Multi-ICE and Angel
Embedded Development Tools
Presentation transcript:

32-bitni mikrokontroleri i primena - MS1BMP 2017/2018 Nenad Jovičić Marija Janković

Organizacija kursa Predavači: Web: tnt.etf.rs/~ms1bmp doc. Dr Nenad Jovičić nenad@etf.rs As. Marija Janković meja@el.etf.rs Web: tnt.etf.rs/~ms1bmp Projekat 40% ocene Ispit (60% ocene): Demonstracija projekta Diskusija o projektu Teorijska diskusija

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

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.

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

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

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 ......

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.

Projekti Primeri projekata na stranici: http://tnt.etf.rs/~ms1bmp/projekti.html

Komponente Preferirani dobavljač modula je kompanija Mikroelektronika. www.mikroe.com . 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 www.farnell.com .

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. www.kelco.rs , www.mikroprinc.rs

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 )

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 1149.1-2001 (JTAG). ...

Sadržaj predavanja Alati za razvoj softvera za CortexM KEIL – MDK ARM Instalacija Softverski paketi Prvi program (simulator) Konfiguracija projekta Debagovanje Prvi program (hardver)

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.

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.

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.

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.

Instalacija Download-ovati eval verziju koja podržava 32k koda sa https://www.keil.com/arm/demo/eval/arm.htm Intalirati MDK ARM i pokrenuti instalaciju pack-ova

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: http://tnt.etf.rs/~ms1bmp/PACK1.pack http://tnt.etf.rs/~ms1bmp/PACK2.pack dupli klik na oba .pack fajla

Tutorial Examples Pack

Kreiranje prvog projekta Koristimo fajlove iz Primera 2.2 – iskopirati fajlove u odgovarajući folder (odčekirati Use Pack Folder Structure) Project -> close project

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

Prvi projekat Project -> New uVision Project Sačuvati u folderu u kome je i Blinky projekat.

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.

“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)

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.

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.

Promenom veličine u Configuration Wizard-u menja se i vrednost u startup fajlu.

Dodavanje postojećeg source fajla desni klik Source Group -> Add Existing -> Blinky.c Blinky.c ukazuje koji include fajlovi su mu potrebni

Potpun projekat – build it! F7

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

Debug

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

Debug – analogni ulaz u simulaciji?

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

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.

μVision debugger je podeljen u više prozora koji omogućavaju analizu i kontrolu izvršavanja koda.

Dissasembly

Kontrola izvršavanja Breakpoint

Praćenje vrednosti Memory Register window Promenljive Watch Logic Trace Periferijski registri Peripherals -> periph_name

Watch

Logic Trace – Logic Analyzer

Vrednosti registara periferija GPIOB Probajte da upisete nesto?

Praćenje izvršavanja instrukcija - TRACE View->Trace->Enable Trace Recording View->Trace->Trace Data Stop the execution to show the instructions

Š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?

Performanse View->Analysis->Code coverage

Performanse View->Analysis->Code coverage

Hardver kaže Hello world!

NUCLEO-103RB Podrška za ploču NUCLEO-103RB Nakon instalcije otvoriti Blinky example

Demo projekat za Nucleo ploču

Opcije projekta Učestanost Xtal se koristi samo pri simulacijama.

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.

Memory assignment Za svaki fajl posebno može da se sugeriše gde će biti smešten njegov kod i podaci.

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++.

Options->Output

Options->Listing

MAP fajl

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.

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.

Options->Utilities

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

Build & Load

main.c Gde piše printf?

Serial.c za 103RB || stdout_USART.c za L476RG

Hterm – serijska komunikacija

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

printf u simulaciji

printf u simulaciji