CS2271 is an introductory course in embedded system consisting of three distinct sections: hardware, software, and system design.
In the hardware section, first the design of custom logic using field programmable gate array (FPGA) is introduced. A high-level hardware programming language, Handel-C, is introduced as means of programming these logics. The programmable logic part is followed by discussion of embedded processors (including DSP), peripherals, and their interfacing. The hardware section concludes with the discussion of System-on-a-Chip solutions, completing the entire spectrum of embedded hardware.
In the software section, the course begins with the unique challenges involved in developing software for embedded systems. In particular, the course looks at programming, compiling, and debugging of embedded software, followed by real-time operating system issues.
The final section of CS2271 builds on the knowledge of embedded hardware and software to introduce the design of large, complex, and low-power embedded systems. In particular, the course will discuss system specification, hardware/software co-design, and detailed design methodologies.
The course takes a hands-on approach where the students are expected to spend substantial time with both FPGA programming using Handel-C and embedded software development using ARM-based development boards.