Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
  • Groups
    • Research Collaboration and Enablement
    • DesignStart
    • Education Hub
    • Innovation
    • Open Source Software and Platforms
  • Forums
    • AI and ML forum
    • Architectures and Processors forum
    • Arm Development Platforms forum
    • Arm Development Studio forum
    • Arm Virtual Hardware forum
    • Automotive forum
    • Compilers and Libraries forum
    • Graphics, Gaming, and VR forum
    • High Performance Computing (HPC) forum
    • Infrastructure Solutions forum
    • Internet of Things (IoT) forum
    • Keil forum
    • Morello Forum
    • Operating Systems forum
    • SoC Design and Simulation forum
    • 中文社区论区
  • Blogs
    • AI and ML blog
    • Announcements
    • Architectures and Processors blog
    • Automotive blog
    • Graphics, Gaming, and VR blog
    • High Performance Computing (HPC) blog
    • Infrastructure Solutions blog
    • Innovation blog
    • Internet of Things (IoT) blog
    • Operating Systems blog
    • Research Articles
    • SoC Design and Simulation blog
    • Smart Homes
    • Tools, Software and IDEs blog
    • Works on Arm blog
    • 中文社区博客
  • Support
    • Arm Support Services
    • Documentation
    • Downloads
    • Training
    • Arm Approved program
    • Arm Design Reviews
  • Community Help
  • More
  • Cancel
Education Hub
Education Hub
Robert Iannello Teaching Embedded Systems: A Perspective from Aarhus University
  • Blogs
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
  • New
Education Hub requires membership for participation - click to join
More blogs in Education Hub
  • Anna Malan

  • Apurva Varma

  • Becky Ellis

  • Hao Xue

  • Khaled Benkrid

  • Michael S

  • Nicholas Sample

  • Rob Leeman

  • Robert Iannello

  • Rosalie Tribe

  • Sadanand Gulwadi

  • Shuojin Hang

  • Suriya Gunasekaran

Tags
  • Teachers
  • Arm Education
  • Arm University Program
  • Embedded
  • Arm Education Media
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

Teaching Embedded Systems: A Perspective from Aarhus University

Robert Iannello
Robert Iannello
May 10, 2019

In our ongoing series of case studies focusing on how universities from across the world are teaching embedded systems, we took some time this month to speak to Morten Opprud Jakobsen, Associate Professor with the School of Engineering at Aarhus University.

We asked Morten about his experiences teaching the subject, as well as how he uses the materials from Arm Education to help develop his courses.

Arm Education meets Morten Opprud Jakobsen: The Interview

 Aarhus University Morten Opprud Jakobsen

Arm Education: Please introduce yourself to our readers. 

Morten Opprud Jakobsen: I am an Electronic Engineer (B.Sc.E.E), and graduated from Aarhus University, Denmark in 2005.

Since then, I have worked on the development of embedded hardware and software for applications in motorsports and renewable energy. I’ve also been developing small prototypes and mechatronic systems for custom machines.

My specialities are embedded systems architecture, efficient low-level software design, embedded hardware design (microcontroller and peripherals), and FPGA design using VHDL.

Since 2009, I’ve been teaching embedded systems and digital hardware design on FPGAs at Aarhus University. I also work on collaborative projects between the university and companies in our region of Denmark. 

Can you describe Aarhus University for us? What challenges and opportunities are you facing in teaching Embedded Systems there?

Aarhus University has a strong emphasis on teaching students how to collaborate effectively by working on real-life challenges and projects.

During the seven semesters of our Embedded Systems course, the students work with, and are taught on, a combination of analog and digital hardware and software. In the sixth semester our students will also have  internships at an engineering company.

We’re currently using the NXP KL25 board to teach embedded systems, as per Arm Education Media’s Embedded Systems Fundamentals textbook. In the past we’ve used a range of platforms including:

  • Microblaze Softcore on FPGA 
  • ARM7 using NXP’s LPC2478 board and Embedded Artists LPC2478 board
  • Cortex-M4, using Embedded Artists LPC4088 board

The development of new devices, debuggers, and toolchains is moving at a very fast rate. It’s hard to keep up, while still selecting a simple hardware platform that will give students a good introduction to microcontrollers. No one board can potentially satisfy all teaching needs. For example, we work mostly with simple protocols like SPI, UART, I2C, and then move on the CAN. Unfortunately, the KL25 doesn’t have CAN, so the students use Beagle Boards instead for this exercise.

IoT is a rapidly emerging opportunity. I teach an elective course in the fifth semester of the course, and we use Particle.io since it comes with a lot of great features. We then go a bit deeper with MQTT in order to give students a basic overview of a popular IoT protocol.

The field of embedded design is fun and a lot is happening right now. Personally, I am thrilled to see initiatives like Google Tensorflow and Arm NN trickle down to microcontrollers. I can’t wait until we can build efficient Machine Learning models and run lightweight versions on microcontrollers.

How do you prepare for your Embedded Systems class? How have the Arm Education materials and the textbook helped you here?

Yes, the Efficient Embedded Systems Education Kit and the Embedded Systems Fundamentals textbook are very good. I’ve had access to the lecturer slides from the Education Kit for a couple of years now and have used some of them in my earlier courses.

I do use MCUXpresso instead of the Keil tools, mostly because it’s free, and it uses GCC. The students can then keep the tools when the course ends. Also, we use GCC for Linux, so its familiar to the students.

 I often write my own labs. I start out simple, taking inspiration from figures and chapters from the Embedded Systems Fundamentals textbook, and then add complexity and features. 

One of the key elements in embedded systems is writing a device driver for a peripheral in the microprocessor. This means that the students need to have an understanding of how a microcontroller works, combined with an ability to read and understand content from the microprocessor user manual. For example, MCUXpresso’s Peripheral+ viewer displays register content, and allows real time modifications of bits, and register values. This is valuable when learning to write and debug device drivers, especially when you combine this with the ability to interpret the processor manual.

Furthermore, in most of my labs, I try to incorporate an element that can or must be measured with an oscilloscope. I think this is still the most effective way to visualise what’s going on.

However, most students prefer to use their analog discovery tool these days - it’s just me that prefers an oscilloscope!

Embedded technologies are growing at a fast rate, especially with the rise of IoT. What opportunities and challenges do you see in embedded systems for your students as they move into the workplace?

Students need to learn the basics. How does a processor operate? What does it take to boot? How can you configure peripherals in an energy efficient manner? They also need to combine this with a top-down approach, so by taking an Embedded Linux class, for example. If students are exposed to both of these areas, I believe they can take on any embedded processor system when they graduate.

Additionally, the rise of IoT will just add even more focus on understanding the full system architecture of whatever you are building. For example, when you are designing a battery powered device, you need to know exactly what’s going on, in every corner of your device, and make sure that you’re using no more energy that you absolutely have to.

A lot of my students get a job where embedded development is a part of their daily life, at least in a part of their career, and it seems they are pretty good at picking up what is happening inside a system.

Share your story with Arm Education today

Want to share your education story with us? We’re on the look-out for case studies from academics who are teaching Arm in the classroom. If you’d like us to highlight your own teaching experiences in an upcoming blog, please contact us below.

Email Arm Education

 You can find previous case studies from Ghana and Jordan on the Education Hub.

Anonymous
Robert Iannello
  • Teaching embedded systems: a post-pandemic perspective from the University of Sydney

    Robert Iannello
    Robert Iannello
    This month we speak to Philip Leong at the University of Sydney and discuss his experiences embedded systems post pandemic.
    • August 24, 2022
  • Announcing our online course on edX: Business Models for Technology Innovators

    Robert Iannello
    Robert Iannello
    Read about the genesis of our new Business Models for Technology Innovators course and the ‘essential human skills’ it sets out to teach.
    • July 11, 2022
  • Experiences in teaching Arm-based courses: A blended approach

    Robert Iannello
    Robert Iannello
    In this blog, we revisit our first co-certified course on “Rapid Embedded Systems Design and Programming” with Nanyang Polytechnic.
    • May 11, 2021