Your SlideShare is downloading. ×
Debugging 2013- Klaus kolle
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Debugging 2013- Klaus kolle

160
views

Published on

Debugging- for rigtige programmører

Debugging- for rigtige programmører

Published in: Technology, Business

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
160
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton Status in Teaching Debugging EDE Background Profile of the EDE engineer Debugging in the Study Klaus Kolle (klausk@iha.dk) First Year Second Year Third Year Summary Aarhus University School of Engineering ASE 23 October 2013 Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 1
  • 2. Status in Teaching Debugging Presentation Outline Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer 1 Introducton Debugging in the Study EDE Background Profile of the EDE engineer First Year Second Year Third Year Summary 2 Debugging in the Study First Year Second Year Third Year Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 2
  • 3. Status in Teaching Debugging Presentation Outline Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer 1 Introducton Debugging in the Study EDE Background Profile of the EDE engineer First Year Second Year Third Year Summary 2 Debugging in the Study First Year Second Year Third Year Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 3
  • 4. What is the EDE Study Programme? Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton • 25 years ago, Vestjysk Teknikum was founded in Herning with E-ingeniør as the first engineering education in the area EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 4
  • 5. What is the EDE Study Programme? Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton • 25 years ago, Vestjysk Teknikum was founded in Herning with E-ingeniør as the first engineering education in the area • After going through several mergers, EDE - Electronic EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Design Engineer - is now a part of Aarhus University School of Engineering Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 4
  • 6. What is the EDE Study Programme? Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton • 25 years ago, Vestjysk Teknikum was founded in Herning with E-ingeniør as the first engineering education in the area • After going through several mergers, EDE - Electronic EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Design Engineer - is now a part of Aarhus University School of Engineering • I’ve been teaching at EDE since 1999; first as a freelancer and since 2006 in a tenure position Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 4
  • 7. Status in Teaching Debugging Presentation Outline Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer 1 Introducton Debugging in the Study EDE Background Profile of the EDE engineer First Year Second Year Third Year Summary 2 Debugging in the Study First Year Second Year Third Year Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 5
  • 8. Content of the Study Programme Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) • Focus is on embedded systems Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 6
  • 9. Content of the Study Programme Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) • Focus is on embedded systems • The student will learn to design both analogue and digital electronics as well as the software necessary for the device Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 6
  • 10. Content of the Study Programme Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) • Focus is on embedded systems • The student will learn to design both analogue and digital electronics as well as the software necessary for the device • The student will learn the basic theories and apply them in projects during the whole study Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 6
  • 11. Content of the Study Programme Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) • Focus is on embedded systems • The student will learn to design both analogue and digital electronics as well as the software necessary for the device • The student will learn the basic theories and apply them in projects during the whole study • First year is mainly focused on teaching the basic Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary mathematics, physics, electronics and software Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 6
  • 12. Content of the Study Programme Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) • Focus is on embedded systems • The student will learn to design both analogue and digital electronics as well as the software necessary for the device • The student will learn the basic theories and apply them in projects during the whole study • First year is mainly focused on teaching the basic Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary mathematics, physics, electronics and software • Second year is building on the skills learnt in first year and extending those with more software, digital and analogue electronics, interaction design, web technology and control systems theory Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 6
  • 13. Content of the Study Programme Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) • Focus is on embedded systems • The student will learn to design both analogue and digital electronics as well as the software necessary for the device • The student will learn the basic theories and apply them in projects during the whole study • First year is mainly focused on teaching the basic Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary mathematics, physics, electronics and software • Second year is building on the skills learnt in first year and extending those with more software, digital and analogue electronics, interaction design, web technology and control systems theory • Third year (+ half a year) comprises the elective courses and the company placement. The 7th semester concludes with the final project Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 6
  • 14. Status in Teaching Debugging Projects Klaus Kolle (klausk@iha.dk) • In the first two years, there is a project each semester Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 7
  • 15. Status in Teaching Debugging Projects Klaus Kolle (klausk@iha.dk) • In the first two years, there is a project each semester • The theory acquired should be applied in these projects, i.e. through projects the student gains hands-on experience with the theory Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 7
  • 16. Status in Teaching Debugging Projects Klaus Kolle (klausk@iha.dk) • In the first two years, there is a project each semester • The theory acquired should be applied in these projects, i.e. through projects the student gains hands-on experience with the theory • The fifth semester project, third year, is always carried out in cooperation with an industrial partner Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary 7
  • 17. Status in Teaching Debugging Projects Klaus Kolle (klausk@iha.dk) • In the first two years, there is a project each semester • The theory acquired should be applied in these projects, i.e. through projects the student gains hands-on experience with the theory • The fifth semester project, third year, is always carried out in cooperation with an industrial partner Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary • Placements (6th semester) are always in a company - often the same company as the one the students cooperated with on the 5th semester project Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 7
  • 18. Status in Teaching Debugging Projects Klaus Kolle (klausk@iha.dk) • In the first two years, there is a project each semester • The theory acquired should be applied in these projects, i.e. through projects the student gains hands-on experience with the theory • The fifth semester project, third year, is always carried out in cooperation with an industrial partner Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary • Placements (6th semester) are always in a company - often the same company as the one the students cooperated with on the 5th semester project • The final project is always done in cooperation with a company - often also the company where the student did his/her placement Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 7
  • 19. International Study Programme Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton • EDE is an international study programme taught in English EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 8
  • 20. International Study Programme Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton • EDE is an international study programme taught in English • We have up to 30% students from outside of Denmark EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 8
  • 21. International Study Programme Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton • EDE is an international study programme taught in English • We have up to 30% students from outside of Denmark • The foreign students mainly come from EU countries but Asia, Africa and North America are also or have been represented Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary 8
  • 22. International Study Programme Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton • EDE is an international study programme taught in English • We have up to 30% students from outside of Denmark • The foreign students mainly come from EU countries but Asia, Africa and North America are also or have been represented EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary • This gives the students a multi-cultural class and a study environment which will both ’soften’ and ’harden’ them before entering the job market Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 8
  • 23. Status in Teaching Debugging Presentation Outline Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer 1 Introducton Debugging in the Study EDE Background Profile of the EDE engineer First Year Second Year Third Year Summary 2 Debugging in the Study First Year Second Year Third Year Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 9
  • 24. Debugging in the First Year of Study Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) • In first semester, when introduced to the C programming language, debugging is introduced Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 10
  • 25. Debugging in the First Year of Study Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) • In first semester, when introduced to the C programming language, debugging is introduced • For several reasons Eclipse is the chosen platform to work on, but one is that it installs on all major operating systems Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary 10
  • 26. Debugging in the First Year of Study Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) • In first semester, when introduced to the C programming language, debugging is introduced • For several reasons Eclipse is the chosen platform to work on, but one is that it installs on all major operating systems Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary • The students learn to set break points and inspect variables as the way to getting their very small programs to work as required Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 10
  • 27. Debugging in the First Year of Study Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) • In first semester, when introduced to the C programming language, debugging is introduced • For several reasons Eclipse is the chosen platform to work on, but one is that it installs on all major operating systems Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary • The students learn to set break points and inspect variables as the way to getting their very small programs to work as required • If a situation arises, other aspect of debugging may be taught, e.g. conditional breakpoints may be convenient to know Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 10
  • 28. Status in Teaching Debugging First Year on Hardware Klaus Kolle (klausk@iha.dk) Introducton • Currently we use the Mbed platform for our projects in the first year projects - blinking LEDs and printf may be a way to debug the robot over the serial line EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 11
  • 29. Status in Teaching Debugging First Year on Hardware Klaus Kolle (klausk@iha.dk) Introducton • Currently we use the Mbed platform for our projects in the first year projects - blinking LEDs and printf may be a way to debug the robot over the serial line • The mBed is a small ”arduino-like” platform with an NXP cortex M3 device used through a cloud compiler with a huge repository of easy-to-use examples and source code availible Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary 11
  • 30. Status in Teaching Debugging First Year on Hardware Klaus Kolle (klausk@iha.dk) Introducton • Currently we use the Mbed platform for our projects in the first year projects - blinking LEDs and printf may be a way to debug the robot over the serial line • The mBed is a small ”arduino-like” platform with an NXP cortex M3 device used through a cloud compiler with a huge repository of easy-to-use examples and source code availible EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary • This allows students to become familiar with embedded programming without having to worry about device drivers, makefiles and other complex issues Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 11
  • 31. Status in Teaching Debugging Presentation Outline Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer 1 Introducton Debugging in the Study EDE Background Profile of the EDE engineer First Year Second Year Third Year Summary 2 Debugging in the Study First Year Second Year Third Year Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 12
  • 32. Status in Teaching Debugging Second Year Project Klaus Kolle (klausk@iha.dk) • In second year focus is on Systems Engineering, i.e. specification and development of a complete embedded system Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 13
  • 33. Status in Teaching Debugging Second Year Project Klaus Kolle (klausk@iha.dk) • In second year focus is on Systems Engineering, i.e. specification and development of a complete embedded system • This includes learning to work using a method, however this is out of scope of today’s talk Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 13
  • 34. Status in Teaching Debugging Second Year Project Klaus Kolle (klausk@iha.dk) • In second year focus is on Systems Engineering, i.e. specification and development of a complete embedded system • This includes learning to work using a method, however this is out of scope of today’s talk • Last year’s and this year’s project work is our Zenith 33 electric car which participated and will be participating in the Shell EcoMarathon Race in Rotterdam in May Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary 13
  • 35. Status in Teaching Debugging Second Year Project Klaus Kolle (klausk@iha.dk) • In second year focus is on Systems Engineering, i.e. specification and development of a complete embedded system • This includes learning to work using a method, however this is out of scope of today’s talk • Last year’s and this year’s project work is our Zenith 33 electric car which participated and will be participating in the Shell EcoMarathon Race in Rotterdam in May Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary • last year, we ended up fifth out of approximately thirty cars Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 13
  • 36. Status in Teaching Debugging Second Year Project Klaus Kolle (klausk@iha.dk) • In second year focus is on Systems Engineering, i.e. specification and development of a complete embedded system • This includes learning to work using a method, however this is out of scope of today’s talk • Last year’s and this year’s project work is our Zenith 33 electric car which participated and will be participating in the Shell EcoMarathon Race in Rotterdam in May Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary • last year, we ended up fifth out of approximately thirty cars • this was a very fine result knowing that the car was built in a hurry and literally ”thrown” together in Rotterdam just before the race Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 13
  • 37. Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 14
  • 38. Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 14
  • 39. Status in Teaching Debugging Subcontractors • The students are divided into sub-teams, in which each team must supply parts for the complete control system of the car Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 15
  • 40. Status in Teaching Debugging Subcontractors • The students are divided into sub-teams, in which each team must supply parts for the complete control system of the car • This will train the students in cooperation, negotiation and other teamwork disciplines Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 15
  • 41. Status in Teaching Debugging Subcontractors • The students are divided into sub-teams, in which each team must supply parts for the complete control system of the car • This will train the students in cooperation, negotiation and other teamwork disciplines • Debugging is also part of getting the interoperation between stand-alone devices up and running Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 15
  • 42. Status in Teaching Debugging Subcontractors • The students are divided into sub-teams, in which each team must supply parts for the complete control system of the car • This will train the students in cooperation, negotiation and other teamwork disciplines • Debugging is also part of getting the interoperation between stand-alone devices up and running • Debugging or inspection of network packages using Wireshark is often introduced as a tool to debug solutions that communicates over TCP/IP Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary 15
  • 43. Status in Teaching Debugging Subcontractors • The students are divided into sub-teams, in which each team must supply parts for the complete control system of the car • This will train the students in cooperation, negotiation and other teamwork disciplines • Debugging is also part of getting the interoperation between stand-alone devices up and running • Debugging or inspection of network packages using Wireshark is often introduced as a tool to debug solutions that communicates over TCP/IP Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary • The students are introduced to a ”full” embedded platform with a (legacy) ARM7 (NXP LPC2478) device capable of running either ”bare metal” (OS-less) applications, or has the ability to boot a uClinux (MMU-less). In addition the students will become familiar with writing Linux device drivers, and embedded applications Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 15
  • 44. Subcontractors • The students are divided into sub-teams, in which each team must supply parts for the complete control system of the car • This will train the students in cooperation, negotiation and other teamwork disciplines • Debugging is also part of getting the interoperation between stand-alone devices up and running • Debugging or inspection of network packages using Wireshark is often introduced as a tool to debug solutions that communicates over TCP/IP Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary • The students are introduced to a ”full” embedded platform with a (legacy) ARM7 (NXP LPC2478) device capable of running either ”bare metal” (OS-less) applications, or has the ability to boot a uClinux (MMU-less). In addition the students will become familiar with writing Linux device drivers, and embedded applications • Along with this platform, the student have to compile and become familiar with the gcc binutils for the ARM platform Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 15
  • 45. Status in Teaching Debugging Understand the Hardware Klaus Kolle (klausk@iha.dk) • Together with a couple of other colleagues my colleague Morten Opprud Jakobsen and I, form the teaching team Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 16
  • 46. Status in Teaching Debugging Understand the Hardware Klaus Kolle (klausk@iha.dk) • Together with a couple of other colleagues my colleague Morten Opprud Jakobsen and I, form the teaching team • Especially Morten and I have synchronised our teaching Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 16
  • 47. Status in Teaching Debugging Understand the Hardware Klaus Kolle (klausk@iha.dk) • Together with a couple of other colleagues my colleague Morten Opprud Jakobsen and I, form the teaching team • Especially Morten and I have synchronised our teaching • Morten teaches digital electronics (FPGA design) and simple ”bare metal” software drivers for embedded systems Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary 16
  • 48. Status in Teaching Debugging Understand the Hardware Klaus Kolle (klausk@iha.dk) • Together with a couple of other colleagues my colleague Morten Opprud Jakobsen and I, form the teaching team • Especially Morten and I have synchronised our teaching • Morten teaches digital electronics (FPGA design) and simple ”bare metal” software drivers for embedded systems • Morten states: In order to debug the software, you need to understand the hardware! Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary 16
  • 49. Status in Teaching Debugging Understand the Hardware Klaus Kolle (klausk@iha.dk) • Together with a couple of other colleagues my colleague Morten Opprud Jakobsen and I, form the teaching team • Especially Morten and I have synchronised our teaching • Morten teaches digital electronics (FPGA design) and simple ”bare metal” software drivers for embedded systems • Morten states: In order to debug the software, you need to understand the hardware! Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary • Identify useful GPIO/UART/other debug hooks Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 16
  • 50. Status in Teaching Debugging Understand the Hardware Klaus Kolle (klausk@iha.dk) • Together with a couple of other colleagues my colleague Morten Opprud Jakobsen and I, form the teaching team • Especially Morten and I have synchronised our teaching • Morten teaches digital electronics (FPGA design) and simple ”bare metal” software drivers for embedded systems • Morten states: In order to debug the software, you need to understand the hardware! Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary • Identify useful GPIO/UART/other debug hooks • Introduce serial line and JTAG debug options Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 16
  • 51. Status in Teaching Debugging Understand the Hardware Klaus Kolle (klausk@iha.dk) • Together with a couple of other colleagues my colleague Morten Opprud Jakobsen and I, form the teaching team • Especially Morten and I have synchronised our teaching • Morten teaches digital electronics (FPGA design) and simple ”bare metal” software drivers for embedded systems • Morten states: In order to debug the software, you need to understand the hardware! Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary • Identify useful GPIO/UART/other debug hooks • Introduce serial line and JTAG debug options • Understand the bootloader and its influence on the HW set-up Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 16
  • 52. Status in Teaching Debugging Understand the Hardware Klaus Kolle (klausk@iha.dk) • Together with a couple of other colleagues my colleague Morten Opprud Jakobsen and I, form the teaching team • Especially Morten and I have synchronised our teaching • Morten teaches digital electronics (FPGA design) and simple ”bare metal” software drivers for embedded systems • Morten states: In order to debug the software, you need to understand the hardware! Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary • Identify useful GPIO/UART/other debug hooks • Introduce serial line and JTAG debug options • Understand the bootloader and its influence on the HW set-up • Perform simple profiling using a scope and GPIO Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 16
  • 53. Debugging Embedded Hardware Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 17
  • 54. Status in Teaching Debugging Software Engineering Klaus Kolle (klausk@iha.dk) • In parallel with Mortens more HW oriented approach I teach the more general principles of debugging Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 18
  • 55. Status in Teaching Debugging Software Engineering Klaus Kolle (klausk@iha.dk) • In parallel with Mortens more HW oriented approach I teach the more general principles of debugging • I’ve taught the art of debugging as part of another Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year course during the past years Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 18
  • 56. Status in Teaching Debugging Software Engineering Klaus Kolle (klausk@iha.dk) • In parallel with Mortens more HW oriented approach I teach the more general principles of debugging • I’ve taught the art of debugging as part of another course during the past years • Starting from next summer we will offer a Software Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Engineering course, which partly is based on the course content of the current course Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 18
  • 57. Status in Teaching Debugging Software Engineering Klaus Kolle (klausk@iha.dk) • In parallel with Mortens more HW oriented approach I teach the more general principles of debugging • I’ve taught the art of debugging as part of another course during the past years • Starting from next summer we will offer a Software Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Engineering course, which partly is based on the course content of the current course • ”Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” - Brian W. Kernighan. Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 18
  • 58. Status in Teaching Debugging Reliable Code Main topic Debugging Code optimisation Subtopic Determining where to develop and debug Local debugging Remote debugging using gdb/ddd + gdbserver Use the compiler options Lint Profiling SW test Equivalence classes BlackBox WhiteBox Coverage Integration Continuous gration inte- Writing Reliable Code Keywords from the content Debug on the development host rather than on the target maybe using stubs to emulate absent HW Assertions, ”printf”, Eclipse - breakpoints, watches, etc., gdb + ddd, unsystematic debugging, systematic debugging and scientific debugging principles Debugging a remote embedded system (working on two different CPU architectures) Compilers are good at reporting potential problems Static analysis of the code - if the compiler does not report enough potential problems Dynamic analysis of the program. Where does the CPU power go? Defining the sufficient test set Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Testing without knowing the implementation Testing having insight in the design Did we test all code? Putting it all together Putting together the pieces continuously Other topics in the course are: The process of creating executables from source code, make, git, virtualisation and databases Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 19
  • 59. Where to Develop and Debug • In my opinion it is often much easier to develop and Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) debug on a well-running development host Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 20
  • 60. Where to Develop and Debug • In my opinion it is often much easier to develop and Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) debug on a well-running development host • But it requires that stubs are written to mimic the missing HW Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 20
  • 61. Where to Develop and Debug • In my opinion it is often much easier to develop and Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) debug on a well-running development host • But it requires that stubs are written to mimic the missing HW • With a deep understanding of the HW, this should be no problem ... Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 20
  • 62. Where to Develop and Debug • In my opinion it is often much easier to develop and Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) debug on a well-running development host • But it requires that stubs are written to mimic the missing HW • With a deep understanding of the HW, this should be no problem ... • To quote Morten once again: ”The HW always behaves a ”bit” different than models (errata sheets, special conditions, interrupts, reset/boot behaviour, voltage drops, etc...). It is always vital to verify/profile/investigate the health of the (actual) running system before deployment” Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary 20
  • 63. Where to Develop and Debug • In my opinion it is often much easier to develop and Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) debug on a well-running development host • But it requires that stubs are written to mimic the missing HW • With a deep understanding of the HW, this should be no problem ... • To quote Morten once again: ”The HW always behaves a ”bit” different than models (errata sheets, special conditions, interrupts, reset/boot behaviour, voltage drops, etc...). It is always vital to verify/profile/investigate the health of the (actual) running system before deployment” Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary • But of course it is a matter of choice between the time invested in developing HW stubs and spending the same amount of time (or more) in the round-trip time when developing on a low-powered target ... Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 20
  • 64. Where to Develop and Debug • In my opinion it is often much easier to develop and Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) debug on a well-running development host • But it requires that stubs are written to mimic the missing HW • With a deep understanding of the HW, this should be no problem ... • To quote Morten once again: ”The HW always behaves a ”bit” different than models (errata sheets, special conditions, interrupts, reset/boot behaviour, voltage drops, etc...). It is always vital to verify/profile/investigate the health of the (actual) running system before deployment” Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary • But of course it is a matter of choice between the time invested in developing HW stubs and spending the same amount of time (or more) in the round-trip time when developing on a low-powered target ... • But sometimes it is not an option to go on the target as it has not been developed yet Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 20
  • 65. Status in Teaching Debugging Local Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer • Debugging locally is where the code runs on the development host Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 21
  • 66. Status in Teaching Debugging Local Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer • Debugging locally is where the code runs on the development host • Introduction to concepts in debugging Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Debugging in the Study First Year Second Year Third Year Summary 21
  • 67. Status in Teaching Debugging Local Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer • Debugging locally is where the code runs on the development host • Introduction to concepts in debugging • Unsystematic debugging Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Debugging in the Study First Year Second Year Third Year Summary 21
  • 68. Status in Teaching Debugging Local Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer • Debugging locally is where the code runs on the development host • Introduction to concepts in debugging • Unsystematic debugging Debugging in the Study First Year Second Year Third Year Summary • Systematic debugging Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 21
  • 69. Status in Teaching Debugging Local Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer • Debugging locally is where the code runs on the development host • Introduction to concepts in debugging • Unsystematic debugging Debugging in the Study First Year Second Year Third Year Summary • Systematic debugging • Scientific debugging Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 21
  • 70. Status in Teaching Debugging Debugging Concepts Klaus Kolle (klausk@iha.dk) Introducton • To establish the vocabulary I first introduce how a defect infects the code, and that the infection propagates to a failure, which is an externally observable error EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 22
  • 71. Status in Teaching Debugging Debugging Concepts Klaus Kolle (klausk@iha.dk) Introducton • To establish the vocabulary I first introduce how a defect infects the code, and that the infection propagates to a failure, which is an externally observable error • Classification of bug types can also be useful (Bohrbug, EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Mandelbug, Heisenbug, Schr¨dinbug, Phase of the o Moon bug, Statistical bug, Noob bug (or Noobug)) Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 22
  • 72. Status in Teaching Debugging Debugging Concepts Klaus Kolle (klausk@iha.dk) Introducton • To establish the vocabulary I first introduce how a defect infects the code, and that the infection propagates to a failure, which is an externally observable error • Classification of bug types can also be useful (Bohrbug, EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Mandelbug, Heisenbug, Schr¨dinbug, Phase of the o Moon bug, Statistical bug, Noob bug (or Noobug)) • The use of the debug tools and options are refreshed, introduced and applied Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 22
  • 73. Status in Teaching Debugging Debugging Concepts Klaus Kolle (klausk@iha.dk) Introducton • To establish the vocabulary I first introduce how a defect infects the code, and that the infection propagates to a failure, which is an externally observable error • Classification of bug types can also be useful (Bohrbug, EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Mandelbug, Heisenbug, Schr¨dinbug, Phase of the o Moon bug, Statistical bug, Noob bug (or Noobug)) • The use of the debug tools and options are refreshed, introduced and applied • Having set the scene, we can continue to ... Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 22
  • 74. Status in Teaching Debugging Unsystematic Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer • ”Un-systematic debugging is characterised by setting breakpoints, watches, etc. on suspected places in the code and then run the program until the breakpoint is reached. Hereafter variables can be inspected.” Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Debugging in the Study First Year Second Year Third Year Summary 23
  • 75. Status in Teaching Debugging Unsystematic Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer • ”Un-systematic debugging is characterised by setting breakpoints, watches, etc. on suspected places in the code and then run the program until the breakpoint is reached. Hereafter variables can be inspected.” Debugging in the Study First Year Second Year Third Year Summary • If the developer does not know where to break but just merely the choice on guesses, it is unsystematic however it occurs very often, I can observe Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 23
  • 76. Status in Teaching Debugging Systematic Debugging Klaus Kolle (klausk@iha.dk) Introducton Here are seven steps in systematic debugging: T: Track the problem in a database R: Reproduce the failure A: Automate and simplify the test case F: Find possible infection regions F: Focus on the most likely origins I: Isolate the infection chain C: Correct the defect Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary 24
  • 77. Systematic Debugging in Teaching Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer • For Systematic Debugging it can be a little hard to establish an environment and create a realistic situation within the relatively short time allocated for each subtopic ... Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Debugging in the Study First Year Second Year Third Year Summary 25
  • 78. Systematic Debugging in Teaching Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer • For Systematic Debugging it can be a little hard to establish an environment and create a realistic situation within the relatively short time allocated for each subtopic ... Debugging in the Study First Year Second Year Third Year Summary • But, now - next year - when I have more time, I’ll give it a try Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 25
  • 79. Status in Teaching Debugging Scientific Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 26
  • 80. Status in Teaching Debugging Reasoning - explained Klaus Kolle (klausk@iha.dk) • Deduction (0 runs) • Concluding from abstract to concrete • ”I do not have to measure if the sum of angles in a triangle is 180 degrees. I deduce it from a mathematical theory.” • Observation (1 run) • Observe a phenomenon once • Induction (n runs) • Collecting many concrete observation to form abstract Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary • ”I have met 15 stupid men, thus all men are stupid...” • Experimentation (n controlled runs) • Induction, but controlled by scientific method Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 27
  • 81. Status in Teaching Debugging Steps in Scientific Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 28
  • 82. Status in Teaching Debugging An Example Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 29
  • 83. Status in Teaching Debugging Remote Debugging • This activity is mainly about how we can establish a development and debug environment where we can debug the code, while it executes on the target, but uses a debugger situated more conveniently on the development host Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 30
  • 84. Status in Teaching Debugging Remote Debugging • This activity is mainly about how we can establish a development and debug environment where we can debug the code, while it executes on the target, but uses a debugger situated more conveniently on the development host • So for the students, it is a matter of understanding the production of executable code and what the debugger needs in order to work separated from the executing code Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary 30
  • 85. Status in Teaching Debugging Remote Debugging • This activity is mainly about how we can establish a development and debug environment where we can debug the code, while it executes on the target, but uses a debugger situated more conveniently on the development host • So for the students, it is a matter of understanding the production of executable code and what the debugger needs in order to work separated from the executing code Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary • I typically establish a situation where we produces code for our Linux running on an Embedded Artists LPC 2478 (ARM 7) board, while our debugging environment is situated on the virtual Centos Linux development host, I have provided for the students Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 30
  • 86. Status in Teaching Debugging Remote Debugging • This activity is mainly about how we can establish a development and debug environment where we can debug the code, while it executes on the target, but uses a debugger situated more conveniently on the development host • So for the students, it is a matter of understanding the production of executable code and what the debugger needs in order to work separated from the executing code Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary • I typically establish a situation where we produces code for our Linux running on an Embedded Artists LPC 2478 (ARM 7) board, while our debugging environment is situated on the virtual Centos Linux development host, I have provided for the students • We use a gdb-server on the target Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 30
  • 87. Status in Teaching Debugging Remote Debugging • This activity is mainly about how we can establish a development and debug environment where we can debug the code, while it executes on the target, but uses a debugger situated more conveniently on the development host • So for the students, it is a matter of understanding the production of executable code and what the debugger needs in order to work separated from the executing code Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary • I typically establish a situation where we produces code for our Linux running on an Embedded Artists LPC 2478 (ARM 7) board, while our debugging environment is situated on the virtual Centos Linux development host, I have provided for the students • We use a gdb-server on the target • We use gdb/ddd or Eclipse on the development host Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 30
  • 88. Status in Teaching Debugging Presentation Outline Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer 1 Introducton Debugging in the Study EDE Background Profile of the EDE engineer First Year Second Year Third Year Summary 2 Debugging in the Study First Year Second Year Third Year Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 31
  • 89. Status in Teaching Debugging Application Klaus Kolle (klausk@iha.dk) • In the elective courses the students mainly apply their gained knowledge in order to learn and understand new theory Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 32
  • 90. Status in Teaching Debugging Application Klaus Kolle (klausk@iha.dk) • In the elective courses the students mainly apply their gained knowledge in order to learn and understand new theory • My colleague Anders introduces Fuzzy Testing as part of his Advanced Software Design courses (Fuzzy Testing is the art of bombarding the test object with a massive amount of random data in order to provoke errors) Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary 32
  • 91. Status in Teaching Debugging Application Klaus Kolle (klausk@iha.dk) • In the elective courses the students mainly apply their gained knowledge in order to learn and understand new theory • My colleague Anders introduces Fuzzy Testing as part of his Advanced Software Design courses (Fuzzy Testing is the art of bombarding the test object with a massive amount of random data in order to provoke errors) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary • If new languages and development environments are introduced it is expected that the students are able to develop and debug the programs they are recommended to construct as part of the learning Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 32
  • 92. Status in Teaching Debugging Summary Klaus Kolle (klausk@iha.dk) Introducton • It is our opinion that we do give our students a rather good foundation to enter the job market EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 33
  • 93. Status in Teaching Debugging Summary Klaus Kolle (klausk@iha.dk) Introducton • It is our opinion that we do give our students a rather good foundation to enter the job market • Because of our limited time, we may unfortunately not be able to deal with the tops in depth EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 33
  • 94. Status in Teaching Debugging Summary Klaus Kolle (klausk@iha.dk) Introducton • It is our opinion that we do give our students a rather good foundation to enter the job market • Because of our limited time, we may unfortunately not be able to deal with the tops in depth • But no one is perfect, so always welcome inputs that EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary can change and improve our teaching Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 33
  • 95. Status in Teaching Debugging Summary Klaus Kolle (klausk@iha.dk) Introducton • It is our opinion that we do give our students a rather good foundation to enter the job market • Because of our limited time, we may unfortunately not be able to deal with the tops in depth • But no one is perfect, so always welcome inputs that EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary can change and improve our teaching • I look forward to listening to the other presentations today and maybe be inspired to add even more topic to my courses Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 33
  • 96. Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study Any Questions? First Year Second Year Third Year Summary Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 34
  • 97. Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) Introducton EDE Background Profile of the EDE engineer Debugging in the Study First Year Second Year Third Year Summary Thank you for your attention Status in Teaching Debugging Klaus Kolle (klausk@iha.dk) 35