embedded linux - modrpc/info GitHub Wiki

Table of Contents

Overview

Device Drivers

Device Trees

Embedded Linux Basics

BIOS vs Bootloader

  • BIOS: immediately takes control after power-up

Execution Contexts

  • User context
  • Kernel context
  • Process context: application executes a system call that results in context switch and enters the kernel (all these are kernel code on behalf of a (user) process)
  • Interrupt context: device interrupts and kernel code, ISR, is being executed

ARM SOC

Overview

  • arm-soc git tree available
  • Organization
    • arch/arm: core ARM
      • arch/arm/{mach-exynos,...,mach-omap2}: machine dependent
        • Basic "initialization" C file + basic header files
      • arch/arm/{plat-samsung, ...}: platform depdennt
    • arch/arm/boot/dts: device tree (SoC and board)
    • subsystems
      • drivers/clocksource: Timer driver
      • drivers/irqchip: IRQ controller driver
      • drivers/pinctrl
      • drivers/gpio
      • drivers/clk
      • drivers/tty/serial: Serial port driver

Building Embedded Linux

Figure out the system size

  • What's the ROM size? Is it real ROM or NOR flash or NAND flash?
  • What is RAM size?
  • What are the peripherals?

Determine System Components

Configure and Build the Kernel

Build the Root Filesystem

Set up Boot Software and Configuration

⚠️ **GitHub.com Fallback** ⚠️