Skip to content

kerry96164/2024-EOS-Lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2024-EOS-Lab

1131 Embedded Operating Systems 嵌入式作業系統 Lab & Homework
NYCU EECN30062

Environment & Equipments

  • Ubuntu 22.04
  • Raspberry Pi 4 Model B

Lab

Lab 1: Setting up your Raspberry Pi

Prepare cross development environment for Raspberry Pi, and be familiar with Raspberry Pi.
Download and flash Rpi image. Then connect to the Internet.

Lab2: Build Kernel Image

Install the required dependencies and toolchain.
Then, download the Raspberry Pi kernel sources using git to build your own OS image.

Lab3: Driver (Part I) – Using GPIO in Raspberry Pi

撰寫 GPIO Driver ,並在程式中利用此 driver 控制 GPIO 腳位。

  • Lab3-1 學號跑馬燈-LED Array Demo
  • Lab3-2 學號跑馬燈-七段顯示器 Demo

Lab4: Driver (Part II)

Virtual Device and its Driver.
實作 Driver 的 read()write(),並與之互動。

  • Lab 4 簡易名字跑馬燈 Demo

Lab5: Task

Process programming (fork(), wait(), waitpid(), etc) and Socket.

  • Lab 5 東方快車 Demo

Lab6: Inter-Process Communication

Semaphore, Mutex, Pipe, Shared Memory.
透過 Semaphore 來處理同時存取造成的 Race Condition。

  • Lab 6 Web ATM Demo

Lab7: Signal & Timer

Signal, Timer, Shared Memory.
利用 SIGUSR1 通知另一 Process 去讀取 Shared Memory。

  • Lab 7 終極密碼 Demo

Homework

Hw1: 外送管理系統(單機版本)

完成外送管理系統 CLI,並和 Driver 互動,以使用 GPIO 控制 LED Array 及 7-Seg。

Hw2: 外送平台(單人連線版本)

利用 Socket 將 Hw1 改為連線版本。Demo

Hw3: 外送平台(多人連線版本)

利用 Process 將伺服器改成多人連線版本。利用 Shared Memory 紀錄送達時間,並利用 Semaphore 避免 Race Condition。
Demo

Final project

See https://github.com/kerry96164/2024-EOS-FinalProject

About

Lab and homework assignments for the NYCU EECN30062 Embedded Operating Systems course.

Resources

Stars

Watchers

Forks

Contributors