Master of Engineering Program
Electronics and Electrical Communications Engineering Department
Faculty of Engineering - Cairo University
Basics of Communications – Digital Transmission Techniques – Signal Encoding – Serial Communication – Ethernet/Industrial Ethernet – MODBUS – CANopen – POFIBUS – AUTOSAR – BACNet – IEEE 802.15.4 – Sockets Programming.
Software Life Cycle – Design for Testability – The V Model – Unit Testing – System Level Testing – Integration Testing – White box vs. Black box testing – Compliance, Feature, Random and Collision Testing – Performance and Stress Testing – Issues in Real-time Testing – Issues in Multi–processor Systems – Issues in Concurrent Processes – Introduction to Formal Methods – Modeling Languages and Testability. Platforms: Linux PC’s.
Processor architectures: RISC/CISC, DSP, VLIWs (including Transport Triggered Architectures), and ASIPs – Code Generation Techniques – Code optimization – Branch Prediction – Data and Instruction Memory Optimization – Memory Hierarchies – Energy –efficient Design – Interfacing Processors and Peripherals – Multi-Processor System on Chip – Details on Specific Popular Processors: ATMEL Microcontrollers – The ARM Processor Family – TI or ADI DSP. Platforms: TI/ADI DSP, Arduino, ARM
Basic Features of Embedded/Real–Time Operating Systems – Tasks and Tasking – Scheduling – Control of Shared Resources – Mutual Exclusion – Resource Contention and Deadlocks – Intertask Communication – Memory Usage and Management – Multiprocessors – Multicore and Multicomputer Systems – Boot Loaders and Memory Segments – Overview of Some Embedded/RT OSs (e.g. VxWorks, uc–OS, Threadx) – Real-Time Software Design With UML. Platforms: ARM platforms with uc–OS and Linux PC’s.
Characteristics of Real-time/Embedded Software Development – C Revision – Arrays, Pointers and Strings – Bit Manipulation & Hardware Access – Device Interaction & Synchronization – Polling Devices – Interrupt Handling – Serial Peripheral Programming – General Purpose IO (GPIO) – Dynamic Memory Management – Leaks and Fragmentation – The C Pre-Processor – Macros – Conditional Compilation. Platforms: Arduino or ARM platforms and Linux PCs.