SlideShare una empresa de Scribd logo
1 de 56
Descargar para leer sin conexión
Embedded Linux on
              ARM




                                 Chia Che Lee
                                       李嘉哲

Home Automation, Networking, and Entertainment Lab
Dept. of Computer Science and Information Engineering
National Cheng Kung University
Tool chains
OUTLINE
               Bootloader
               Building Linux kernel
               Linux device driver
               GUI




            Department of Computer Science and Information Engineering
    HANEL   National Cheng Kung University                               2
A collection of tools used to develop for
Tool chains
                  a particular hardware target (e.g.
                  embedded system)
                  Often used in the context of building
                  software on one system which will be
                  installed or run on some
                  other device (e.g. embedded system)
                  the chain of tools usually consists of
                  such items as a particular version of a
                  compiler, libraries, assembler, special
                  headers, etc.


               Department of Computer Science and Information Engineering
       HANEL   National Cheng Kung University                               3
The Advantage of understanding
Tool chains
                  tool-chain :
                      Any project that requires an embedded
                      processor also requires software-
                      development tools.
                      Be advantage to develop new embedded
                      system by developing own tool-chain




               Department of Computer Science and Information Engineering
       HANEL   National Cheng Kung University                               4
Tool chains

 The role of
  toolchain




                Department of Computer Science and Information Engineering
        HANEL   National Cheng Kung University                               5
Source              Source              Source
Tool chains            code                code                code


Compile flow         compiler            compiler            compiler
   chart

                     Assembly            Assembly            Assembly
                       code                code                code



                     Assembler          Assembler            Assembler



                      object              object              object
                       code                code                code




                                                             Executabl
                     Libraries            Linker             e code
                                                                code


               Department of Computer Science and Information Engineering
       HANEL   National Cheng Kung University                               6
GNU is a complete, Unix-like operating
Tool chains
                    system that has been in development
 Why using the      for just over twenty years
GNU Tool-chain      GNU software is known for it's stability
                    and standard compliance
                    GNU tool-chain is open source which be
                    easy to modify




                 Department of Computer Science and Information Engineering
        HANEL    National Cheng Kung University                               7
The GNU toolchain consists :
Tool chains
                      Compiler – gcc
                      Assembler – binutils : as
                      Linker-- binutils : ld
                      Library– glibc
                      Debugger-- gdb




               Department of Computer Science and Information Engineering
       HANEL   National Cheng Kung University                               8
gcc is a full-featured ANSI C compiler
Tool chains
                  with support for C, C++, Objective C,
 gcc - GNU        Java, and Fortran
  Compiler
 Collection
                  GCC provides many levels of source
                  code error checking , produces
                  debugging information, and can
                  perform many different optimizations to
                  the resulting object code




               Department of Computer Science and Information Engineering
       HANEL   National Cheng Kung University                               9
The GNU Compiler for Java is now
Tool chains
                  integrated and supported: GCJ can
 gcc - GNU        compile Java source or Java bytecodes
  Compiler        to either native code or Java class files
 Collection
                  GCC now supports the Intel IA-64
                  processor, so completely free software
                  systems will be able to run on the IA-
                  64 architecture as soon as it is released.




               Department of Computer Science and Information Engineering
       HANEL   National Cheng Kung University                               10
Binutils are a collection of binary tools
Tool chains
                  like assembler, linker, disassembler … .
GNU Binutils      Binutils is to create and manipulate
                  binary executable files.
                  The main tools for Binutils
                      ld - the GNU linker.
                      as - the GNU assembler.




               Department of Computer Science and Information Engineering
       HANEL   National Cheng Kung University                               11
Any Unix-like operating system needs a
Tool chains        C library ( defines the ‘’system calls''
GNU C Library
                   and other basic facilities such as open,
                   malloc, printf, exit... )
                   The GNU C library is used as the C
                   library in the GNU system and most
                   systems with the Linux kernel.
                   The GNU C library is a large blob of
                   glue code, which tries to give it's best
                   to hide kernel specific functions from
                   you. (e.g. You can use the same
                   function name and do not care the
                   difference between different kernel )

                Department of Computer Science and Information Engineering
        HANEL   National Cheng Kung University                               12
Tool chains
                  GDB : The GNU Project Debugger
What is GDB       Allows you to see what is going on
                  `inside' another program while it
                  executes
                  Allows you to see what another
                  program was doing at the moment it
                  crashed
                  GDB can run on most popular UNIX and
                  Microsoft Windows variants.



               Department of Computer Science and Information Engineering
       HANEL   National Cheng Kung University                               13
Supported Languages
Tool chains
                          C
   GDB                    C++
                          Pascal
                          Objective-C
                          Many other languages




               Department of Computer Science and Information Engineering
       HANEL   National Cheng Kung University                               14
Bootloader is mainly responsible for
Bootloader
                 loading the kernel, it is an very
                 important component
                 Many bootloaders can be used with
                 Linux on various hardware
                     LOIO
                     GRUB
                     LinuxBIOS
                     Redboot
                     U-boot
                     ……



              Department of Computer Science and Information Engineering
      HANEL   National Cheng Kung University                               15
Bootloader




              Department of Computer Science and Information Engineering
      HANEL   National Cheng Kung University                               16
The simple code will be execute after
Bootloader
                 you power on your target ( Sometimes
                 we call it “boot monitor” )
                 Embedded System bootloader should
                 do:
                  1.   Initialize Hardware: processor and memory
                  2.   Loading kernel image and execute kernel
                       (sometimes it need to transfer parameter
                       to linux kernel)




              Department of Computer Science and Information Engineering
      HANEL   National Cheng Kung University                               17
Bootloader




              Department of Computer Science and Information Engineering
      HANEL   National Cheng Kung University                               18
Bootloader
                             Boot Loader
                 reset;
                 ;Reset Code
                 ;(in assembly)
                 Jmp hw_init

                 Hw_init
                 ;Hardware                     Main()
                 ;Initialization               {
                 ;(in assembly)                /*The C/C++ program start here*/
                 ….                            }
                 Jmp startup


                 Startup;
                 ;startup code                     NoOS/OS Code
                 ;(in assembly)
                 ……
                 Call main



              Department of Computer Science and Information Engineering
      HANEL   National Cheng Kung University                                  19
Part1
                    Jump 0x00900000
Bootloader       Part2
                    Initialize the actual hardware
                    Set cpu mode
                 Part3
                    Disable all interrupts
                    Copy any initialized data from ROM to RAM
                    Zero the uninitialized data area
                    Allocation space for and initialize the stack
                    Initialize the processor’s stack pointer
                    Create and initialize the heap
                    Execute the constructors and initializers for all
                    global variables (C++)
                    Enable interrupts
                    Call main
                 Part4
                    Program C/C++ code


              Department of Computer Science and Information Engineering
      HANEL   National Cheng Kung University                               20
Bootloader




              Department of Computer Science and Information Engineering
      HANEL   National Cheng Kung University                               21
Three different host/target
Building Linux
    kernel
                    architectures are available for the
                    development of embedded Linux
                    systems:
                        Linked setup
                        Removable storage setup
                        Standalone setup
                    Your actual setup may belong to more
                    than one category or may even change
                    categories over time, depending on
                    your requirements and development
                    methodology

                 Department of Computer Science and Information Engineering
        HANEL    National Cheng Kung University                               22
The target and the host are
Building Linux
    kernel
                    permanently linked together using a
                    physical cable
Linked Setup            This link is typically a serial cable or an
                        Ethernet link
                        All transfers occur via the link


                             Host                          Target


                        *Cross-platform                *Bootloader
                        development                    *Kernel
                        environment
                                                       *Root filesystem




                 Department of Computer Science and Information Engineering
        HANEL    National Cheng Kung University                               23
The kernel could be available via Trivial
Building Linux      File Transfer Protocol (TFTP)
    kernel
                    The root filesystem could also be NFS
Linked Setup        mounted instead of being on a storage
    (cont’)         media in the target
                        Using an NFS-mounted root filesystem is
                        actually perfect during development,
                        because it avoids having to constantly copy
                        program modifications between the host
                        and the target
                    The physical link can also be used for
                    debugging purposes
                        Many embedded systems provide both
                        Ethernet and RS232 link capabilities

                 Department of Computer Science and Information Engineering
         HANEL   National Cheng Kung University                               24
A storage device is written by the host,
Building Linux
    kernel
                    is then transferred into the target, and
                    is used to boot the device
 Removable
Storage Setup


                        Host                                     Target


                    *Cross-platform
                    development                               *Bootloader
                    environment


                                      *Secondary bootloader
                                      *Kernel
                                      *Root filesystem

                 Department of Computer Science and Information Engineering
        HANEL    National Cheng Kung University                               25
The target contains only a minimal
Building Linux      bootloader
    kernel
                        The rest of the components are stored on a
 Removable              removable storage media, such as a
Storage Setup           CompactFlash IDE device or any other type
    (cont’)             of drive
                    Instead of a fixed flash chip, the target
                    could contain a socket where a flash
                    chip could be easily inserted and
                    removed
                        The chip would be programmed by a flash
                        programmer on the host and inserted into
                        the socket in the target for normal
                        operation
                 Department of Computer Science and Information Engineering
         HANEL   National Cheng Kung University                               26
This setup is mostly popular during the
Building Linux
    kernel
                    initial phases of embedded system
                    development
 Removable              You may find it more practical to move on
Storage Setup           to a linked setup once the initial
    (cont’)             development phase is over
                            you can avoid the need to physically transfer a
                            storage device between the target and the host
                            every time a change has to be made to the
                            kernel or the root filesystem




                 Department of Computer Science and Information Engineering
         HANEL   National Cheng Kung University                               27
The target is a self-contained
Building Linux
    kernel
                    development system and includes all
                    the required software to boot, operate,
 Standalone         and develop additional software
    Setup               This setup is similar to an actual
                        workstation, except the underlying
                        hardware is not a conventional workstation
                        but rather the embedded system itself

                                             Target
                                      *Bootloader
                                      *Kernel
                                      *Full root filesystem
                                      *Native development
                                      environment

                 Department of Computer Science and Information Engineering
        HANEL    National Cheng Kung University                               28
This type of setup is quite popular with
Building Linux      developers building high-end PC-based
    kernel
                    embedded systems, such as high-
 Standalone         availability systems
    Setup               They can use standard off-the-shelf Linux
    (cont’)             distributions on the embedded system
                        Once development is done, they then work
                        at trimming down the distribution and
                        customizing it for their purposes
                    This gets developers around having to
                    build their own root filesystems and
                    configure the systems' startup
                        It requires that they know the particular
                        distribution they are using inside out
                 Department of Computer Science and Information Engineering
         HANEL   National Cheng Kung University                               29
There are some broad characteristics
Building Linux
    kernel
                      expected from the hardware to run a
                      Linux system:
                     1.   Linux requires at least a 32-bit CPU
                          containing a memory management unit
                          (MMU)
                     2.   a sufficient amount of RAM must be
                          available to accommodate the system.
                     3.   minimal I/O capabilities are required if
                          any development is to be carried out on
                          the target with reasonable debugging
                          facilities.



                 Department of Computer Science and Information Engineering
        HANEL    National Cheng Kung University                               30
There are three different setups used
Building Linux
    kernel
                    to bootstrap an embedded Linux
                    system:
                        Solid state storage media
                        Disk
                        Network




                 Department of Computer Science and Information Engineering
        HANEL    National Cheng Kung University                               31
Solid state storage media
Building Linux
    kernel                Boot
                       parameter




                                Kernel       Root file system




                   Bootloader




                 Department of Computer Science and Information Engineering
        HANEL    National Cheng Kung University                               32
Building Linux       Disk
    kernel




                 Department of Computer Science and Information Engineering
        HANEL    National Cheng Kung University                               33
Building Linux
    kernel




                 Department of Computer Science and Information Engineering
        HANEL    National Cheng Kung University                               34
Network
Building Linux
    kernel              the kernel resides on a solid state storage
                        media or a disk, and the root filesystem is
                        mounted via NFS
                        only the bootloader resides on a local
                        storage media. The kernel is then
                        downloaded via TFTP, and the root
                        filesystem is mounted via NFS




                 Department of Computer Science and Information Engineering
        HANEL    National Cheng Kung University                               35
U ser program s


Building Linux
    kernel
                                                              L ibraries

                 U ser Level
                 K ernel L evel
                                                 System C all Interface



                               file subsystem                                     IPC



                                         buffer                                Scheduler
                                         cache                L inux
                                                                                M em ory
                                                                              m anagem ent
                        character        block

                               device drivers


                                                H ardw are control (H A L )
                 K ernel Level
                 H ardw are Level
                 Department of Computer Science and Information Engineering
        HANEL                              H ardw are
                 National Cheng Kung University                                              36
Device Driver




                Department of Computer Science and Information Engineering
        HANEL   National Cheng Kung University                               37
Classes of Devices and Modules
Device driver
                       Character devices
                       Block devices
                       Network interfaces




                Department of Computer Science and Information Engineering
        HANEL   National Cheng Kung University                               38
A character (char) device is one that
Device driver
                      can be accessed as a stream of bytes
Character devices     (like a file)
                      Driver usually implements at least the
                      open, close, read, and write system
                      calls.
                      The text console (/dev/console) and
                      the serial ports (/dev/ttyS0) are
                      examples of char devices.
                      char devices are just data channels,
                      which you can only access sequentially.


                    Department of Computer Science and Information Engineering
          HANEL     National Cheng Kung University                               39
Like char devices, block devices are
Device driver
                   accessed by filesystem nodes in the
Block devices      /dev directory. A block device is
                   something that can host a filesystem,
                   such as a disk.




                Department of Computer Science and Information Engineering
        HANEL   National Cheng Kung University                               40
Any network transaction is made
Device driver
                   through an interface, that is, a device
   Network         that is able to exchange data with
  interfaces
                   other hosts.
                   Network interface was look as a Queue
                   The Unix way to provide access to
                   interfaces is still by assigning a unique
                   name to them (such as eth0).




                Department of Computer Science and Information Engineering
        HANEL   National Cheng Kung University                               41
Hello World




              Department of Computer Science and Information Engineering
      HANEL   National Cheng Kung University                               42
Whereas an application performs a
Kernel module     single task from beginning to end, a
      vs          module registers itself in order to serve
 Application
                  future requests, and its “main” function
                  terminates immediately.

                  the task of the function init_module
                  (the module’s entry point) is to prepare
                  for later invocation of the module’s
                  functions.The second entry point of a
                  module, cleanup_module, gets
                  invoked just before the module is
                  unloaded.

                Department of Computer Science and Information Engineering
       HANEL    National Cheng Kung University                               43
Department of Computer Science and Information Engineering
HANEL   National Cheng Kung University                               44
Init_module()
Init_module()
                   for each facility, there is a specific
                   kernel function that accomplishes this
                   registration. The arguments passed to
                   the kernel registration functions are
                   usually a pointer to a data structure
                   describing the new facility and the
                   name of the facility being registered.




                Department of Computer Science and Information Engineering
       HANEL    National Cheng Kung University                               45
cleanup_module()
cleanup_modu
      le          To unload a module, use the rmmod
                  command. Its task is much simpler
                  than
                  loading, since no linking has to be
                  performed. The command invokes the
                  delete_module system call, which calls
                  cleanup_module in the module itself if
                  the usage count is zero or returns an
                  error otherwise.



               Department of Computer Science and Information Engineering
       HANEL   National Cheng Kung University                               46
The job of a typical driver is, for the
I/O Regions
                 most part, writing and reading I/O
                 ports and I/O memory.
                 Access to I/O ports and I/O memory
                 (collectively called I/O regions)
                 happens both at initialization time and
                 during normal operations.




              Department of Computer Science and Information Engineering
      HANEL   National Cheng Kung University                               47
A typical /proc/ioports file on a recent PC that is running
               version 2.4 of the kernel will look like the following:
               0000-001f : dma1
I/O Port       0020-003f : pic1
               0040-005f : timer
               0060-006f : keyboard
               0080-008f : dma page reg
               00a0-00bf : pic2
               00c0-00df : dma2
               00f0-00ff : fpu
               0170-0177 : ide1
               01f0-01f7 : ide0
               02f8-02ff : serial(set)
               0300-031f : NE2000
               0376-0376 : ide1
               03c0-03df : vga+
               03f6-03f6 : ide0
               03f8-03ff : serial(set)
               1000-103f : Intel Corporation 82371AB PIIX4 ACPI
               1000-1003 : acpi
               1004-1005 : acpi
               1008-100b : acpi
               100c-100f : acpi
               1100-110f : Intel Corporation 82371AB PIIX4 IDE
               1300-131f : pcnet_cs
               1400-141f : Intel Corporation 82371AB PIIX4 ACPI
               1800-18ff : PCI CardBus #02
               1c00-1cff : PCI CardBus #04
               5800-581f : Intel Corporation 82371AB PIIX4 USB
               d000-dfff : PCI Bus #01
               d000-d0ff : ATI Technologies Inc 3D Rage LT Pro AGP-133


             Department of Computer Science and Information Engineering
     HANEL   National Cheng Kung University                                  48
I/O memory information is available in
I/O Memory
                 the /proc/iomem file.




              Department of Computer Science and Information Engineering
      HANEL   National Cheng Kung University                               49
Major and Minor Numbers
Chars Drivers     Special files for char drivers are Major
                  and Minor Numbers identified by a “c”
                  in the first column of the output of ls –l.
                  Block devices appear in /dev as well,
                  but they are identified by a “b.”
                  Use ls –l /dev commend to check.




                Department of Computer Science and Information Engineering
        HANEL   National Cheng Kung University                               50
The kernel uses the major number at
Chars Drivers
                  open time to dispatch execution to the
                  appropriate driver
                  The minor number is used only by the
                  driver specified by the major number

                  mknod /dev/scull0 c 254 0

                  creates a char device (c) whose major
                  number is 254 and whose minor
                  number is 0.

                Department of Computer Science and Information Engineering
        HANEL   National Cheng Kung University                               51
QT & QT Embedded
GUI
             DirectFB




          Department of Computer Science and Information Engineering
  HANEL   National Cheng Kung University                               52
Qt is a C++ class library for writing GUI
  GUI
                applications that run on UNIX, Windows
 QT & QT        95/98, and Windows NT platforms
Embedded        Qt/Embedded, the embedded Linux
                port of Qt, is a complete and self-
                contained C++ GUI and platform
                development tool for Linux-based
                embedded development.




             Department of Computer Science and Information Engineering
     HANEL   National Cheng Kung University                               53
GUI

 QT & QT
Embedded




             Department of Computer Science and Information Engineering
     HANEL   National Cheng Kung University                               54
GUI

DirectFB




             Department of Computer Science and Information Engineering
     HANEL   National Cheng Kung University                               55
GUI

DirectFB




             Department of Computer Science and Information Engineering
     HANEL   National Cheng Kung University                               56

Más contenido relacionado

La actualidad más candente

Embedded Os [Linux & Co.]
Embedded Os [Linux & Co.]Embedded Os [Linux & Co.]
Embedded Os [Linux & Co.]Ionela
 
Building Embedded Linux
Building Embedded LinuxBuilding Embedded Linux
Building Embedded LinuxSherif Mousa
 
Building Mini Embedded Linux System for X86 Arch
Building Mini Embedded Linux System for X86 ArchBuilding Mini Embedded Linux System for X86 Arch
Building Mini Embedded Linux System for X86 ArchSherif Mousa
 
Introduction to embedded linux device driver and firmware
Introduction to embedded linux device driver and firmwareIntroduction to embedded linux device driver and firmware
Introduction to embedded linux device driver and firmwaredefinecareer
 
linux device driver
linux device driverlinux device driver
linux device driverRahul Batra
 
Yocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerYocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerSherif Mousa
 
Linux for embedded_systems
Linux for embedded_systemsLinux for embedded_systems
Linux for embedded_systemsVandana Salve
 
Linux device driver
Linux device driverLinux device driver
Linux device driverchatsiri
 
Eclipse IDE Yocto Plugin
Eclipse IDE Yocto PluginEclipse IDE Yocto Plugin
Eclipse IDE Yocto Plugincudma
 

La actualidad más candente (20)

Embedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernelEmbedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernel
 
Embedded Os [Linux & Co.]
Embedded Os [Linux & Co.]Embedded Os [Linux & Co.]
Embedded Os [Linux & Co.]
 
Building Embedded Linux
Building Embedded LinuxBuilding Embedded Linux
Building Embedded Linux
 
Embedded Linux
Embedded LinuxEmbedded Linux
Embedded Linux
 
Building Mini Embedded Linux System for X86 Arch
Building Mini Embedded Linux System for X86 ArchBuilding Mini Embedded Linux System for X86 Arch
Building Mini Embedded Linux System for X86 Arch
 
Introduction to embedded linux device driver and firmware
Introduction to embedded linux device driver and firmwareIntroduction to embedded linux device driver and firmware
Introduction to embedded linux device driver and firmware
 
linux device driver
linux device driverlinux device driver
linux device driver
 
Linux Internals - Part I
Linux Internals - Part ILinux Internals - Part I
Linux Internals - Part I
 
Yocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerYocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution Maker
 
Linux for embedded_systems
Linux for embedded_systemsLinux for embedded_systems
Linux for embedded_systems
 
Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)
 
Linux device driver
Linux device driverLinux device driver
Linux device driver
 
Linux programming - Getting self started
Linux programming - Getting self started Linux programming - Getting self started
Linux programming - Getting self started
 
Embedded Android : System Development - Part I
Embedded Android : System Development - Part IEmbedded Android : System Development - Part I
Embedded Android : System Development - Part I
 
Eclipse IDE Yocto Plugin
Eclipse IDE Yocto PluginEclipse IDE Yocto Plugin
Eclipse IDE Yocto Plugin
 
Nachos
NachosNachos
Nachos
 
Embedded Linux on ARM
Embedded Linux on ARMEmbedded Linux on ARM
Embedded Linux on ARM
 
Device Drivers
Device DriversDevice Drivers
Device Drivers
 
Linux Programming
Linux ProgrammingLinux Programming
Linux Programming
 
Intro to Embedded OS, RTOS and Communication Protocols
Intro to Embedded OS, RTOS and Communication ProtocolsIntro to Embedded OS, RTOS and Communication Protocols
Intro to Embedded OS, RTOS and Communication Protocols
 

Destacado

Alticast mhp solution
Alticast mhp solutionAlticast mhp solution
Alticast mhp solutionRyan Park
 
Trellis Framework At RubyWebConf
Trellis Framework At RubyWebConfTrellis Framework At RubyWebConf
Trellis Framework At RubyWebConfBrian Sam-Bodden
 
Building Linux IPv6 DNS Server (Complete Soft Copy)
Building Linux IPv6 DNS Server (Complete Soft Copy)Building Linux IPv6 DNS Server (Complete Soft Copy)
Building Linux IPv6 DNS Server (Complete Soft Copy)Hari
 
Job Automation using Linux
Job Automation using LinuxJob Automation using Linux
Job Automation using LinuxJishnu Pradeep
 
Linux server administration for non expert users
Linux server administration for non expert users Linux server administration for non expert users
Linux server administration for non expert users Alessio Fattorini
 
A minor project report HOME AUTOMATION USING MOBILE PHONES
A minor project report HOME AUTOMATION  USING  MOBILE PHONESA minor project report HOME AUTOMATION  USING  MOBILE PHONES
A minor project report HOME AUTOMATION USING MOBILE PHONESashokkok
 
Hacking with ARM devices on Linux
Hacking with ARM devices on Linux Hacking with ARM devices on Linux
Hacking with ARM devices on Linux Netwalker lab kapper
 
Presentation Smart Home With Home Automation
Presentation Smart Home With Home AutomationPresentation Smart Home With Home Automation
Presentation Smart Home With Home AutomationArifur Rahman
 
Home automation using android mobiles
Home automation using android mobilesHome automation using android mobiles
Home automation using android mobilesDurairaja
 
Slideshare Powerpoint presentation
Slideshare Powerpoint presentationSlideshare Powerpoint presentation
Slideshare Powerpoint presentationelliehood
 

Destacado (14)

Alticast mhp solution
Alticast mhp solutionAlticast mhp solution
Alticast mhp solution
 
Trellis Framework At RubyWebConf
Trellis Framework At RubyWebConfTrellis Framework At RubyWebConf
Trellis Framework At RubyWebConf
 
Building Linux IPv6 DNS Server (Complete Soft Copy)
Building Linux IPv6 DNS Server (Complete Soft Copy)Building Linux IPv6 DNS Server (Complete Soft Copy)
Building Linux IPv6 DNS Server (Complete Soft Copy)
 
Job Automation using Linux
Job Automation using LinuxJob Automation using Linux
Job Automation using Linux
 
ARM Architecture
ARM ArchitectureARM Architecture
ARM Architecture
 
Linux server administration for non expert users
Linux server administration for non expert users Linux server administration for non expert users
Linux server administration for non expert users
 
A minor project report HOME AUTOMATION USING MOBILE PHONES
A minor project report HOME AUTOMATION  USING  MOBILE PHONESA minor project report HOME AUTOMATION  USING  MOBILE PHONES
A minor project report HOME AUTOMATION USING MOBILE PHONES
 
Hacking with ARM devices on Linux
Hacking with ARM devices on Linux Hacking with ARM devices on Linux
Hacking with ARM devices on Linux
 
ARM Processor
ARM ProcessorARM Processor
ARM Processor
 
Bootloaders
BootloadersBootloaders
Bootloaders
 
Presentation Smart Home With Home Automation
Presentation Smart Home With Home AutomationPresentation Smart Home With Home Automation
Presentation Smart Home With Home Automation
 
Home automation using android mobiles
Home automation using android mobilesHome automation using android mobiles
Home automation using android mobiles
 
Introduction to ARM Architecture
Introduction to ARM ArchitectureIntroduction to ARM Architecture
Introduction to ARM Architecture
 
Slideshare Powerpoint presentation
Slideshare Powerpoint presentationSlideshare Powerpoint presentation
Slideshare Powerpoint presentation
 

Similar a Embedded Linux On A R M

Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMSherif Mousa
 
Free/Open Source Software for Science & Engineering
Free/Open Source Software for Science & EngineeringFree/Open Source Software for Science & Engineering
Free/Open Source Software for Science & EngineeringKinshuk Sunil
 
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...Pradeep Singh
 
Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3Opersys inc.
 
Linux on System z Update: Current & Future Linux on System z Technology
Linux on System z Update: Current & Future Linux on System z TechnologyLinux on System z Update: Current & Future Linux on System z Technology
Linux on System z Update: Current & Future Linux on System z TechnologyIBM India Smarter Computing
 
oneAPI: Industry Initiative & Intel Product
oneAPI: Industry Initiative & Intel ProductoneAPI: Industry Initiative & Intel Product
oneAPI: Industry Initiative & Intel ProductTyrone Systems
 
Cooperative Linux
Cooperative LinuxCooperative Linux
Cooperative LinuxAnkit Singh
 
Leveraging Android's Linux Heritage at AnDevCon IV
Leveraging Android's Linux Heritage at AnDevCon IVLeveraging Android's Linux Heritage at AnDevCon IV
Leveraging Android's Linux Heritage at AnDevCon IVOpersys inc.
 
Advance Android Application Development
Advance Android Application DevelopmentAdvance Android Application Development
Advance Android Application DevelopmentRamesh Prasad
 
Rasperry pi Part 9
Rasperry pi Part 9Rasperry pi Part 9
Rasperry pi Part 9Techvilla
 
Jtag Tools For Linux
Jtag Tools For LinuxJtag Tools For Linux
Jtag Tools For Linuxsheilamia
 
Multicore development environment for embedded processor in arduino IDE
Multicore development environment for embedded processor in arduino IDEMulticore development environment for embedded processor in arduino IDE
Multicore development environment for embedded processor in arduino IDETELKOMNIKA JOURNAL
 
Autotools pratical training
Autotools pratical trainingAutotools pratical training
Autotools pratical trainingThierry Gayet
 
Iirdem design and implementation of finger writing in air by using open cv (c...
Iirdem design and implementation of finger writing in air by using open cv (c...Iirdem design and implementation of finger writing in air by using open cv (c...
Iirdem design and implementation of finger writing in air by using open cv (c...Iaetsd Iaetsd
 
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteUnit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteTushar B Kute
 

Similar a Embedded Linux On A R M (20)

Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARM
 
Free/Open Source Software for Science & Engineering
Free/Open Source Software for Science & EngineeringFree/Open Source Software for Science & Engineering
Free/Open Source Software for Science & Engineering
 
Linux
Linux Linux
Linux
 
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
 
Intro to linux
Intro to linux Intro to linux
Intro to linux
 
Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3
 
Embedded Systems
Embedded SystemsEmbedded Systems
Embedded Systems
 
Linux on System z Update: Current & Future Linux on System z Technology
Linux on System z Update: Current & Future Linux on System z TechnologyLinux on System z Update: Current & Future Linux on System z Technology
Linux on System z Update: Current & Future Linux on System z Technology
 
oneAPI: Industry Initiative & Intel Product
oneAPI: Industry Initiative & Intel ProductoneAPI: Industry Initiative & Intel Product
oneAPI: Industry Initiative & Intel Product
 
Cooperative Linux
Cooperative LinuxCooperative Linux
Cooperative Linux
 
Leveraging Android's Linux Heritage at AnDevCon IV
Leveraging Android's Linux Heritage at AnDevCon IVLeveraging Android's Linux Heritage at AnDevCon IV
Leveraging Android's Linux Heritage at AnDevCon IV
 
Advance Android Application Development
Advance Android Application DevelopmentAdvance Android Application Development
Advance Android Application Development
 
Rasperry pi Part 9
Rasperry pi Part 9Rasperry pi Part 9
Rasperry pi Part 9
 
resume
resumeresume
resume
 
Linux internals v4
Linux internals v4Linux internals v4
Linux internals v4
 
Jtag Tools For Linux
Jtag Tools For LinuxJtag Tools For Linux
Jtag Tools For Linux
 
Multicore development environment for embedded processor in arduino IDE
Multicore development environment for embedded processor in arduino IDEMulticore development environment for embedded processor in arduino IDE
Multicore development environment for embedded processor in arduino IDE
 
Autotools pratical training
Autotools pratical trainingAutotools pratical training
Autotools pratical training
 
Iirdem design and implementation of finger writing in air by using open cv (c...
Iirdem design and implementation of finger writing in air by using open cv (c...Iirdem design and implementation of finger writing in air by using open cv (c...
Iirdem design and implementation of finger writing in air by using open cv (c...
 
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteUnit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
 

Más de Emanuele Bonanni

Intervista a Emanuele Bonanni sul trading online (Economy mag)
Intervista a Emanuele Bonanni sul trading online (Economy mag)Intervista a Emanuele Bonanni sul trading online (Economy mag)
Intervista a Emanuele Bonanni sul trading online (Economy mag)Emanuele Bonanni
 
Progettare con Arduino come un Ingegnere
Progettare con Arduino come un IngegnereProgettare con Arduino come un Ingegnere
Progettare con Arduino come un IngegnereEmanuele Bonanni
 
la-progettazione-elettronica-al-tempo-della-globalizzazione
la-progettazione-elettronica-al-tempo-della-globalizzazionela-progettazione-elettronica-al-tempo-della-globalizzazione
la-progettazione-elettronica-al-tempo-della-globalizzazioneEmanuele Bonanni
 
Come rendere Arduino professionale
Come rendere Arduino professionaleCome rendere Arduino professionale
Come rendere Arduino professionaleEmanuele Bonanni
 
Come progettare un dispositivo wearable
Come progettare un dispositivo wearableCome progettare un dispositivo wearable
Come progettare un dispositivo wearableEmanuele Bonanni
 
Technology ESP - Intuizione al TEDx
Technology ESP - Intuizione al TEDxTechnology ESP - Intuizione al TEDx
Technology ESP - Intuizione al TEDxEmanuele Bonanni
 
PCB ART 2 - L'arte dello sbroglio dei circuiti stampati [parte seconda]
PCB ART 2 - L'arte dello sbroglio dei circuiti stampati [parte seconda]PCB ART 2 - L'arte dello sbroglio dei circuiti stampati [parte seconda]
PCB ART 2 - L'arte dello sbroglio dei circuiti stampati [parte seconda]Emanuele Bonanni
 
Arduino ai raggi x rendiamolo professionale
Arduino ai raggi x  rendiamolo professionaleArduino ai raggi x  rendiamolo professionale
Arduino ai raggi x rendiamolo professionaleEmanuele Bonanni
 
La progettazione elettronica in tempo di crisi
La progettazione elettronica in tempo di crisiLa progettazione elettronica in tempo di crisi
La progettazione elettronica in tempo di crisiEmanuele Bonanni
 
Startup errors | Tutti i miei sbagli
Startup errors | Tutti i miei sbagliStartup errors | Tutti i miei sbagli
Startup errors | Tutti i miei sbagliEmanuele Bonanni
 
L'arte dello sbroglio dei Circuiti Stampati
L'arte dello sbroglio dei Circuiti StampatiL'arte dello sbroglio dei Circuiti Stampati
L'arte dello sbroglio dei Circuiti StampatiEmanuele Bonanni
 
Thinking in SEO (grey hat)
Thinking in SEO (grey hat)Thinking in SEO (grey hat)
Thinking in SEO (grey hat)Emanuele Bonanni
 
An Easy Timer In C Language2
An Easy Timer In C Language2An Easy Timer In C Language2
An Easy Timer In C Language2Emanuele Bonanni
 
An Easy Timer In C Language
An Easy Timer In C LanguageAn Easy Timer In C Language
An Easy Timer In C LanguageEmanuele Bonanni
 
Rolling Your Own Embedded Linux Distribution
Rolling  Your  Own  Embedded  Linux  DistributionRolling  Your  Own  Embedded  Linux  Distribution
Rolling Your Own Embedded Linux DistributionEmanuele Bonanni
 
[E Book] Linux, G C C X G C C The Gnu C C++ Language System For Emb...
[E Book]  Linux,  G C C  X G C C  The  Gnu  C  C++  Language  System For  Emb...[E Book]  Linux,  G C C  X G C C  The  Gnu  C  C++  Language  System For  Emb...
[E Book] Linux, G C C X G C C The Gnu C C++ Language System For Emb...Emanuele Bonanni
 
Linux Kernel Startup Code In Embedded Linux
Linux    Kernel    Startup  Code In  Embedded  LinuxLinux    Kernel    Startup  Code In  Embedded  Linux
Linux Kernel Startup Code In Embedded LinuxEmanuele Bonanni
 

Más de Emanuele Bonanni (20)

Intervista a Emanuele Bonanni sul trading online (Economy mag)
Intervista a Emanuele Bonanni sul trading online (Economy mag)Intervista a Emanuele Bonanni sul trading online (Economy mag)
Intervista a Emanuele Bonanni sul trading online (Economy mag)
 
Progettare con Arduino come un Ingegnere
Progettare con Arduino come un IngegnereProgettare con Arduino come un Ingegnere
Progettare con Arduino come un Ingegnere
 
la-progettazione-elettronica-al-tempo-della-globalizzazione
la-progettazione-elettronica-al-tempo-della-globalizzazionela-progettazione-elettronica-al-tempo-della-globalizzazione
la-progettazione-elettronica-al-tempo-della-globalizzazione
 
Come rendere Arduino professionale
Come rendere Arduino professionaleCome rendere Arduino professionale
Come rendere Arduino professionale
 
Arduino ai raggi x
Arduino ai raggi xArduino ai raggi x
Arduino ai raggi x
 
Come progettare un dispositivo wearable
Come progettare un dispositivo wearableCome progettare un dispositivo wearable
Come progettare un dispositivo wearable
 
Technology ESP - Intuizione al TEDx
Technology ESP - Intuizione al TEDxTechnology ESP - Intuizione al TEDx
Technology ESP - Intuizione al TEDx
 
PCB ART 2 - L'arte dello sbroglio dei circuiti stampati [parte seconda]
PCB ART 2 - L'arte dello sbroglio dei circuiti stampati [parte seconda]PCB ART 2 - L'arte dello sbroglio dei circuiti stampati [parte seconda]
PCB ART 2 - L'arte dello sbroglio dei circuiti stampati [parte seconda]
 
Arduino ai raggi x rendiamolo professionale
Arduino ai raggi x  rendiamolo professionaleArduino ai raggi x  rendiamolo professionale
Arduino ai raggi x rendiamolo professionale
 
La progettazione elettronica in tempo di crisi
La progettazione elettronica in tempo di crisiLa progettazione elettronica in tempo di crisi
La progettazione elettronica in tempo di crisi
 
Startup errors | Tutti i miei sbagli
Startup errors | Tutti i miei sbagliStartup errors | Tutti i miei sbagli
Startup errors | Tutti i miei sbagli
 
L'arte dello sbroglio dei Circuiti Stampati
L'arte dello sbroglio dei Circuiti StampatiL'arte dello sbroglio dei Circuiti Stampati
L'arte dello sbroglio dei Circuiti Stampati
 
Thinking in SEO (grey hat)
Thinking in SEO (grey hat)Thinking in SEO (grey hat)
Thinking in SEO (grey hat)
 
Lighting World
Lighting WorldLighting World
Lighting World
 
Solid State Lighting
Solid State LightingSolid State Lighting
Solid State Lighting
 
An Easy Timer In C Language2
An Easy Timer In C Language2An Easy Timer In C Language2
An Easy Timer In C Language2
 
An Easy Timer In C Language
An Easy Timer In C LanguageAn Easy Timer In C Language
An Easy Timer In C Language
 
Rolling Your Own Embedded Linux Distribution
Rolling  Your  Own  Embedded  Linux  DistributionRolling  Your  Own  Embedded  Linux  Distribution
Rolling Your Own Embedded Linux Distribution
 
[E Book] Linux, G C C X G C C The Gnu C C++ Language System For Emb...
[E Book]  Linux,  G C C  X G C C  The  Gnu  C  C++  Language  System For  Emb...[E Book]  Linux,  G C C  X G C C  The  Gnu  C  C++  Language  System For  Emb...
[E Book] Linux, G C C X G C C The Gnu C C++ Language System For Emb...
 
Linux Kernel Startup Code In Embedded Linux
Linux    Kernel    Startup  Code In  Embedded  LinuxLinux    Kernel    Startup  Code In  Embedded  Linux
Linux Kernel Startup Code In Embedded Linux
 

Último

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 

Último (20)

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 

Embedded Linux On A R M

  • 1. Embedded Linux on ARM Chia Che Lee 李嘉哲 Home Automation, Networking, and Entertainment Lab Dept. of Computer Science and Information Engineering National Cheng Kung University
  • 2. Tool chains OUTLINE Bootloader Building Linux kernel Linux device driver GUI Department of Computer Science and Information Engineering HANEL National Cheng Kung University 2
  • 3. A collection of tools used to develop for Tool chains a particular hardware target (e.g. embedded system) Often used in the context of building software on one system which will be installed or run on some other device (e.g. embedded system) the chain of tools usually consists of such items as a particular version of a compiler, libraries, assembler, special headers, etc. Department of Computer Science and Information Engineering HANEL National Cheng Kung University 3
  • 4. The Advantage of understanding Tool chains tool-chain : Any project that requires an embedded processor also requires software- development tools. Be advantage to develop new embedded system by developing own tool-chain Department of Computer Science and Information Engineering HANEL National Cheng Kung University 4
  • 5. Tool chains The role of toolchain Department of Computer Science and Information Engineering HANEL National Cheng Kung University 5
  • 6. Source Source Source Tool chains code code code Compile flow compiler compiler compiler chart Assembly Assembly Assembly code code code Assembler Assembler Assembler object object object code code code Executabl Libraries Linker e code code Department of Computer Science and Information Engineering HANEL National Cheng Kung University 6
  • 7. GNU is a complete, Unix-like operating Tool chains system that has been in development Why using the for just over twenty years GNU Tool-chain GNU software is known for it's stability and standard compliance GNU tool-chain is open source which be easy to modify Department of Computer Science and Information Engineering HANEL National Cheng Kung University 7
  • 8. The GNU toolchain consists : Tool chains Compiler – gcc Assembler – binutils : as Linker-- binutils : ld Library– glibc Debugger-- gdb Department of Computer Science and Information Engineering HANEL National Cheng Kung University 8
  • 9. gcc is a full-featured ANSI C compiler Tool chains with support for C, C++, Objective C, gcc - GNU Java, and Fortran Compiler Collection GCC provides many levels of source code error checking , produces debugging information, and can perform many different optimizations to the resulting object code Department of Computer Science and Information Engineering HANEL National Cheng Kung University 9
  • 10. The GNU Compiler for Java is now Tool chains integrated and supported: GCJ can gcc - GNU compile Java source or Java bytecodes Compiler to either native code or Java class files Collection GCC now supports the Intel IA-64 processor, so completely free software systems will be able to run on the IA- 64 architecture as soon as it is released. Department of Computer Science and Information Engineering HANEL National Cheng Kung University 10
  • 11. Binutils are a collection of binary tools Tool chains like assembler, linker, disassembler … . GNU Binutils Binutils is to create and manipulate binary executable files. The main tools for Binutils ld - the GNU linker. as - the GNU assembler. Department of Computer Science and Information Engineering HANEL National Cheng Kung University 11
  • 12. Any Unix-like operating system needs a Tool chains C library ( defines the ‘’system calls'' GNU C Library and other basic facilities such as open, malloc, printf, exit... ) The GNU C library is used as the C library in the GNU system and most systems with the Linux kernel. The GNU C library is a large blob of glue code, which tries to give it's best to hide kernel specific functions from you. (e.g. You can use the same function name and do not care the difference between different kernel ) Department of Computer Science and Information Engineering HANEL National Cheng Kung University 12
  • 13. Tool chains GDB : The GNU Project Debugger What is GDB Allows you to see what is going on `inside' another program while it executes Allows you to see what another program was doing at the moment it crashed GDB can run on most popular UNIX and Microsoft Windows variants. Department of Computer Science and Information Engineering HANEL National Cheng Kung University 13
  • 14. Supported Languages Tool chains C GDB C++ Pascal Objective-C Many other languages Department of Computer Science and Information Engineering HANEL National Cheng Kung University 14
  • 15. Bootloader is mainly responsible for Bootloader loading the kernel, it is an very important component Many bootloaders can be used with Linux on various hardware LOIO GRUB LinuxBIOS Redboot U-boot …… Department of Computer Science and Information Engineering HANEL National Cheng Kung University 15
  • 16. Bootloader Department of Computer Science and Information Engineering HANEL National Cheng Kung University 16
  • 17. The simple code will be execute after Bootloader you power on your target ( Sometimes we call it “boot monitor” ) Embedded System bootloader should do: 1. Initialize Hardware: processor and memory 2. Loading kernel image and execute kernel (sometimes it need to transfer parameter to linux kernel) Department of Computer Science and Information Engineering HANEL National Cheng Kung University 17
  • 18. Bootloader Department of Computer Science and Information Engineering HANEL National Cheng Kung University 18
  • 19. Bootloader Boot Loader reset; ;Reset Code ;(in assembly) Jmp hw_init Hw_init ;Hardware Main() ;Initialization { ;(in assembly) /*The C/C++ program start here*/ …. } Jmp startup Startup; ;startup code NoOS/OS Code ;(in assembly) …… Call main Department of Computer Science and Information Engineering HANEL National Cheng Kung University 19
  • 20. Part1 Jump 0x00900000 Bootloader Part2 Initialize the actual hardware Set cpu mode Part3 Disable all interrupts Copy any initialized data from ROM to RAM Zero the uninitialized data area Allocation space for and initialize the stack Initialize the processor’s stack pointer Create and initialize the heap Execute the constructors and initializers for all global variables (C++) Enable interrupts Call main Part4 Program C/C++ code Department of Computer Science and Information Engineering HANEL National Cheng Kung University 20
  • 21. Bootloader Department of Computer Science and Information Engineering HANEL National Cheng Kung University 21
  • 22. Three different host/target Building Linux kernel architectures are available for the development of embedded Linux systems: Linked setup Removable storage setup Standalone setup Your actual setup may belong to more than one category or may even change categories over time, depending on your requirements and development methodology Department of Computer Science and Information Engineering HANEL National Cheng Kung University 22
  • 23. The target and the host are Building Linux kernel permanently linked together using a physical cable Linked Setup This link is typically a serial cable or an Ethernet link All transfers occur via the link Host Target *Cross-platform *Bootloader development *Kernel environment *Root filesystem Department of Computer Science and Information Engineering HANEL National Cheng Kung University 23
  • 24. The kernel could be available via Trivial Building Linux File Transfer Protocol (TFTP) kernel The root filesystem could also be NFS Linked Setup mounted instead of being on a storage (cont’) media in the target Using an NFS-mounted root filesystem is actually perfect during development, because it avoids having to constantly copy program modifications between the host and the target The physical link can also be used for debugging purposes Many embedded systems provide both Ethernet and RS232 link capabilities Department of Computer Science and Information Engineering HANEL National Cheng Kung University 24
  • 25. A storage device is written by the host, Building Linux kernel is then transferred into the target, and is used to boot the device Removable Storage Setup Host Target *Cross-platform development *Bootloader environment *Secondary bootloader *Kernel *Root filesystem Department of Computer Science and Information Engineering HANEL National Cheng Kung University 25
  • 26. The target contains only a minimal Building Linux bootloader kernel The rest of the components are stored on a Removable removable storage media, such as a Storage Setup CompactFlash IDE device or any other type (cont’) of drive Instead of a fixed flash chip, the target could contain a socket where a flash chip could be easily inserted and removed The chip would be programmed by a flash programmer on the host and inserted into the socket in the target for normal operation Department of Computer Science and Information Engineering HANEL National Cheng Kung University 26
  • 27. This setup is mostly popular during the Building Linux kernel initial phases of embedded system development Removable You may find it more practical to move on Storage Setup to a linked setup once the initial (cont’) development phase is over you can avoid the need to physically transfer a storage device between the target and the host every time a change has to be made to the kernel or the root filesystem Department of Computer Science and Information Engineering HANEL National Cheng Kung University 27
  • 28. The target is a self-contained Building Linux kernel development system and includes all the required software to boot, operate, Standalone and develop additional software Setup This setup is similar to an actual workstation, except the underlying hardware is not a conventional workstation but rather the embedded system itself Target *Bootloader *Kernel *Full root filesystem *Native development environment Department of Computer Science and Information Engineering HANEL National Cheng Kung University 28
  • 29. This type of setup is quite popular with Building Linux developers building high-end PC-based kernel embedded systems, such as high- Standalone availability systems Setup They can use standard off-the-shelf Linux (cont’) distributions on the embedded system Once development is done, they then work at trimming down the distribution and customizing it for their purposes This gets developers around having to build their own root filesystems and configure the systems' startup It requires that they know the particular distribution they are using inside out Department of Computer Science and Information Engineering HANEL National Cheng Kung University 29
  • 30. There are some broad characteristics Building Linux kernel expected from the hardware to run a Linux system: 1. Linux requires at least a 32-bit CPU containing a memory management unit (MMU) 2. a sufficient amount of RAM must be available to accommodate the system. 3. minimal I/O capabilities are required if any development is to be carried out on the target with reasonable debugging facilities. Department of Computer Science and Information Engineering HANEL National Cheng Kung University 30
  • 31. There are three different setups used Building Linux kernel to bootstrap an embedded Linux system: Solid state storage media Disk Network Department of Computer Science and Information Engineering HANEL National Cheng Kung University 31
  • 32. Solid state storage media Building Linux kernel Boot parameter Kernel Root file system Bootloader Department of Computer Science and Information Engineering HANEL National Cheng Kung University 32
  • 33. Building Linux Disk kernel Department of Computer Science and Information Engineering HANEL National Cheng Kung University 33
  • 34. Building Linux kernel Department of Computer Science and Information Engineering HANEL National Cheng Kung University 34
  • 35. Network Building Linux kernel the kernel resides on a solid state storage media or a disk, and the root filesystem is mounted via NFS only the bootloader resides on a local storage media. The kernel is then downloaded via TFTP, and the root filesystem is mounted via NFS Department of Computer Science and Information Engineering HANEL National Cheng Kung University 35
  • 36. U ser program s Building Linux kernel L ibraries U ser Level K ernel L evel System C all Interface file subsystem IPC buffer Scheduler cache L inux M em ory m anagem ent character block device drivers H ardw are control (H A L ) K ernel Level H ardw are Level Department of Computer Science and Information Engineering HANEL H ardw are National Cheng Kung University 36
  • 37. Device Driver Department of Computer Science and Information Engineering HANEL National Cheng Kung University 37
  • 38. Classes of Devices and Modules Device driver Character devices Block devices Network interfaces Department of Computer Science and Information Engineering HANEL National Cheng Kung University 38
  • 39. A character (char) device is one that Device driver can be accessed as a stream of bytes Character devices (like a file) Driver usually implements at least the open, close, read, and write system calls. The text console (/dev/console) and the serial ports (/dev/ttyS0) are examples of char devices. char devices are just data channels, which you can only access sequentially. Department of Computer Science and Information Engineering HANEL National Cheng Kung University 39
  • 40. Like char devices, block devices are Device driver accessed by filesystem nodes in the Block devices /dev directory. A block device is something that can host a filesystem, such as a disk. Department of Computer Science and Information Engineering HANEL National Cheng Kung University 40
  • 41. Any network transaction is made Device driver through an interface, that is, a device Network that is able to exchange data with interfaces other hosts. Network interface was look as a Queue The Unix way to provide access to interfaces is still by assigning a unique name to them (such as eth0). Department of Computer Science and Information Engineering HANEL National Cheng Kung University 41
  • 42. Hello World Department of Computer Science and Information Engineering HANEL National Cheng Kung University 42
  • 43. Whereas an application performs a Kernel module single task from beginning to end, a vs module registers itself in order to serve Application future requests, and its “main” function terminates immediately. the task of the function init_module (the module’s entry point) is to prepare for later invocation of the module’s functions.The second entry point of a module, cleanup_module, gets invoked just before the module is unloaded. Department of Computer Science and Information Engineering HANEL National Cheng Kung University 43
  • 44. Department of Computer Science and Information Engineering HANEL National Cheng Kung University 44
  • 45. Init_module() Init_module() for each facility, there is a specific kernel function that accomplishes this registration. The arguments passed to the kernel registration functions are usually a pointer to a data structure describing the new facility and the name of the facility being registered. Department of Computer Science and Information Engineering HANEL National Cheng Kung University 45
  • 46. cleanup_module() cleanup_modu le To unload a module, use the rmmod command. Its task is much simpler than loading, since no linking has to be performed. The command invokes the delete_module system call, which calls cleanup_module in the module itself if the usage count is zero or returns an error otherwise. Department of Computer Science and Information Engineering HANEL National Cheng Kung University 46
  • 47. The job of a typical driver is, for the I/O Regions most part, writing and reading I/O ports and I/O memory. Access to I/O ports and I/O memory (collectively called I/O regions) happens both at initialization time and during normal operations. Department of Computer Science and Information Engineering HANEL National Cheng Kung University 47
  • 48. A typical /proc/ioports file on a recent PC that is running version 2.4 of the kernel will look like the following: 0000-001f : dma1 I/O Port 0020-003f : pic1 0040-005f : timer 0060-006f : keyboard 0080-008f : dma page reg 00a0-00bf : pic2 00c0-00df : dma2 00f0-00ff : fpu 0170-0177 : ide1 01f0-01f7 : ide0 02f8-02ff : serial(set) 0300-031f : NE2000 0376-0376 : ide1 03c0-03df : vga+ 03f6-03f6 : ide0 03f8-03ff : serial(set) 1000-103f : Intel Corporation 82371AB PIIX4 ACPI 1000-1003 : acpi 1004-1005 : acpi 1008-100b : acpi 100c-100f : acpi 1100-110f : Intel Corporation 82371AB PIIX4 IDE 1300-131f : pcnet_cs 1400-141f : Intel Corporation 82371AB PIIX4 ACPI 1800-18ff : PCI CardBus #02 1c00-1cff : PCI CardBus #04 5800-581f : Intel Corporation 82371AB PIIX4 USB d000-dfff : PCI Bus #01 d000-d0ff : ATI Technologies Inc 3D Rage LT Pro AGP-133 Department of Computer Science and Information Engineering HANEL National Cheng Kung University 48
  • 49. I/O memory information is available in I/O Memory the /proc/iomem file. Department of Computer Science and Information Engineering HANEL National Cheng Kung University 49
  • 50. Major and Minor Numbers Chars Drivers Special files for char drivers are Major and Minor Numbers identified by a “c” in the first column of the output of ls –l. Block devices appear in /dev as well, but they are identified by a “b.” Use ls –l /dev commend to check. Department of Computer Science and Information Engineering HANEL National Cheng Kung University 50
  • 51. The kernel uses the major number at Chars Drivers open time to dispatch execution to the appropriate driver The minor number is used only by the driver specified by the major number mknod /dev/scull0 c 254 0 creates a char device (c) whose major number is 254 and whose minor number is 0. Department of Computer Science and Information Engineering HANEL National Cheng Kung University 51
  • 52. QT & QT Embedded GUI DirectFB Department of Computer Science and Information Engineering HANEL National Cheng Kung University 52
  • 53. Qt is a C++ class library for writing GUI GUI applications that run on UNIX, Windows QT & QT 95/98, and Windows NT platforms Embedded Qt/Embedded, the embedded Linux port of Qt, is a complete and self- contained C++ GUI and platform development tool for Linux-based embedded development. Department of Computer Science and Information Engineering HANEL National Cheng Kung University 53
  • 54. GUI QT & QT Embedded Department of Computer Science and Information Engineering HANEL National Cheng Kung University 54
  • 55. GUI DirectFB Department of Computer Science and Information Engineering HANEL National Cheng Kung University 55
  • 56. GUI DirectFB Department of Computer Science and Information Engineering HANEL National Cheng Kung University 56