12.07.2015 Views

Embedded Systems - UCSC Extension Silicon Valley

Embedded Systems - UCSC Extension Silicon Valley

Embedded Systems - UCSC Extension Silicon Valley

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Embedded</strong> Boot Loaders: BIOS and UEFIIn this course, you’ll learn about BIOS (Basic Input/Output System) and UEFI (Unified Extensible FirmwareInterface). The course starts with BIOS history andarchitecture. The course covers BIOS device enumerationand configuration, BIOS interfaces includingsoftware interrupts, option ROM interface, and bootmechanism. Following an overview of UEFI history,architecture and services, you’ll learn the UEFI driverarchitecture and how to write UEFI drivers andapplications. The course concludes with UEFI debuggingmethodologies and briefly addresses U-BOOT,and includes some hands-on programming.Course 23092*<strong>Embedded</strong> Linux Design and ProgrammingThis course covers designing, testing, and customizingembedded Linux 2.6 on an ARM 9 processor platform.Topics include how the scheduler is implemented,writing for kernel modules and remotely debuggingthe embedded applications.Course 3364<strong>Embedded</strong> <strong>Systems</strong> Hardware Architectures,IntroductionThis course covers the hardware components andinterfaces in a typical embedded system. The coursebegins with an inside look at some typical embeddedsystems and the functional blocks within those systems.The course addresses design considerations andseveral approaches to system building. Also coveredare the various types of memory commonly used inembedded systems, basic concepts in microprocessors,microcontrollers and DSP, and an introduction to thetypical buses used at the system level.*Course 21319The Internet of Things: Connectingvia Bluetooth, WiFi and ZigBeeThis course expands your working knowledge ofkey wireless technologies to include the design andimplementation of embedded systems based on thesetechnologies. The course will compare bandwidth, costand power tradeoffs between Bluetooth, Wi-Fi andZigBee. You will evaluate the architecture, protocol,programming API and debugging demands of eachtechnology, all of which are essential to implementingnetwork software. The course covers topics such asInternet gateways and cloud-based management ofInternet-based devices, with an emphasis on systemdesign, rapid prototyping, and effective use ofdevelopment and debugging tools.Course 23093IO Concepts and Protocols: PCI Express,Ethernet, and Fibre ChannelThis course focuses on IO technologies and walksstudents through the complexities of IO subsystems inmodern computers, and the networking and storagesubsystems to which they are attached. Topics includebasic concepts of IO; PCI Express, Ethernet and FibreChannel; operation and protocols; and an explorationof how these technologies work.Course 22177Jitter EssentialsLearn the definitions of various types of jitter(including phase noise), understand which type of jitteris important to your application and why, and learnhow to propagate jitter through a system, create jitterbudgets, measure and minimize jitter, and more.Course 21321Linux Device DriversThis course covers the design and implementation ofdevice drivers for the Linux operating system, and theinterfaces to the Linux kernel for writing them. Topicsinclude compiling the kernel; building and running;character and block device driver concepts; PCI, I/O,and timer routines; hardware management and interrupthan dling; networking drivers; PROC file systemand IOCTL interface; and kernel mechanisms andadvanced topics.Course 2470Linux Device Drivers, AdvancedThis course will enhance your understanding of the artof writing Linux device drivers. Students explore theframework that can be used to develop a commercialgrade driver. The course includes detailed discussionof the USB and PCI family (PCI-E, PCIe) subsystems,as well as Linux kernel services and facilities. Thecourse includes a board project, and code review ofreal-world drivers. Additional discussions cover livedebugging with Kprobes, profiling with Oprofile, anda survey of industry trends including virtualized drivers,iSCSI and serial IO buses.Course 1016Printed Circuit Board Design forSignal Integrity and EMC ComplianceThis course for both experienced and entry level engineerspresents simplified hands-on techniques for thedesign and layout of printed circuit boards to achieveboth signal integrity and electromagnetic compatibility(EMC). Instructional emphasis is placed on real-lifeexamples that demon strate good layout practices thatcan be incorporated immediately for high-technologydesigns and products.Course 21943Real-time <strong>Embedded</strong> <strong>Systems</strong> I/OProgramming—Ethernet, USB, SPIand Serial DevicesThis course examines common external IO architecturesfor embedded systems and provides hands-oninstruction in designing and developing IO subsystemsunder real-time constraints. A variety of IOarchitectures are addressed, including Ethernet, WiFi,SPI, USB, I2C, and UART (RS232). Discussions coverphysical interfaces, input/output protocols, and thedesign and implementation of the IO subsystemsthat interact with real-time applications. Issues ofbandwidth, latency and real-time are also discussed.You’ll gain practical experience designing and codingembedded systems on a PIC microcontroller based SDK.Course 30028Real-time <strong>Embedded</strong> <strong>Systems</strong>Programming, IntroductionThis introductory course begins with a review ofembedded system hardware, including a discussionof system requirements for real-time systems. Itfollows up with real-time programming techniquesand architectures. The course covers the use ofreal-time operating systems (RTOS) to effectivelystructure large programs as well as designing devicedrivers to meet real-time hardware requirements.There will also be discussion of multi-threading,cooperative vs. preemptive multi-tasking and interprocesscommunications. Students will gain hands-onexperience with a programming project on a board.Course 5381Software Testing:Techniques, Tools and PracticesThis course covers the fundamentals of softwaretesting with an emphasis on test techniques, testtools, and testing practices. For the various phases ofsoftware development, the course introduces testingstrategies, or test levels. Open source and commerciallyavailable tools will be used to demonstrate conceptssuch as test generation and test coverage. Studentsgain hands-on testing and analysis experience withsample code using state-of-the-art software analysisand testing tools.Course 20501SystemVerilog for ASIC and FPGA DesignThis course prepares hardware engineers, ASIC andFPGA designers, and design-support staff to use thehigh-level syntax of SystemVerilog to design, debug, andsynthesize digital logic for ASICs, FPGAs, and IP cores.Students will learn SystemVerilog’s basic building blocksand language constructs, including synthesizable datatypes and operators, structures and unions, 2-D arraysand loops, and the bus interface unit. In lab sessions,they will write code and synthesize it into digital logicand bus fabric, using both ASIC and FPGA tools.Course 20095USB Device Interface—Architecture,Protocols and ProgrammingThis course covers USB architecture, protocols and features.Communication, control, and application layerprotocols for generic USB devices are covered. You willlearn how to pick the optimal USB protocols to meetperformance and bandwidth requirements. The courseintroduces the basic USB programming model, USBlibraries and the higher level USB software requiredto implement specific device functionality. The courseemphasizes effective design and test techniques andthe use of USB debugging tools. The course focuseson the device side USB interface, and includes a classproject based on a PIC USB kit.Course 2179Not printed or mailed at state expense. 611796-1204-1223 (08/23/12)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!