Presentation is loading. Please wait.

Presentation is loading. Please wait.

Real-time Systems Lab, Computer Science and Engineering, ASU Please Standby Galileo Tech Talk at ASU Will Begin Shortly.

Similar presentations


Presentation on theme: "Real-time Systems Lab, Computer Science and Engineering, ASU Please Standby Galileo Tech Talk at ASU Will Begin Shortly."— Presentation transcript:

1 Real-time Systems Lab, Computer Science and Engineering, ASU Please Standby Galileo Tech Talk at ASU Will Begin Shortly

2 Real-time Systems Lab, Computer Science and Engineering, ASU Teaching Embedded Systems Programming using Galileo Board School of Computing, Informatics, and Decision Systems Arizona State University Tempe, AZ 85287 Dr. Yann-Hang Lee yhlee@asu.edu (480) 727-7507

3 Real-time Systems Lab, Computer Science and Engineering, ASU  The course: Embedded Systems Programming  Senior and entry-level graduate students  Major in CS or CE  The expectations  what is inside the boxes  understand the interactions between hardware, system software, and applications  capable computer system engineers  the characteristics of embedded systems  hardware and software architecture  logical reasoning and problem solving 2 Introduction

4 Real-time Systems Lab, Computer Science and Engineering, ASU  B.S. in Computer Science and B.S.E in Computer System Engineering CSE Undergraduate Programs in ASU General science and engineering and basic CS/CSE study Freshman Additional general study and CS/CSE foundation courses Sophomore Core CS/CSE technical and theoretical courses Junior Advanced CS/CSE courses in various application domains Senior 3

5 Real-time Systems Lab, Computer Science and Engineering, ASU AI Architecture & Embedded systems Software Engineering Operating & Distributed systems, Networking DatabaseGraphics CSCSE Information Assurance CS1 CS2 Logic Design Computer Organization Curriculum Structure in CSE Programming Language Theory Microprocessor System Hardware Design Data Structure & Algorithm Software Engineering 4

6 Real-time Systems Lab, Computer Science and Engineering, ASU  CSE 220 – Programming for Computer Engineering  C programming language  Linux environment (script, tools, and thread programming)  CSE 320 – Hardware Design  hardware modeling in Verilog or VHDL  synthesize hardware prototypes using FPGA devices  CSE 325 – Embedded Microprocessor Systems  software and hardware integration to construct embedded systems  characteristics of various input/out interfaces and peripherals.  programming and debugging I/O operations  CSE 438/598 – Embedded System Programming  Project Development in Capstone Design I and II Major Courses in Embedded Systems 5

7 Real-time Systems Lab, Computer Science and Engineering, ASU  The key issues in embedded software  concurrency  interaction with devices  timely operations and scheduling  Course coverage:  Design issues of embedded software and the knowledge of development and execution environment on target processors.  The functions and the internal structure of device interfaces, drivers, and real-time operating systems.  Multi-threaded embedded software in target environment  coding style for embedded programming  testing and debugging approaches  Task scheduling and schedulability analyses. CSE 438 Embedded System Programming 6

8 Real-time Systems Lab, Computer Science and Engineering, ASU  Programming assignments are essential  Target – Galileo board, bread board, and peripherals  Linux on target board  Preferred cross-development tools in host Linux  Eclipse, command lines, GUN tools Software Development in CSE 438 7

9 Real-time Systems Lab, Computer Science and Engineering, ASU  Introduction:  characteristics of embedded applications, cross-development environment.  x86 embedded processor architecture  RDTSC, atomic operations, interrupt mechanism, PCI bus, plug and play  Linux device drivers  loadable modules  character devices, sysfs, drivers for bus structures and adapters  Concurrent and asynchronous execution  multi-threading in user and kernel spaces  ISR, work queue, blocking and non-blocking, and signaling  Embedded software  design patterns for periodical and sporadic tasks  imprecise computation, overrun management, asynchronous transfer of control  Scheduling  cyclic, EDF, rate monotonic, priority inheritance, and schedulability analysis What are taught in CSE 438 8

10 Real-time Systems Lab, Computer Science and Engineering, ASU  A device driver for shared queues and timestamps  loadable module  character device driver  ring buffer  threading and co-routine  RDTSC  mutex in user and kernel space  A driver for a 24FC256 EEPROM on i2c bus  i2c bus operations and IO expander on Galileo board  gpio control via script, user program, and kernel module  bus driver architecture in Linux  non-blocking IO operation and work queue What are Exercised in Assignments (1) 9 bus_out_q2 Sender1 Sender2 Sender 3 receiver1 bus-daemon bus_in_q bus_out_q1 bus_out_q3 receiver2 receiver3

11 Real-time Systems Lab, Computer Science and Engineering, ASU  Distance-controlled LED animation  SPI bus operations on Galileo  kernel thread for periodic operation  ISR for pulse measurement  Motion Tracking with Kalman Filter, Accelerometer and Gyroscope  real-time application development  periodic task model  mouse Input events What are Exercised in Assignments (2) 10

12 Real-time Systems Lab, Computer Science and Engineering, ASU  Handling asynchronous events  Linux input devices and handlers  event abstraction  signaling mechanism  setjmp and longjmp  imprecise computation model  Linux ftrace and kernelshark What are Exercised in Assignments (3) 11

13 Real-time Systems Lab, Computer Science and Engineering, ASU  Need a suitable embedded system  to host an open-source and versatile OS  software development tools  networking  Peripherals (sensors and actuators)  Acquisition and connection  Arduino shields  Support  quality code and documentation  technical consultation  Follow-up development and extensions  PCIe and wireless communication (wifi+bluetooth)  IOT applications 12 Why Galileo

14 Real-time Systems Lab, Computer Science and Engineering, ASU  Overall, many assignments for students to practice  students know the subjects are useful and interesting  they learn (or observe) how to make it work, but need to think about design decisions or alternatives.  CSE 438 – a difficult course to teach  no textbook, use Internet document, code examination, and manual  for students, time consuming and challenging  the (Sun) Devil is in the details  Look for  projects that can be integrated as a sequence and lead to useful applications  pedagogy for embedded systems that is effective and inspiring  Thanks to Intel Higher Education for the support and assistance. Summary 13


Download ppt "Real-time Systems Lab, Computer Science and Engineering, ASU Please Standby Galileo Tech Talk at ASU Will Begin Shortly."

Similar presentations


Ads by Google