Laiteläheinen C-kieli, hello.c

Samankaltaiset tiedostot
Laiteläheinen C-kieli osa 1 pva

NetBeans asennus ja etäkäyttö C-kielen opiskeluun, Windows

1. NetBeans-ohjelman asennus ja käyttöönotto pva

NetBeans asennus ja etäkäyttö C-kielen opiskeluun, Linux

Raspin Geany-IDE:n etäkäyttö

Laiteläheinen C-kieli, mitä C-käännösprosessissa tapahtuu

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

5. HelloWorld-ohjelma 5.1

TTY TKT-1110 Mikroprosessorit TKT. HEW-ohjeet ver 1.0

Osa. Listaus 2.1. HELLO.CPP esittelee C++ -ohjelman osat. 14: #include <iostream.h> 15: 16: int main() 17: {

5. HelloWorld-ohjelma 5.1

Raspin Geany-IDE:n etäkäyttö Windows-ympäristössä

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

4. Lausekielinen ohjelmointi 4.1

ASCII-taidetta. Intro: Python

Eclipse ja JUnit-ohjelmoijatestit

AS C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

6.3. AVR_rauta. EEPROM-muisti pva

Oletus Sinulla on Raspin Geany-IDE konfiguroituna toimimaan SSH-etäkäytössä.

4. Lausekielinen ohjelmointi 4.1

OHJE Jos Kelaimeen kirjautuminen ei onnistu Mac-koneella Sisällys

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Punomo Tee itse -julkaisun tekeminen

HAMINETTI WLAN LIITTYMÄN KÄYTTÖÖNOTTO-OHJE

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

Eclipse, SVN ja HelloWorld

Johdatus ohjelmointiin

Laiteläheinen C-kieli, yleistä

Jypelin käyttöohjeet» Ruutukentän luominen

CEM DT-3353 Pihtimittari

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

HOW-TO: Kuinka saan yhdistettyä kaksi tulospalvelukonetta keskenään verkkoon? [Windows XP]

JOVISION IP-KAMERA Käyttöohje

Kon Konepajojen tuotannonohjaus: ILOG CPLEX Studion käyttö

BL40A1810 Mikroprosessorit, harjoitus 1

Joomla pikaopas. Yksinkertainen opas, jossa neuvotaan esimerkkisivuston teko Joomla julkaisujärjestelmällä vaihe vaiheelta.

Pedacode Pikaopas. Web-sovelluksen luominen

Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Office ohjelmiston asennusohje

Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan

Moottorin kierrosnopeus Tämän harjoituksen jälkeen:

JUnit ja EasyMock (TilaustenKäsittely)

Sen jälkeen Microsoft Office ja sen alta löytyy ohjelmat. Ensin käynnistä-valikosta kaikki ohjelmat

Harjoitus 3 Antti Hartikainen

1 www-sivujen teko opetuksessa

Netemul -ohjelma Tietojenkäsittelyn koulutusohjelma

Tällä ohjelmoitavalla laitteella saat hälytyksen, mikäli lämpötila nousee liian korkeaksi.

Viestit-palvelun viranomaisliittymän ohjelmointiohje. Java-esimerkki

Ohjelmointi Linuxissa. Sisällysluettelo. 1. Mitä tarvitaan sovellusten tuottamiseen? Tehnyt: Antti Martikainen ( )

Muistitikun liittäminen tietokoneeseen

Loppukurssin järjestelyt

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Autokunto-ohjelmiston käyttöohjeet

JAKELUPISTE KÄYTTÖOHJE 2/6

Python-koodaus: Muuttujat

OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen

(Tätä ohjetta saa käyttää yliopiston opetustarkoituksiin ja jatkokehittelyyn.)

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Internet Explorer 7 & 8 pop-up asetukset

Loppukurssin järjestelyt C:n edistyneet piirteet

Liikennevalot. Arduino toimii laitteen aivoina. Arduinokortti on kuin pieni tietokone, johon voit ohjelmoida toimintoja.

1 Tivax siirto uuteen koneeseen

Kansion asetusten muuttaminen Windows 2000 käyttöjärjestelmässä Resurssienhallinnan kautta

Pedacode Pikaopas. Web Service asiakasohjelman luominen

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

Ohje sähköiseen osallistumiseen

Coolselector Asennusohje

WEIKKA. Asennus opas. Hannu-Matti Lemettinen HML Productions

Käyttö ohjeet kirpputorille

Ohjelmointi 1. Kumppanit

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

TALLENNETAAN MUISTITIKULLE JA MUISTIKORTILLE

OHJE Jos Kelaimeen kirjautuminen ei onnistu Windows-koneilla

Apuja ohjelmointiin» Yleisiä virheitä

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

YH2: Office365 II, verkko-opiskelu

4. Luokan testaus ja käyttö olion kautta 4.1

YH1b: Office365 II, verkko-opiskelu

KÄYTTÖOHJE. Servia. S solutions

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Autentikoivan lähtevän postin palvelimen asetukset

Itseasennusohje. Elisa ADSL. M1122-verkkopääte ADSL

INTERBASE 5.0 PÄIVITYS VERSIOON 5.6

Mathcad 14.0 Single User -asennus

Harjoitus 2 (viikko 45)

8. Näppäimistöltä lukeminen 8.1

Verkkosivut perinteisesti. Tanja Välisalo

NetMeetingiä voi käyttää esimerkiksi Internet puheluissa, kokouksissa, etätyössä, etäopiskelussa ja teknisessä tuessa.

Simulaattorin asennus- ja käyttöohje

TIETOKONEEN ASETUKSILLA PARANNAT KÄYTETTÄVYYTTÄ

SSH Secure Shell & SSH File Transfer

Avautuvasta ponnahdusvalikosta valitse kohta Always allow Pop-ups from This Site / Salli aina tämän sivun ponnahdusikkunat

Opetussuunnitteluprosessi WebOodissa - OpasOodi

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Transkriptio:

Laiteläheinen C-kieli, hello.c PUNOMO NETWORKS OY 23.8.2016 pva Oletus Sinulla on GNU/Linux-Mint-koneessa (tai vastaava Windows) NetBeans-IDE konfiguroituna toimimaan SSH-etäkäytössä RaspberryPi:n kanssa. Katso Punomon sivulla NetBeans asennus ja etäkäyttö C-kielen opiskeluun, Linux, tai sama Windowsille. http://punomo.npn.fi/teeitse/punomon-ohjelmointimateriaalit/ Koodi kirjoitetaan NetBeans-ohjelmassa, työnnetään SSH-yhteydellä Raspi-koneeseen, käännetään ja ajetaan siellä. Ajotulos tulee verkon kautta NetBeansin editorin alle omaan ikkunaan. Tästä alkaa Punomon laiteläheinen C-kielen kurssi. Kaikkien ohjelmointikurssien ensimmäinen koodi, tulostaa näyttöön tekstin Hello World. Kerron tässä perusteellisesti miten toimitaan NetBeansissa kun luodaan projekti ja siihen koodia, jotta pääset IDE:n käyttöön nopeasti ja helposti. Kokeile rohkeasti, ohjelma eikä kone siitä hajoa. Ja ainahan voi vilkaista Help-napin taakse. Seuraavilla oppitunneilla kerron vain itse C-kieleen liittyvät asiat ja oletan että NetBeansin käyttö on hanskassa. Jos tarvetta, emailaa. Osoite löytyy Punomon sivuilta. Kenelle? - peruskoulun yläasteelle - lukioon - ammattioppilaitokseen - ammattikorkeakouluun - vakavaan harrastukseen - fiksujen eläkeläisten aivojumppaan Siis kaikille jotka haluavat liittää esineet internettiin IoT, Internet of Things Eli tehdä huomisen tietoyhteiskunnasta totta. Ohjelmoimaan oppii vain itse tekemällä Ohjelmoinnin opiskelu on kuin polkupyörällä ajoa, on hyvä saada ohjeita ja opastusta, on hyvä katsoa miten toiset ajavat erilaisilla pyörillä, mutta oikeasti opit ajamaan vasta kun tartut itse sarviin ja alat polkea. Nyt alamme perehtyä C-kielen perusteisiin siten, että pääset mahdollisimman nopeasti kirjoittamaan omia ohjelmia. Se on tehokkain ja mielenkiintoisin tapa oppia. Tämä nettijulkaisu keskittyy aluksi C-kielen perusasioihin, jotta mahdollisimman nopeasti pääsemme laiteläheisen C-kielen opiskeluun. Kielen hienoudet ja erikoisominaisuudet jätetään pois. Niitä ohjeita on netti pullollaan. 1

Code Ohjelman tekeminen alkaa lähdekoodista, source code. Se kirjoitetaan C-kielen kielioppisääntöjä noudattaen ja tallennetaan tavallisena ASCII-tekstinä tiedostoon. Lähdekoodista GCC-kääntäjäohjelma tekee objektitiedoston, object code, ja linkkeri-ohjelma, linker, yhdistää objektikoodin ja tarvittavat kirjastotiedostot ajettavaksi ohjelmatiedostoksi. Tutustu käännösprosessiin dokumentissa Mitä C-lähdekoodin kääntämisessä tapahtuu.pdf. ASCII-koodi (American Standard Code for Information Interchange ) on Yhdysvalloissa kehitetty ja yhteisesti maailmanlaajuiseen käyttöön sovittu tapa merkitä kirjaimet ja numerot 7- (standardi ASCII) tai 8-bitin (laajennettu ASCII) paketteina. PC-ympäristössä C-kielen opiskelun aloittavan ensimmäinen suuri haaste on ollut saada ohjelma tulostamaan kuvaruudulle teksti "Hello, World". Siitä on muodostunut kaikissa oppikirjoissa esiintyvä perinne. Niin mekin tehdään. C-ohjelman osat Jokaisessa C-kielisessä ohjelmassa esiintyvät samat peruselementit, olipa ohjelma PC:ssa ajettava iso koodi tai sulautetun järjestelmän pienen pieni koodi. Ohjelman rakenne on aina samanlainen, koko vain muuttuu. Tavallisesti ainakin seuraavat osat löytyvät: - kommentit - esikäsittelysäännöt - pääfunktio main() - muuttujat - ohjelmalauseet Töihin Käynnistä NetBeans. Luo projekti klikkaamalla File, New Project, anna projektin nimeksi hello. Luo projektiin c-tiedosto, klikkaa File, New file, anna tiedostolle nimi hello, c-tarkentimen ohjelma laittaa itse. Toinen, nopeampi tapa: New File New Project Katso tarvittaessa lisäohjeita em. pdf-ohjeesta. NetBeansin eräs hyvä puoli on se, että se tuo kaikki projektiin kuuluvat tiedostot (hakemistopuussa) mukavasti esille. Talleta. 2

Avaa Projects välilehti Projektin nimi Lähdekoodin nimi Sitten klikkaa Services välilehti auki. Klikkaa hiiren oikealla C/C++ Build Hosts, Add New Hosts, New Remote Host Setup ja lisää Raspin osoite Hostname-ikkunaan. Tänne oman Raspin osoite Next. Sitten aukeaa Identification Käyttäjän tunnus 3

Kun työ on tehty, Services-välilehden valikosta löytyy oma Raspi. Osoite ei välttämättä ole sama, todennäköisesti se alkaa Sinulla 192.168.x.y. Oman Raspin IP-osoite tulee tähän Raspin GCC-työkalut ARM-prosessorille Varmista että Raspi-etäkone on SSH-yhteydessä. Avaa NetBeansin Tools, Options, valitse C/C++ välilehti. Ellei Raspin IP-osoite ole näkyvissä, vaihda se Edit-napista. 4

Kirjoita ensimmäinen c-koodi, talleta ja sitten analysoidaan sitä. C-kielisten ohjelmien tiedostotarkentimena tulee käyttää *.c. Siitä C-kääntäjä tunnistaa käännettävän koodin. NetBeans tekee sen automaattisesti. Koodi-info Kommentit C-kielessä on kahdenlaista kommenttia, // yhden rivin kommentti /* yhden tai useamman rivin kommentti */ Kommentit ovat vain Sinulle itselle, jotta ymmärtäisit vielä huomennakin mitä ohjelma tekee. Niin ja tietysti toisille ohjelmoijille, heidänkin tulee kyetä tulkitsemaan koodia oikein ja sitä kautta ymmärtämään ohjelman toiminta. Kommentteja kannattaa käyttää sopivassa määrin, ainakin alussa mieluummin liikaa kuin liian vähän. Itsestäänselvyyksiä ei tietenkään kirjata. Kommentit tulee kirjoittaa samaan aikaan kuin itse ohjelmakoodi, jotta kaikki oleellinen tulisi kerrottua silloin kun se vielä on muistissa (oman pääsi muistissa). Heti opiskelun alussa on tärkeää oppia oikeat työmenetelmät. Siispä sovitaan, että toimit näin: Jokainen ohjelmasi sisältää aluksi kommenttirivejä, joissa on vähintään seuraavat tiedot ohjelmasta: - projektin ja tiedoston (siis ohjelman) nimi, - mille raudalle, HW, hardware, koodi on kirjoitettu - millä kääntäjällä/tulkilla lähdekoodi käännetään - päiväys, milloin ohjelma tallennettu/muutettu, - tekijän nimi tai nimilyhenne - lyhyt kuvaus mitä ohjelma tekee 5

Siis näin: /*************************************** Project : hello Code : hello.c HW : Raspberry Pi 3 SW : gcc (Raspbian 4.9.2 10) 4.9.2 Editor : NetBeans 8.1 Date : 23.8.2016 Author : pva Comments : ensimmäinen ohjelma, tulostaa näyttöön tekstin "Hello World" *************************************** Tästä voisi tehdä koodipohjan jolle vain lisätään uudet sisällöt kun aloitetaan koodaamaan uutta ohjelmaa. Näin omaksut heti oikean tavan tehdä ohjelmia ja tulet - muut ohjelmoijat etenkin - arvostamaan sitä myöhemmin, kun harrastuksesi, toivon mukaan, muuttuu ammatiksi. Header Kommenttien alla on rivi: #include <stdio.h> Lisäämällä #include-rivi, kerrotaan (esi)kääntäjälle mikä ohjetiedosto liitetään ohjelmaan mukaan. Tämä tiedosto, stdio.h - standard input output, sisältää käytössämme olevan mikro-ohjaimen käyttöohjeet, eli miten käsitellään main-funktiossa olevaa printf-funktiota ja mistä osoitteesta se löytyy. Header-tiedoston tarkoitus on koota yhteen paikkaan muuttujat ja niiden funktioiden esittelyt jotka ovat muidenkin ohjelmamoduulien käytössä. Funktio ja muuttuja C-kielen peruskäsitteitä ovat funktio ja muuttuja. Muuttujista toisella tunnilla. Funktio sisältää komentolauseita, jotka ovat ohjeita tietokoneelle. Tietokone toimii näiden ohjeiden, käskyjen mukaan. Funktioita tulee olla vähintään yksi, nimittäin pääfunktio main(). Kääntäjäohjelma tunnistaa nimen funktioksi nimeä välittömästi seuraavista kaarisulkeista (). Aaltosulkeet {} rajoittavat itse funktion rungon. { on funktion alkumerkki ja } on funktion loppumerkki. Kaikki käskyt, tiedot, määritykset, yms. kirjoitetaan aaltosulkeiden väliin. Funktion nimirivillä olevien kaarisulkeiden väliin kirjoitetaan funktion parametrit (tässä void, tyhjä, eli ei parametreja). Ne selvitetään myöhemmin. Ohjelman tekeminen alkaa lähdekoodista, source code. Se kirjoitetaan C-kielen kielioppisääntöjä noudattaen ja tallennetaan tavallisena ASCII-tekstinä tiedostoon. Lähdekoodista kääntäjä-ohjelma tekee objektitiedoston, object code, ja linkkeri-ohjelma, linker, yhdistää objektikoodin ja tarvittavat kirjastotiedostot ajettavaksi ohjelmatiedostoksi. Mitä c-käännös-prosessissa tapahtuu kerrotaan omassa pdf-tiedostossa. ASCII-koodi (American Standard Code for Information Interchange ) on Yhdysvalloissa kehitetty ja yhteisesti maailmanlaajuiseen käyttöön sovittu tapa merkitä kirjaimet ja numerot 7- (standardi ASCII) tai 8-bitin (laajennettu ASCII) paketteina. 6

Miksi main-funktion tyyppi on int? Funktion tyyppi kertoo sen palauttaman arvon tyypin. Main-funktio palauttaa arvon käyttöjärjestelmälle, muut fuktiot kutsujalleen. Tavallisesti sellaisen funktion tyypiksi, joka ei palauta arvoa, laitetaan void, tyhjä. Kun käytetään käyttöjärjestelmää, se kutsuu aina main()-funktiota, josta ohjelma alkaa/käynnistyy. Main-funktio palauttaa aina int-tyyppisen datan, muut funktiot voivat palauttaa kaikkea muutakin. Koodi kirjoitetaan GNU/Linux- tai Windows-koneen NetBeans-ohjelmassa, työnnetään SSHyhteydellä Raspi-koneeseen, käännetään ja ajetaan siellä. Ajotulos tulee verkon kautta NetBeansin editorin alle omaan ikkunaan. Ensimmäisen lähdekoodin kääntäminen Kun ohjelman lähdekoodi on valmis, se on käännettävä ARM-mikro-ohjaimen ymmärtämään muotoon. Kutsutaan C-kääntäjää klikkaamalla NetBeansin työkalurivin Built-painonappia, joka on vasara-kuvake. Jos koodi on kirjoitettu noudattaen C-kielen kielioppisääntöjä, NetBeansin alaosaan avautuu kääntämisen etenemisestä ja onnistumisesta/epäonnistumisesta kertovat viestit, notifications. Talleta C-kääntäjä C-käännös ja samantien ohjelman ajo Tärkeintä on ilmoitus BUILD SUCCESSFULL, onnistui eli ei käännösvirheitä. Jos virheitä ilmenee, tarkista lähdekoodin kirjoitusasu. Jos yksikin merkki on väärin, liikaa, puuttuu, tai on väärässä paikassa, niin kääntäjä ei ymmärrä koodia ja käännösprosessi keskeytyy. 7

Ensimmäisen lähdekoodin ajaminen Klikkaa työkalurillä olevaa vihreää nuolta. Jos käännös onnistui, niin ajokin onnistuu ja äskeiseen info-ikkunaan tulee tulostettava teksti. Ajotulos näkyy NetBeansin editorin alla olevassa ikkunassa. Vihreillä nuolilla voit ajaa ohjelman uudelleen. Punaisesta stop. Kun ajat ohjelman, hetken aikaa tulostuksen päällä on info-ikkuna joka kehoittaa kopioimaan käännetyn koodin Raspi-koneelta GNU/Linux-Mint- tai Windows-koneeseen. Klikkaa ja katsotaan mitä tapahtuu. Klikkauksen jälkeen avautuu uusi ikkuna, joka kertoo minne käännetty koodi talletetaan. NetBeansin asennuksen yhteydessä se tekee omaan Mint-koneeseen hakemiston NetBeansProjects, jonne talletetaan lähdekoodit ja niiden oheistiedostot. Nyt sinne tehdään dist-hakemisto alihakemistoineen ja hello-koodi talletetaan sinne. Huomaa, että hello on käännetty ARMprosessorille ja et voi ajaa sitä i386/x64-prosessoreissa. 8

Katsotaan ensin mitä polun päästä löytyy. Sama komentotulkin esittämänä. Siellä se on, kummallakin tavalla esitettynä. Puolipisteiden käytöstä Puolipiste (;) lopettaa c-koodirivin. Puolipiste kertoo kääntäjälle että komento on loppunut ja seuraava alkaa. Lähdekoodista tulee näin luettavampaa. Otetaan käyttöön periaate: Yksi rivi yksi komento. Rivinvaihto keno än eli \n on erikoismerkki rivinvaihtoon. Kokeile komentoja: printf ("RasPi on\n mainio\n tietokone"); printf ("RasPi on\nmainio\ntietokone"); printf ("RasPi\non\nmainio\ntietokone\n"); Tutki miten rivit tulostuvat. Keksi itse lisää. Harjoituksia. Jotta työskentely-ympäristö ja työkalut tulisivat tutuiksi tee esim tahallinen ohjelmointivirhe, vaikka käskysana väärin kirjoitettuna, jotta näet mitä sitten tapahtuu. 9