Embedded Software Developer
• Linux Basics • Embedded C • RTOS
• C& DS under • Microcontrollers • Free RTOS
Linux • protocols • Linux system
programming
EROTECH Solutions (E S)
Level 1 Level 2
• Linux Basics • OS basics
• C & DS under Linux • RTOS introduction
• Embedded C • Scheduling methods
• Protocols (UART, I2C, SPI, CAN BUS) • Free RTOS and STM32fx with debugging
• Applications • Projects
Detailed Syllabus
Module1: Linux Basics & Editor
Introduction to Unix/Linux Vi Ediotr Linux documentation
• Unix and its history • Command line- mode(vi, vim)
• Introduction to Linux • Modes(Editor, command and Ex • Command help
• Login session mode) • Manual pages/sections path
• Working with the Unix file system (Linux • Info documents
Directories) • Editor mode, Command mode
• Linux Basic Commands (ls, pwd, touch, • Commands in command mode
mkdir, rmdir, cp, mv, cat, rm) • Commands Ex mode
• Text Search and replacement
Module 2: C Language under Linux (Ubuntu)
Programming Language overview and • Storage classes (viz., auto, Structures and Unions
essentials register, static and extern) - • Defining a structure
• Types of Languages Scope and Life Time, Recursion, • Accessing structure
• IDE Environment (Editor, Compiler, Enum members
• Operations on Bits (Bit Set, • Typedef
Execution, Debugger)
Reset, Toggle and Checking • Structure padding.
• compilation steps (Compilation process Status) • Array of structures
tool chain (Preprocessor, Compiler, Arrays • Arrays within structures
Assembler and Linker) • Basic operations on Array • Nested structures
• Debugging with GDB (GNU Debugger) • Two dimensional arrays • Pointer to structure,
Sample C Programs • Multi-dimensional arrays • Pointer within structure
• Basic Syntax, Basic Elements (Character • Passing arrays as functional • Structures and functions
set, Tokens, Semicolons, comments, arguments • Defining a union
• Strings • Accessing union members
whitespaces, Keywords, Identifiers)
Pointers
EROTECH Solutions (E S) 2
• input and output, • Why do we need pointers? • Bit fields
• Constants (Numeric, Character and • What are pointers? File I/O
String) • Using pointers • What is File I/O?
• Variables, Expression and Statement • Dereferencing pointer variables • Types of file handling - Low
• NULL pointers, Void pointers Level and High Level
• Data types (char, int, float and double)
• Call by value and Call by • Types of files
• Sign and Size Qualifiers reference Pointer arithmetic • File operations (Opening
• Numeric conversions (Binary, Octal, • Precedence of dereferencing and files, Closing a file, Writing
Decimal and Hexa Decimal) increment/decrement operators and Reading files)
Operators • Pointer to pointer • File I/O types (Character
• Arithmetic operators • Array of pointers I/O, String I/O, formatted
• Assignment operators • Pointer to an Array I/O and block I/O)
• Function pointers Traversing within the file
• Relational operators • Error handling.
• Array of function pointers
• Logical or boolean, • Passing Pointers to functions Preprocessors
• Increment/Decrement, • Return array/pointer from • Header files
• Conditional, Comma, size of () operators function • Macro Substitution
• Bitwise and Implicit/Explicit Operators • Passing pointers as parameters • Nested Macros
• Operators Precedence and associativity. • Command line arguments • Issues with Macros
Functions Memory Management • Parameterized Macros
• Dynamic memory allocation • Macros vs functions
• Defining a function
• Resizing and releasing memory. • Overloading functions in
• Function declarations
“C” way
• Calling a function
• String zing and token
• Function arguments along with input and
pasting operators
output types
• Conditional compilation
• Returning from function
• Debugging purposes
• Predefined macros.
Data Structures
Introduction to Data Structures • Stacks using Linked Lists • count number of nodes
• Why data structures? • Queues using Linked Lists reversing list etc
• Efficient memory utilization and • Infix to postfix conversion of • Single Linked List
faster access expression • Doubly Linked List
• Searching Techniques (Linear and • Solving Arithmetic expression using • Circular Linked List
Binary Search) stacks.
• Sorting Techniques (Bubble Sort) Linked Lists
Stacks and Queues • Operations on Linked Lists
• Stacks using Arrays • Creation, insertion, deletion, search,
• Queues using Arrays, Circular Queue display
EROTECH Solutions (E S) 3
Module 3: Embedded C Module 4: I2C &SPI Module5: Projects
Embedded C programming Communication protocols Target board- Arduino
• Software development life • UART protocol, USART protocol • Arduino IDE,
cycle(SDLC) • I2c protocol, Master- Slave concept • ATMEGA328p Target board
• cross development, IDE • Slave address, I2C modes, • LCD, keys, buttons, keypad
• data types, bit, macros, Arribitaration, acknowledgement • Keyboard, sensors, modules
• features, Microcontroller and its • port expander PCF8574-Interfacing • Protocols implementation,
SFR’s • I2c protocol implementation between applications.
• GPIO programming 8051 and port expander PCF8574 ARM- Advanced RISC
• Timer programming • AT24c02 EEPROM I2C Machine
• Interrupts programming implementation, ADC PCF891 I2C • ARM versions, ARM7
• Serial port programming. implementation processor operating modes
Applications • RTC DS1307 I2C implementation • Thumb mode, ARM registers
• 8051 Target board, programming • SPI communication, Master In Slave • pipe line stages
tool program loaders Out(MISO), Master Out Slave • AMBA bus , ARM Bus
• LCD interfacing, In(MOSI), ADC MOC 3010 architecture, cache memory,
• Keys/buttons/ switches interfacing implementation ARM9 & ARM 11 versions,
• Matrix keypad (4x3) interfacing • Controller Area Network (CAN). • LPC2148 target board.
• DC motor interfacing, Data frame of CAN protocol. • ADC on chip implementation
• Stepper motor interfacing, Modules Programming
• UART implementation,
• Servo motor interfacing, • GSM, GPS module, • I2c protocol implementation,
• Digital sensors, IR, ultrasonic, reed • Bluetooth module XBEE module • SPI implementation,
switch, magnetic sensor, LDR , • Wi-Fi Module, RF module • PWM implementation,
proximity sensor, Gas sensor, fire • RFID card reader, MEMS module • sensors,
sensor analog sensors, • Modules interfacing with
• Analog to digital conversion (ADC), target board.
temperature sensor, flow sensor
applications.
(8051 Target Board)
(ARDUINO –UNO board)
(LPC 2148 Target
board)
EROTECH Solutions (E S) 4
Level 2
OS basics:
• Structure of Operating System Free RTOS and STM32fx with Free RTOS and Scheduler
• Types of OS Debugging • Free RTOS scheduler
• Process Management • IDE installation and • Understanding
• CPU Scheduling in OS development board implementation of xport start
• Threads in OS • About the IDE & IDE installation scheduler of port c
• Process Synchronization (Windows)
Free RTOS and ARM Cortex Mx
• IDE installation (Linux)
• Critical Section Problem Solution Arch Specific
• Development board Information
• Deadlocks & Deadlock Handling Document Navigation
Methods Downloading and installing free • Free RTOS kernel interrupts
• Memory Management RTOS kernel source and Navigation • RTOS Tick and Sys Tick timer
• Page Replacement Algorithms explanation
• Storage Management Creating free RTOS based project • Timer configuration
• OS Interview Questions for STM32 MCU
RTOS Introduction
• Creating new STM32 project
• What is Real Time Application? • Adding FreeRTOS kernel source
• What is Real Time Operating to project
System? • Include path settings
• RTOS vs GPOS: Task Scheduling • FreeRTOSConfig.h and other
• RTOS vs GPOS : Latency settings
RTOS vs GPOS: Priority inversion • Time base selection for
• What is Multitasking? STM32+FreeRTOS project
Free RTOS task creation
Main Concepts • What is task?
• FreeRTOS task creation API
• Types of schedulers • Task priorities in FreeRTOS
(Time /Event/Hybrid) • Coding Problems
Event based priority • Scheduling policies
(Fixed/Dynamic) • Coding Exercises /Performance
Lehockzy’s Theorem Test
• Scheduler Problem solving Trace Tool Integration
Scheduler Algorithms based • Tool Support and Analyzing
problem solving cooperative scheduling trace
• Context Switch/Impact latency IDLE task and Timer svc task of
Free RTOS
• Semaphores
• TCB & Critical section • Idle and timer services task
• Deadlock ReEntrant function
• Address Translation
EROTECH Solutions (E S) 5
Linux system Programming
• System Programming Concepts Posix Threads Character Drivers
• File operation • Thread creation • Device Numbers
• System calls • thread termination • Major and Minor Numbers
• Library functions • Thread ID Joinable and detachable • Registering and Unregistering
• code compiling using GNU-GCC Threads. • Static and Dynamic Allocations
• Blocking and Non Blocking calls • Important Structures
• Atomic operations Thread Synchronization File Operations
• Race condition • File I node
• Mutex
• User mode and Kernel mode • Character Devices,
• Condition Variables
Process management: Structure c dev
• process creation • Adding, Allocating,
Inter Process Communication (IPC)
• termination • Pipes
Initializing
• Fork() system call •
• FIFO
• child-parent process command line • And deleting
• Posix Message Queue
• User Space Applications
argument of process • Posix semaphore
and Device
• Memory Layout of Process • Posix shared memory
• Driver mappings
Memory Management
• Access methods within the
Signals • Process Virtual Memory
driver
• signal handlers management
• open, read, write and close
• sending signals to process • Memory segments(code data stack
IOCTL.
• Default signal handlers. Heap)
Training Structure:
• Daily 4 hours Session(Class & Lab)
• Modes Online &offline
• Individual tracking report
• Teams Formation
• Weekly assessments & presentations
• Every month industry persons interaction
• Feedback for every 15 days.
H.O.: Address: #103, Rajamma Towers, jaya nagar, near Kphb Metro station, KPHB, Kukatapally, Hyd-72.
For more information: Email: erotechsol@gmail.com, www.erotechsolutions.in.
Contact: +91- 9676327118,+91-9701190819.
EROTECH Solutions (E S) 6