Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7218091
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 28, 20262026-05-28T21:26:14+00:00 2026-05-28T21:26:14+00:00

The software produced by my company has several layers and is broken into two

  • 0

The software produced by my company has several layers and is broken into two projects. The “inner layer” is a HAL layer and talks directly to the driver for the hardware we produce. This is in a Visual Studio project called “xxxHAL”. This project builds into a static library. The other layers together form a client-API. These “other layers” are in their own separate VS project and statically link the HAL lib file from the first. They build into a DLL that we distribute so that clients can build their own software.

My questions:

  • What is the motivation for separating the HAL functions into their own static library?

  • Why put all these HAL functions in the global namespace? How does this fit into the OOP paradigm?

The entire two-project set is a recent redesign of an older API from the ground up and was built very methodically. The API design is very object-oriented and to my eyes appears at least pretty well designed. For the end-user, things are pretty easy to use and clear, so I can understand the motivation for building the API-user side software this way. I guess I’m mainly feeling that if I had gone and designed the software from the ground up, I would have taken a different approach. Any thoughts?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-28T21:26:15+00:00Added an answer on May 28, 2026 at 9:26 pm

    What is the motivation for separating the HAL functions into their own static library?

    The name says it all Hardware Abstraction Layer.
    It decouples other software components in your project from the Hardware.
    This loose coupling ensures easy portability across different Hardware platforms.
    Also, It abstracts that “other layers” of your software stay abstracted from any source code changes in Hardware source code.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

The software my company uses has a web service which signature is more or
Suppose you work at a medium-to-large software company with many independently-developed projects (independent coders)
At my company we have produced a piece of software that a lot of
Upgrading software for embedded devices often has the possibility of bricking the device, e.g.
The software group I currently work in has recently decided to start documenting our
Our software has data to store, so it also install MYSQL, a root user
Our software is written in Java and comprise many (7) projects. These projects are
I ran into an issue with some third party software that we use to
Our company plans to auto-generate our projects from the domain area up-to the presentation
As a passionate opensource developer, I produced a lot of software during the years.

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.