Skip to content

macreat/EmbeddedOnLinuxLR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 

Repository files navigation

EmbeddedOnLinuxLR

Learning route for my Embedded Systems on Linux course (UNAL 2025-2)

Course taught by Prof. Juan Bernardo Gomez Mendoza – Universidad Nacional de Colombia, Sede Manizales

status made-with platform


Course Overview

This repository documents the complete learning route for the course Programación de Sistemas Linux Embebidos (Embedded Linux Programming 4201152).
Students explore embedded systems development through Linux, from kernel space to user space, combining C, Python, and shell scripting.

Course Goals

  • Understand embedded Linux architecture and low-power SoC platforms.
  • Develop simple user- and kernel-space applications.
  • Work with drivers, APIs, and system-level software.
  • Integrate machine–machine (M2M) and human–machine (HMI) interfaces.

Methodology

  • Combination of lectures + hands-on labs.
  • Use of virtual machines, WSL, Docker, and SBCs (Raspberry Pi 3/4, BeaglePlay, Lichee RV, etc. (rapspberry pi used on this case)).
  • Tasks include writing C programs, shell scripts, kernel modules, and Python utilities.

Branch Strategy

To keep the work organized, this repo uses a branching model:

  • main
    Main branch. Contains stable, reviewed, and clean code/documentation.
    Always reflects the state of the project that is ready to be delivered or referenced.

  • dev
    Development branch. Contains ongoing work and integrates features before merging into main.
    All new features or experiments should be branched off dev.


Repository Structure

EmbeddedOnLinuxLR/
├── content/
├── work/
│   ├── work/
│   ├── code/
├── project/
│       ├── Include/ | Lib/ | nbs/ | Scripts/
└── README.md

Practical Workflow

sudo apt install build-essential git libncurses5-dev
make
./cpuInfo
python3 -m venv work/embeddedOnLinuxPYDevEnv
source work/embeddedOnLinuxPYDevEnv/bin/activate

Key Concepts Summary

  • Linux services = daemons managed by systemd.
  • /proc = virtual filesystem for kernel info.
  • Embedded Linux = multi-layered abstraction system.
  • Debugging tools: valgrind, ddd, kcachegrind.
  • ncurses enables TUI interaction for resource monitoring.

Notes and Resources

all course contente inside content dir

work in progress inside dev Env dir


Roadmap

  • Repository structure and environment setup
  • Import lecture notes and materials
  • task as : -rial time monitor resource -Kernel module exercise (heartbeat service) -Raspberry Pi deployment, conection and SSH access -Call-graph visualization in Python and C -services implementation -modular and polymorphism implementation
  • project advances
  • project delivery

Author

Mateo Almeida (Macreat)
Course: Embedded Systems on Linux @ UNAL 2025-2
GitHub: @Macreat


License

x
For academic and learning purposes only.

About

Learning route for my Embedded Systems on Linux course taught by Prof. Juan Bernardo Mendoza at UNAL, 2025-2.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors