Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  programma draaien vanuit ROM.

Slides:



Advertisements
Verwante presentaties
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 5 - onderwerpen •DB038 hardware : toetsenbordje.
Advertisements

PROS2 Les 13 Programmeren en Software Engineering 2.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Operatoren, Arrays, Command-line tools.
Instructie Programmeren Task 1 5JJ70. Task 1.1: Hello World •Klik naast de laatste accolade in de grijze kantlijn om een breakpoint neer te zetten, anders.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Een programma opbouwen.
Algoritmen en Datastructuren (ALDAT)
Arduino project.
1 Device driver. 2 Hardware Operating Systeem Prog1Prog2 System calls/ API Device drivers Gebruiker afschermen van de hardware.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Gelinkte lijsten Finite State.
Les 5 - onderwerpen Aansturen van vier 7-segment displays
C programma int main(){ } Compilatie met devc++ in file main.c Gecompileerd programma in file FirstProgram.exe Mov R1, 120 Mov R2, 160 ADD R1, R2.
MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):
Bluetooth Communicatie tussen computer en Brick Computer zet de connectie op, Brick wacht Enkel communicatie van de Brick naar de computer Lejos API: NXTConnecion.
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
Deel I: Programmeertaal C 6. Arrays en Pointers
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  D3EEMS1  programmed I/O: de.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 3 - onderwerpen Het.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 4 - onderwerpen Tellen.
KPRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology Les 2 sheet 1 Wat gaan we doen:  Een (vaste) melodie.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail: Sheets en.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Het ARM bord met wat library functies.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 4 - onderwerpen Multiplexen.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  basis files: ram-rom.zip.
PEMSY1http:// 1  Herhaling: combineren van assembler en C  Herhaling: subroutine  geen nieuwe opgave Voorbeeld tentamen:
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag GUI  command line redirection.
Mail: Jan Zuurbier  Mail:
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 6 - onderwerpen seriele interface (UART -
Presentatie Het BIOS (wat is dat) Rondkijken in het BIOS
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 7 onze.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 2 definitie.
Tircms02-p les 4 Preprocessor In- en uitvoer Diversen.
PEMSY1http:// 1  Herhaling ARM assembler instructies  branch instructie  conditionele instructies en de flags  oefening.
Mail: (of Sheets en verdere info: Onderwerp: vervolg C
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Arrays en pointers lichtkrant op het ARM bordje.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  een MIDI track interpreteren, laten zien en afspelen.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen  DB036 printjes subroutines.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies  assembler.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Finite State Machine (Eindige.
PEMSY1http:// 1  Herhaling: combineren van assembler en C  Herhaling: subroutine  Oefening: melodie Klas EV2B: week.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 6 - onderwerpen Uitleg.
Onderwerp: PIC assembler programmeren
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 3 redirection,
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 2 - onderwerpen  Helaas nog geen printjes.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail: Sheets en.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag User-defined characters op de.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 2 - onderwerpen MPLAB.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 4 - onderwerpen DB027 hardware : LEDs en displays.
VPEMSY1, D3ECPT2 : ARM Assembler 1 Hogeschool Utrecht / Electrical Engineering & Design 1  Herhaling: CMP, CMN,
PEMSY1http:// 1  Herhaling nieuwe instructies van vorige week  nieuw: combineren van assembler en C  oefeningen: assembler.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag top-down decompositie Opdrachten:
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Maak, uitgaande van een MIDI file, een (klein) programma.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  Een (vaste) melodie spelen op de PC speaker 
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 4 - onderwerpen DB038 hardware : luidsprekertje.
2TPRJ5 – PIC assembler Hogeschool Utrecht / Institute for Information & Communication Technology Wouter van Ooijen Mail: Sheets.
Inleiding computersystemen en netwerken Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 2.1 Programmeren (2.9) assembler,
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail:
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1.
2TPRJ8 – hardware en ontwikkelomgeving Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail:
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail: Sheets.
Instructie Programmeren Task 7
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Een embedded systeem: ARM bord.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen Instruction timing Shadow.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  de track structuur van een MIDI file interpreteren.
Codetuts Academy Les 2 Module 2a Php Fundamentals 1.
GUI & classes Een Gui in een class steken en het object gebruiken.
VPEMSY1, D3ECPT2 : ARM Assembler Hogeschool Utrecht / Electrical Engineering & Design 1  Herhaling B/BL, conditions,
Wat gaan we doen? Herhaling ARM assembler instructies
Wat gaan we doen? Herhaling: ACPS; indexed addressing; half-word/byte
Transcript van de presentatie:

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  programma draaien vanuit ROM  gebruik van de UART  gebruik van de LSP  oefeningen

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 2 char buffer[ 200 ]; const char msg = ”Hello world\n”; int crystal = 12 * 1000 * 1000; void f( void ){ int i; for( i = 0; msg[ i ] != ’\0’; i++ ){ ARK_CHAR_LCD_char_write( msg[ i ] ); }  RWZ : bss  RO : rodata  RWI : data  RO : text (code)  RW : op de stack (hier niet gebruikt: heap)

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 3 Geheugen segmenten: Code (text) Globale RO data met initiele waarde (rodata) Globale RW data met initiele waarde (data) Globale RW data zonder initiele waarde (bss) Stack (lokale data) Heap

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 4 Als je uit RAM runt maakt het allemaal niet veel uit: alle RAM is RW, dus er gaat niets mis. Als je uit ROM (flash) runt moet je oppassen dat alles wat je wil kunnen schrijven in BSS (initieel 0) of DATA staat (specifieke initieele waarde). Code en RO is minder critisch (text of rodata) C doet dit automatisch, in assembler moet je het zelf doen!

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 5 Assembler sectie macro’s in ark.h:  code moet in.text  geinitialiseerde schrijfbare data moet in.data  ongeinitialiseerde data hoort in.bss CODE.text.arm.align DATA.data.align BSS.bss.align

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 6 ROM / RAM selectie: In Project.h staat een regel #define ARK_TARGET ARK_TARGET_RAM Die kan je veranderen in #define ARK_TARGET ARK_TARGET_ROM

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 7 Downloaden naar ROM (zie webpagina):  Philips Flash utility: GUI interface  lpc21isp : dos command line Als de chip opstart kijkt hij naar een pin om te kiezen tussen de rom (flash) bootloader en de applicatie. De beide programma’s kunnen de handshake lijnen gebruiken om de chip te resetten en de bootloader te activeren. Nadeel: een andere windows programma zal dit niet weten…. Jumpers SL7, SL8, SL9, SL10 moeten gesloten zijn voor bootloaden, SL7, SL8 open als je ’normale’ programma’s op de PC wil gebruiken.

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 8 -Zet instellingen (com poort, baudrate, DTR/RTS, execute) -Selecteer de file (wordt na wijziging automatisch herladen) -Upload to Flash

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 9 Lpc21isp : DOS-binnen-windows command line interface lpc21isp –control Project.hex com control: gebruik de handshake lijnen Project.hex: de code die geladen moet worden com1: compoort die gebruikt moet worden 19200: baudrate (38400 werkt ook nog) 12000: kristal frequentie in kHz

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 10 lpc21isp –control -term Project.hex com term : start na het downloaden een ”terminal” Let op: die terminal gebruikt de zelfde baudrate als het downloaden.

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 11 UART Library (assembler) - 1 U0_base, U1_base subroutine ARK_UART_init R0 = UART, R1 = baudrate subroutine ARK_UART_char_write R0 = UART, R1 = char to be written subroutine ARK_UART_string_write R0 = UART, R1 = pointer to ASCIZ string to be written

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 12 UART Library (assembler) - 2 Subroutine ARK_UART_char_read R0 = UART, R0 out = char that was read Subroutine ARK_UART_char_can_be_written R0 = UART, R0 out = 0 for NO, <>0 for YES Subroutine ARK_UART_char_available R0 = UART, R0 out = 0 for NO, <>0 for YES

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 13 main_asm_hello.S #include "ark.h".global main ARM message1:.ASCIZ "Hello world!\n" message2:.ASCIZ "how do you do?\n" message3:.ASCIZ "\n\n".align print: stmfd sp!, { lr } mov r1, r0 ldr r0, =U0_base bl ARK_UART_string_write ldr r0, =( 1000 * 1000 ) ldmfd sp!, { lr } b ARK_wait_us main: ldr r0, =U0_base ldr r1, =19200 bl ARK_UART_init loop: ldr r0, =message1 bl print ldr r0, =message2 bl print ldr r0, =message3 bl print b loop

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 14 UART Library (C) UART_struct *U0_base, *U1_base; void ARK_UART_init( UART_struct *UART, unsigned int baudrate ) void ARK_UART_char_write( UART_struct *UART, char chr ) void ARK_UART_string_write( UART_struct *UART, char *s ) char ARK_UART_char_read( UART_struct *UART ) unsigned char ARK_UART_char_can_be_written( UART_struct *UART ) unsigned char ARK_UART_char_available( UART_struct *UART )

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 15 main_c_serial_echo.c #include "ark.h" int main( int agc, char *argv[] ){ UART_struct * p = U0_base; char c; char h = 1; ARK_UART_init( p, ); for(;;){ c = ARK_UART_char_read( p ); if( c == '0' ){ h = 0; } if( c == '1' ){ h = 1; } if( h && ( c >= 'a' ) && (c <= 'z' )){ c = ( c - 'a' ) + 'A'; } ARK_UART_char_write( p, c ); } return 0; }

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 16 LSP ‘Library’ #define ARK_BOARD_LSP_PIN 8 void ARK_audio_sw_squarewave_out( int pin, int cycle, int duration ) subroutine: ARK_audio_sw_squarewave_out R0 = pin, R1 = µs per cycle, R2 = µs total

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 17 main_c_beep.c #include "ark.h" int main( int agc, char *argv[] ){ int i; ARK_LEDs_write( 1 ); for( i = 0; i < 4; i++ ){ ARK_audio_sw_squarewave_out( ARK_BOARD_LSP_PIN, 500, 200 * 1000 ); ARK_wait_us( 200 * 1000 ); } ARK_LEDs_write( 3 ); return 0; }

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 18 Muziek Octaaf = verdubbeling van de frequentie ‘centrale A’ = 440 Hz Octaaf is verdeeld in 12 gelijke stappen Dus stap^12 = 2  stap = 12 √ 2 Klopt niet helemaal (‘gelijkzwevend’) Niet uitrekenen, gewoon een tabel gebruiken (zelf samenstellen of googelen)

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 19 noten : naam (= toon hoogte)

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 20 noten : duur

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 21 nootnaam  frequentie

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 22

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 23 Opdracht 1: Mariner Een favoriet gedicht van mij is ”The Rime of the Ancient Mariner”. Schrijf een programma dat serieel communiceert met de PC. Telkens als ik op e PC een toest indruk schrijft het programma de volgende regel van het gedicht naar de PC (eerste 12 regels is genoeg). Het programma moet in ROM geplaatst worden. Taal (C of assembler) is naar eigen keuze.

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 24 Opdracht 2: melodietje Schrijf een programma dat een melodietje naar keuze laat horen op de speaker (het gaat om het principe, een noot of 10 is genoeg, maar dan wel goed!). Het programma moet in ROM geplaatst worden. Taal (C of assembler) is naar eigen keuze. tips: neem een liedje zonder kruisen (#’s) of mollen (b’s), bv “dag Sinterklaasje”