Home > Speakers >

Prabo Semasinghe

Prabo Semasinghe is an experienced firmware engineer with over 8 years of experience in architecting, designing, implementing, and testing embedded software. She has collaborated with diverse development teams, ranging from startups to established firms, and is currently serving as the Lead Firmware Developer for the GSI Winnipeg Team.

Prabo’s career goal is to leverage her expertise to enhance software development and testing processes within the embedded systems domain. She holds a PhD in Electrical and Computer Engineering from the University of Manitoba, a Master’s in Telecommunications from the Asian Institute of Technology, and a Bachelor’s in Electrical and Electronics Engineering from the University of Peradeniya.

Developing and Maintaining Application-Independent Driver and Hardware Abstraction Layers for Embedded C

Status: Coming up in April 2025!

Creating reusable, easily maintainable, and scalable firmware with a modular architecture greatly benefits development teams. When similar hardware is replicated in multiple projects, the temptation to copy and paste code across projects is strong! However, is this the most effective approach to code reuse? How do you manage bug fixes and improvements for code that is duplicated in various projects?

This session will explore how to generalize and decouple the driver layer and hardware interfacing layer into independently manageable firmware components. Topics covered will include:

  • The benefits of developing separate, manageable Driver and Hardware Abstraction Layers (HAL).
  • Strategies for writing and managing generalized code:
    • Using submodules for code management and reuse.
    • Linking generalized driver and hardware abstraction layers with applications via a specific manager module.
    • Handling product-specific functionalities using function pointers.

The session will provide examples to illustrate these concepts and demonstrate their application in practice.

Go to Session