Embedded Linux programming (5 cr)
Code: TT00BW43-3005
General information
Enrollment
30.12.2024 - 26.01.2025
Timing
01.01.2025 - 31.07.2025
Number of ECTS credits allocated
5 op
Virtual portion
2 op
Mode of delivery
60 % Contact teaching, 40 % Distance learning
Unit
Teknologia
Teaching languages
- Finnish
Degree programmes
- Bachelor’s Degree in Information and Communication Technology
Teachers
- Eero Huusko
Groups
-
TTV23SATTV23SA
- 15.01.2025 08:30 - 11:45, Sulautettu Linux-ohjelmointi TT00BW43-3005
- 22.01.2025 08:30 - 11:45, Sulautettu Linux-ohjelmointi TT00BW43-3005
- 29.01.2025 08:30 - 11:45, Sulautettu Linux-ohjelmointi TT00BW43-3005
- 05.02.2025 08:30 - 11:45, Sulautettu Linux-ohjelmointi TT00BW43-3005
- 12.02.2025 08:30 - 11:45, Sulautettu Linux-ohjelmointi TT00BW43-3005
- 19.02.2025 08:30 - 11:45, Sulautettu Linux-ohjelmointi TT00BW43-3005
- 26.02.2025 08:30 - 11:45, Sulautettu Linux-ohjelmointi TT00BW43-3005
- 12.03.2025 08:30 - 11:45, Sulautettu Linux-ohjelmointi TT00BW43-3005
- 19.03.2025 08:30 - 11:45, Sulautettu Linux-ohjelmointi TT00BW43-3005
- 26.03.2025 08:30 - 11:45, Sulautettu Linux-ohjelmointi TT00BW43-3005
- 09.04.2025 08:30 - 11:45, Sulautettu Linux-ohjelmointi TT00BW43-3005
- 16.04.2025 08:30 - 11:45, Sulautettu Linux-ohjelmointi TT00BW43-3005
- 23.04.2025 08:30 - 11:45, Sulautettu Linux-ohjelmointi TT00BW43-3005
- 30.04.2025 08:30 - 11:45, Sulautettu Linux-ohjelmointi TT00BW43-3005
- 07.05.2025 08:30 - 11:45, Sulautettu Linux-ohjelmointi TT00BW43-3005
- 12.05.2025 08:30 - 11:45, Sulautettu Linux-ohjelmointi TT00BW43-3005
Objective
Linux-käyttöjärjestelmä ja sen sulautettu versio, mukaan lukien palvelinohjelmat, ovat kriittisiä komponentteja nykypäivän avainasemassa olevassa hajautetussa ja verkottuneessa esineiden internetissä (Internet of Things).
Alan ammattitaitoisten Linux-kehittäjien kysyntä kasvaa jatkuvasti. Kurssin tavoitteena on antaa opiskelijalle kaksi oleellista osaamista:
1.Hyvä teoreettinen perusta ja käytännöllinen, teollisuuden kannalta merkityksellinen tieto, joka kattaa Linux-järjestelmän ohjelmointialueen.
2. Sulautetun linux-järjestelmän (Embedded Linux) ohjelmointiosaamisen, mukaan lukien järjestelmäarkkitehtuurin, virtuaalimuistin, prosessien luomisen ja hallinnan, prosessien välisen signaloinnin, timerien käytön, monisäikeisen ohjelmoinnin, prosessien scheduloinnin ja tiedostojen I / O- ja socket-ohjelmointiin liittyvän osaamisen.
Sanaa sulautettu Linux (Embedded Linux)ei ole määritelty hyvin. Mutta sitä voidaan käyttää käyttöjärjestelmänä monenlaisissa laitteissa termostaateista tukiasemiin, Wi-Fi-reitittimiin ja teollisiin ohjausyksiköihin. Kurssilla opitaan, että sulautetulla Linuxilla on tärkeä tehtävä esineiden Internetissä (Internet of Things).
Sulautetun Linux ohjelmointi -kurssin opiskelija oppii Linux-arkkitehtuurin, Linux-ytimen rakenteen ja tehokkaiden sovellusten toteuttamisen C-kielellä sulautettuihin laitteisiin, joissa on PSoC piiri. Kurssin käytyään opiskelija hallitsee myös moniajojärjestelmään toteutettavien sovellusten suunnittelun ja toteutuksen sekä asiakas-palvelin ohjelmien toteutuksen.
Content
Sulautetun Linux ohjelmointi -kurssin sisältö painottuu UNIX / POSIX-ympäristössä tapahtuvaan ohjelmointiin käyttäen ANSI C:tä. Erityinen painopiste on Linux / Posix-järjestelmän vaatimissa systeemikutsuissa, prosessinohjauksessa, säikeistyksessä ja prosessien välisessä kommunikoinnissa. Eri I / O-tekniikkoiden läpikäynti, standardi-C-kirjaston I / O-toiminnot ja Unix/Linux systeemikutsut esitellään yksityiskohtaisesti.
Program Development Review
Multiprocessing & Multithreading
Posix Signal Handling
Linux Memory Management
UNIX/POSIX Files and File System
- File I/O
Local Interprocess Communication
- Using Signals for Interprocess Communication
- Kernel IPC Facilities
- Shared Memory
- Semaphores
- Mutex
- Message Queues
- Managing Kernel IPC Resources
- Pipes
- System calls
Socket programming
Timers
Boot to Qt (Raspberry pi)
Location and time
Linux-luokka, toteutus 3 ja 4 perioideilla.
Materials
Kurssimateriaali kurssin verkko-oppimisympäristössä ja erikseen jaettava materiaali.
Teaching methods
Teams- ja lähiopetus. Itsenäisesti tehtävät harjoitukset.
Exam schedules
Verkkotentti, uusintamahdollisuus konekoeuusintana.
Student workload
Kurssin laajuus 5 op.
Content scheduling
Kurssi etenee sulautetun linux-ohjelmoinnin perusteista käytännön sulautetun järjestelmän toteuttamiseen.
Further information
Kurssilla läsnäolo suositus. Edellytetään vähintään 80 % läsnöoloa lähiopetuksessa.
Evaluation scale
0 - 5
Assessment criteria, excellent (5)
Kurssi arvioidaan sekä tentin että palauttettujen harjoitusten perusteella.
Arvosana 5 edellyttää yli 90 % tehtävien palautusta ja kiitettävää arvosanaa tentistä.
Assessment criteria, good (3)
Kurssi arvioidaan sekä tentin että palauttettujen harjoitusten perusteella.
Arvosanat 3 tai 4 edellyttävää yli 70-80 % tehtävien palautusta ja arvosanaa hyvä tentistä.
Assessment criteria, satisfactory (1)
Kurssi arvioidaan sekä tentin että palauttettujen harjoitusten perusteella.
Arvosanat 1 tai 2 edellyttävää yli 50 - 60 % tehtävien palautusta ja arvosanaa välttävä tentistä.
Assessment methods and criteria
Harjoitustyökirjan tehtävien palautus max 260 p (Vapaavalintainen, mutta vaikuttaa oleellisesti kurssin arvosanaan)
Tentti (Labrakoe) (Moodlessa), maksimi 125 p (Pakollinen)
Maksimipistemäärä harjoitustyökirjan tehtävistä on 260 p, joten tee tehtäviä oman harkintasi mukaan. Harjoitustyökirjan tehtävistä saadut pisteet lasketaan yhteen tentistä saatujen pisteiden kanssa ja kurssin arvosana muodostuu tentin ja harjoitustyökirjan yhteispisteiden perusteella. Maksimipistemäärä Tentti + Harjoitustyökirja = 385 p.
Arviointi: 95 - 120 p = 1
121 - 160 p = 2
161 - 200 p = 3
201 - 250 p = 4
251 -> p = 5
Assessment criteria, fail (0)
Hylätty tentti
Assessment criteria, excellent (5)
Arviointi: 95 - 120 p = 1
121 - 160 p = 2
161 - 200 p = 3
201 - 250 p = 4
251 -> p = 5
Toteutuksen arviointikriteerit, hyvä (3-4)
Arviointi: 95 - 120 p = 1
121 - 160 p = 2
161 - 200 p = 3
201 - 250 p = 4
251 -> p = 5
Assessment criteria, satisfactory (1)
Arvosanaan 1 vaaditaan siis tentin läpäisy (väh. 95 p) ja läsnäolo kurssin (80 %) luennoilla.
Arviointi: 95 - 120 p = 1
121 - 160 p = 2
161 - 200 p = 3
201 - 250 p = 4
251 -> p = 5
Prerequisites
Esitietoina vaaditaan Linuxin perusosaaminen ja C-ohjelmointikurssin suoritus.
Further information
Kurssimateriaali on englanninkielinen. Kurssiin kuuluu itsenäisesti tehtävät harjoitukset.
TKI pisteet 2.