Föreläsning 4 IS1300 Inbyggda system

Relevanta dokument
IS1300 Inbyggda system KTH/ICT/EKT VT2014 /BM 1

Support Manual HoistLocatel Electronic Locks

Beijer Electronics AB 2000, MA00336A,

Quick Start Guide Snabbguide

2.1 Installation of driver using Internet Installation of driver from disk... 3

Viktig information för transmittrar med option /A1 Gold-Plated Diaphragm

Isolda Purchase - EDI

Det finns en handledning till kortet på hemsidan. AVR STK500.

Styrteknik 7.5 hp distans: E-1000 och E-Designer

Webbregistrering pa kurs och termin

GU / Chalmers Campus Lindholmen Tentamen Programutveckling LEU 482 / TIG167

Boiler with heatpump / Värmepumpsberedare

Michael Q. Jones & Matt B. Pedersen University of Nevada Las Vegas

Creo Customization. Lars Björs

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

Guide till RefWorks Skapa ett RefWorks-konto Under Citera och referera > RefWorks Hjälp funktioner i RefWorks Help Tutorial Help

Datorlaboration 0, Programmering i C++ (EDA623)

Webbreg öppen: 26/ /

HANTERING AV UPS CX

LOG/iC2. Introduction

Application Note SW

PROFINET MELLAN EL6631 OCH EK9300

Tentamen PC-teknik 5 p

GU / Chalmers Campus Lindholmen Tentamen Programutveckling LEU 482 / TIG167

Så här skriver du ditt första program i C++

electiaprotect GSM SEQURITY SYSTEM Vesta EZ Home Application SMART SECURITY SYSTEMS! SVENSKA ios Android

Verktyg och Utvecklingsmiljö. Jochim von Hacht

Exempelsamling Assemblerprogrammering

BBT057/ BBC057 BBCD057/ BBT057-NL HOLDEN COLORADO 9/2016+ HOLDEN TRAILBLAZER WD & 4WD Models

1. Log on to the system using the user ide and password ide. 2. Copy the file /etc/ca-certificates.conf to the home directory of the user.

INSTALLATION INSTRUCTIONS

Styrteknik : Funktioner och funktionsblock

PNSPO! Tips! Xpectia kommunikation till OMRON PLC via Seriellt. 14 mars 2012 OMRON Corporation

Datorlaboration 0, Programmering i C++ (EDAF30)

Quick Start. English Svenska. Moca

6 th Grade English October 6-10, 2014

Swedbank Mobile Loadtesting. LoadRunner Mobile App protocol

InstalationGuide. English. MODEL:150NHighGain/30NMiniUSBAdapter

12.6 Heat equation, Wave equation

How to format the different elements of a page in the CMS :

Taking Flight! Migrating to SAS 9.2!

Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document

Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion.

PUBLICERINGSNOTISER TRIMBLE ACCESS SOFTWARE. Version Revidering A December 2013

Hämta via databaser Pröva några olika databaser. Se Hämta referenser från databaser.

CICS Application Programming. Exercises MONITOR IT-utbildning, Cobolskolan Sverige, B1-1


Datasäkerhet och integritet

Imperative Programming

1. Unpack content of zip-file to temporary folder and double click Setup

Displaysystem. Hans Brandtberg Saab Avitronics SAAB AVITRONICS

Installation av F13 Bråvalla

Ett hållbart boende A sustainable living. Mikael Hassel. Handledare/ Supervisor. Examiner. Katarina Lundeberg/Fredric Benesch

Anvisning för Guide for

DVG C01 TENTAMEN I PROGRAMSPRÅK PROGRAMMING LANGUAGES EXAMINATION :15-13: 15

Sammanfattning. Revisionsfråga Har kommunstyrelsen och tekniska nämnden en tillfredställande intern kontroll av att upphandlade ramavtal följs.

Testautomatisering. BDD, RSpec

Översättning av galleriet. Hjälp till den som vill...

HI1024 Programmering, grundkurs TEN

Datorteknik. Tomas Nordström. Föreläsning 6. För utveckling av verksamhet, produkter och livskvalitet.

Annonsformat desktop. Startsida / områdesstartsidor. Artikel/nyhets-sidor. 1. Toppbanner, format 1050x180 pxl. Format 1060x180 px + 250x240 pxl.

Every visitor coming to the this website can subscribe for the newsletter by entering respective address and desired city.

DAMPER EQAZ-12, EQAZ-13, STAZ-30, STBZ-30


Antares Användning och installation

Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson

Alias 1.0 Rollbaserad inloggning

Här kan du checka in. Check in here with a good conscience

Styrteknik: Binära tal, talsystem och koder D3:1

- den bredaste guiden om Mallorca på svenska! -

Par m 328 feet. Lång höger sväng. Korgen står placerad i en skogsglänta OB-linje på vänster sida.

SVENSK STANDARD SS-ISO :2010/Amd 1:2010

Föreläsning 3. Programmering, C och programmeringsmiljö

Dokumentnamn Order and safety regulations for Hässleholms Kretsloppscenter. Godkänd/ansvarig Gunilla Holmberg. Kretsloppscenter

Hämta via databaser Se Hämta referenser från databaser.

System arbetssystem informationssystem

Make a speech. How to make the perfect speech. söndag 6 oktober 13

Release notes for Permobil R-net PC-programmer ver Dealer access level

Förändrade förväntningar

Adding active and blended learning to an introductory mechanics course

Quick Start. English Svenska PRIMACY. Printing settings and winsign

LUNDS TEKNISKA HÖGSKOLA Institutionen för Elektro- och Informationsteknik

Utkast. Programmering. Signals. Olika typer av program. Sommarkurs Avbrott i mjukvara.

VHDL Basics. Component model Code model Entity Architecture Identifiers and objects Operations for relations. Bengt Oelmann -- copyright

Säkra pausade utskriftsjobb. Administratörshandbok

Vässa kraven och förbättra samarbetet med hjälp av Behaviour Driven Development Anna Fallqvist Eriksson

The Municipality of Ystad

Quick-guide to Min ansökan

Safe Logic Compact. Konfigurering av Rexroth säkerhets PLC. Snabbguide Svenska

Här kan du sova. Sleep here with a good conscience

Manual/Förenklad handhavande User Manual. LPW-Serien.

Användarhandbok. MHL to HDMI Adapter IM750

Classes och Interfaces, Objects och References, Initialization

Recitation 4. 2-D arrays. Exceptions

Hur man skyddar sig på internet

FORTA M315. Installation. 218 mm.

Föreläsning 4 - mjukvara

1 Vad är Versionshantering? 2 Git. 2.1 GitHub

Transkript:

Föreläsning 4 IS1300 Inbyggda system Programutveckling Exempel PingPong Idé Tillståndsdiagram State machine Skapa projekt Testning av programvara Peripheral Library till STM32 Programmeringsuppgiften RS232 1

Idé 2

Tillståndsdiagram Ett första utkast 3

Skapar projekt i Embedded workbench Referens: Getting started with embedded workbench, page 37... 4

Skriv kod för State machine Skriv en programstruktur Använd gärna papper och penna! Testa av delar av programmet innan du går vidare Bygg programmet med funktioner så att huvudprogrammet blir kort och lätt att följa Skriv bra kommentarer Visa exempel version 0.1 State machine klar 5

Hur ska vi testa programmet? Traditionellt DLP = Debug Later Programming TDD = Test Driven Development 1. Add a small test 2. Run all the tests and see how the new one fail 3. Make the small changes to pass the test 4. Run all the tests and see the new one pass 5. Refactor to remove duplication and improve expressiveness Refactor: Changing structure without changing its behavior. Cleaning! Bok: Grenning, Test-Driven Development for Embedded C Ref: http://en.wikipedia.org/wiki/test-driven_development 6

Test av C-kod Även om vi använder DLP bör vi fundera ut i förväg vilka tester vi skall genomföra för att säkra funktionen hos koden Mitt exempel Programmet går nu att köra med debugger i läge simulering Ingen hårdvara ansluten Jag kan testa tillståndsmaskinen 7

Lägg till Peripheral library Här finns det olika vägar att gå för att skapa ett eget projekt med rätt namn Anvisningar enligt IAR guide och helpfilen stm32f10x_stdperiph_lib_um.chm Använd mallar från Peripheral library Utgå från ett exempelprojekt till IAR-kortet och lägg till de filer som behövs och kopiera filstruktur och projektinställningar 8

stm32f10x_stdperiph_lib_um.chm Demo av hur man hittar i helpfilen Den krets som sitter på IAR-kortet STM32F103ZE har 512 kbyte flashminne och är en High density device Använd helpfilen för att förstå hur perifera portar konfigureras och API används stm32f10x_conf.h bestämmer vilka h-filer som läses in (kommentera bort de som inte behövs) De exempel för EVAL-kort som finns beskrivna i help-filen gäller ST-kort, ej IAR-kortet 9

Versionshantering Under utveckling så ändras filer hela tiden och inte alltid till det bättre Vi behöver ett system för att hålla ordning på de ändringar som görs Nödvändigt när flera jobbar i samma projekt I versionshanteringssystemet (VCS = Version Control System) kan du checka in och checka ut kod från en server Ref: http://en.wikipedia.org/wiki/revision_control 10

Kompilering och länkning För att få ett körbart program måste programmet Kompileras Länkas Läggas in i minnet på rätt ställe Initieras 11

Compiler and assembler From source code to object code 12

Linker Linking object files and library files to an executable HEX file for download 13

Linker output 14

Initialization phase after reset Initialization is executed when an application is started (the CPU is reset) but before the main function is entered Hardware initialization, for example initializing the stack pointer The hardware initialization is typically performed by the system startup code Cstartup. Software C/C++ system initialization Typically, this includes making sure that every global (statically linked) C/C++ object receives its proper initialization value before the main function is called. Application initialization For a bare-bone application, it can include setting up various interrupts, initializing communication, initializing devices, etc. For a ROM/flash-based system, constants and functions are already placed in ROM. All symbols placed in RAM must be initialized before the main function is called. The linker has already divided the available RAM into different areas for variables, stack, heap, etc. 15

1 Initialize stack pointer When an application is started, the system startup code first performs Hardware initialization, such as initialization of the stack pointer to point at either the start or the end depending on your microcontroller of the predefined stack area. 16

2 Zero-initialized variables Then, memories that should be zero-initialized are cleared, in other words, filled with zeros. Typically, this is data referred to as zero-initialized data; variables declared as, for example, int i = 0; 17

3 Initialize data For initialized data, data declared with a non-zero value, like int i = 6;, the initializers are copied from ROM to RAM. 18

4 Finally, main is called Finally, the main function is called. 19

Programmeringsuppgiften Seriell kommunikation via RS232 från PC Seriella tecken som överförs skall tolkas och aktivera något på kortet samt returnera kvittens eller värden Redovisning sker vecka 10 med skriftlig rapport och muntlig examination. Var beredd att kunna förklara hur du har gått tillväga för att utveckla programmet. 20

Seriell port - RS232 Seriell port http://en.wikipedia.org/wiki/serial_port RS232 http://en.wikipedia.org/wiki/rs-232 I vår microcontroller används USART för asynkron seriell kommunikation http://en.wikipedia.org/wiki/usart 21