Skill Set Name: Embedded Development Environment

Topics Level Sub topics Skill Category No Code Share comment
Makefile II

To have ability to build own projects by fluently writing Makefiles that can build and install static and/or dynamic libraries.

  • Prerequisite:
    • 6-2-1-I : Development flow and tools
    • 6-2-2-I : Outlone of software development environment


  • Able to write Makefiles
    • Primitives of Makefile (target, dependency, rule)
    • Pre-defined macro
    • $<, $@, $?
    • Functions
    • Make depend
  • Able to write Recursive Makefiles
    • Multiple and hierarchical directories
  • Able to write Makefiles for building and installing libraries
    • Static libraries
    • Shared libraries - -fPIC & -shared options in GCC
    • PATH and Environment variables
    • Linux commands – ar, ldconfig


Managing project I

To have the ability to use tools for managing OSS projects collaboratively.

  • Understanding types of version control systems
    • Revision control system (RCS)
    • Concurrent Versioning System (CVS, Subversion)
    • Distributed Versioning System (GIT, BAZZAR)
  • Ability to Use Subversion
    • Rationales for Subversion
    • Setting up Subversion server
    • Initializing project
    • Using Subversion commands (check-in, check-out, etc)
    • Performing backup and recovery
  • Understand the characteristics of other tools
    • CVS
    • Etc


GNU tools I

To understand the roles of basic GNU tools and their relationships.

  • Understand compile process
  • Understand bintuils
  • Able to use basic GNU tools for compiler, load, library management
  • Understand relationships of GNU tools
    • Roles and relationships in gcc, make, automake, autoconf, //GDB


GNU tools II

To have ability to use advanced GNU tools for releasing and managing source codes.

  • Able to use autoconf
    • Rationales for autoconf
    • Configure script
    • Macros
  • Able to use automake
    • Rationales for automake
    • Recursive
  • Use more tools – gcov, ctags, cscope
Building cross development environment I

To have ability to build cross development environments.

  • Understand frameworks of cross development environment
    • Target and Host
    • Connections between target & host
  • Able to use minicom
    • Connecting serial connection
    • Setting up minicom – baud rate, parity, etc.
  • Able to use NFS
    • Understanding NFS
    • Setting NFS between host and target
  • Able to use binutils and cross compiler
    • Target compilers - Gas, gcc
    • Lib and includes for target machine
    • Setting environment variables (INC, LD_LIB, CC, PATH, etc) for cross compiler
Debugging with GDB I

To have ability to debug source code using debugging tools such as GDB.

  • Able to use debugging tool (GDB)
    • Using Gcc options
    • Using GDB commands – Run, Step, Next, Trace, Break, Watch point,Inspection for variable and register
    • Debugging multithread programs
    • Debugging libraries
Bug tracking I

To have ability to install and use bug tracking tools.

  • Able to use basic operations of Bugzilla
  • Able to install Bugzilla server
  • Understand other bug/issue tracking tools
    • Issue tracking – Mantis, Trac
Remote debugging I

To have ability to setup remote debugging environment.

  • Able to setup remote debugging environment with GDB
    • Concept of remote GDB protocol
    • Running GDB server on target machine
    • Attaching
    • Command-line arguments for GDB server
  • Able to use remote debugging environment with GDB
    • Connecting to GDB server
    • Sending files to remote target
    • Monitor command to GDB server
    • Remote configuration