Questions tagged [embedded-systems]

"An embedded system is a computer system designed for specific control functions within a larger system, often with real-time computing constraints." Michael Barr. "Embedded Systems Glossary". Neutrino Technical Library. Retrieved 2007-04-21, copied from Wikipedia.

Filter by
Sorted by
Tagged with
2 votes
2 answers
162 views

Optimizing Flash Memory Writes in Embedded Systems with Unpredictable Power Loss

I'm working on an embedded C++ project that involves logging certain types of statistical data (like successful accesses, failed attempts, and other events) to the flash memory (just incrementing ...
Dario.Casciato's user avatar
1 vote
1 answer
95 views

How to return a result from an active object state machine

I frequently use the concept of Active Objects (https://www.state-machine.com/active-object) combined with state machines when designing code. The key idea behind these is that only "events"...
Patrick Wright's user avatar
4 votes
1 answer
281 views

Dealing with global variables required by badly-written library

I am working with a library that is somewhat poorly written. In order to function, it requires several global variables to be declared and sometimes even maintained by my own code. I really don't ...
Infinite_Maelstrom's user avatar
1 vote
3 answers
191 views

TDD - What to do when adding a new function on a dependency causes many previous tests to fail?

I was programming today and encountered something that just feels like I'm doing something wrong (maybe?). I've encountered this situation before, but I wanted to reach out and ask if there's a better ...
jrgilman's user avatar
  • 121
0 votes
0 answers
59 views

Decoupling a Configuration API in an Embedded Framework

In my embedded project I am designing a framework that allows the user to create widgets at compile time. All widgets must provide the same base functionality. Further, there are multiple widget ...
nowhere_'s user avatar
5 votes
3 answers
943 views

Group set of commands as atomic transactions (C++)

We're designing the architecture of an embedded device (esp32). One of the tasks is that the device should connect to the internet and use a preprovisioned redeem code to register itself with our web ...
glades's user avatar
  • 351
0 votes
1 answer
65 views

Best practices for managing different libraries for variations of a sensor [closed]

Due to the previous supply chain issues, I currently have multiple variations of a particular sensor that performs a function in my design. Each of these variations have their own library associated ...
Rico's user avatar
  • 39
5 votes
2 answers
479 views

How to propagate parameters through several architectural layers?

Overview I am tasked with designing a system that serves as an Interface between a User and one or more microcontrollers in different Variants. As an example, our Microcontrollers Type 1 are milk ...
UnbescholtenerBuerger's user avatar
0 votes
1 answer
124 views

Selecting the endianness of data in files generated by an embedded system

I have an embedded system running on a little-endian Cortex-M3. This system is able to accept packets from the network and reply to them. Now, I would like the system to start generating files. These ...
9a3eedi's user avatar
  • 2,101
0 votes
1 answer
128 views

How to manage concurrent build & test toolchains in (embedded) software development?

TL;DR: How do you manage the complex development toolchain in different (embedded) projects? In our company we are discussing the toolchain setups in different development teams and how to work ...
ThePMO's user avatar
  • 109
0 votes
2 answers
93 views

Double check of Book Erratum regarding Harvard Architecture and Von Neumann architecture

I was reading chapter 1 of the book Embedded Systems with ARM Cortex-M Microcontrollers in Assembly Language and C. (3rd Edition, June 2018) I think the figure 1-6 is incorrect. It says that "...
Nuz's user avatar
  • 51
0 votes
1 answer
153 views

Best Architecture to integrate a camera to a system [closed]

I'm trying to integrate a Camera to a more complex system in C++. The camera I'm using has a low-level API so I'm thinking about using a more simple interface. Basically what I'm planning to do is (in ...
Julie96's user avatar
  • 113
0 votes
1 answer
184 views

Help architect a timer-based scheduler

I am writing a timer-based scheduler to accomplish the task of informing a certain process of what to do and when. The Idea: Inform an X process of certain requests to perform at timed-intervals. So ...
xyf's user avatar
  • 109
0 votes
2 answers
286 views

Low level C driver API

Recently I had my first experience writing a wrapper around FTD2XX driver for a desktop tool that communicates with an embedded device. The library provided some common device specific functionality ...
keyermoond's user avatar
0 votes
0 answers
72 views

How should data be formatted between embedded device and app/cloud?

We have an embedded device collecting data from various sensors attached to it. The data is then passed to the application. What is the best way to design the data packets? The data needs to be ...
Galactasm's user avatar
1 vote
0 answers
338 views

How to use polymorphism in embedded software?

I have been developing a control software in C++. From the high perspective the control task can be basically divided into several subtasks calculate unmeasurable physical quantity based on dynamic ...
Steve's user avatar
  • 141
1 vote
2 answers
122 views

Visitor design pattern usage

I have been implementing a software driver for an external (from my microcontroller point of view) chip communicating with my microcontroller over I2C. From the higher perspective the chip is a ...
Professor Jimatura's user avatar
2 votes
1 answer
193 views

Methods for remote display of and embedded FreeRTOS devices display

I have a device that has a NXP MK66FN1M arm core processor with a black and white display. This device is running FreeRTOS with serial, usb, keypad, display, external FeRAM, wifi, and ethernet. What ...
NDEthos's user avatar
  • 121
2 votes
0 answers
104 views

How to design software driver for the analog to digital converter?

I have been developing software driver for the analog to digital converter in C++. The a/d converter is primary intended for conversion of the temperature signals. The temperature signals are then ...
L3sek's user avatar
  • 159
0 votes
0 answers
42 views

Using a bulletin board to support Separation Of Concerns

Context: I'm working on an embedded system with many small functional modules. The business logic within each module is made as simple as possible, but those modules generally need to gather bits of ...
fearless_fool's user avatar
0 votes
1 answer
46 views

Software driver for remote digital inputs

I have been facing a task to develop a software driver in C++ for a chip which makes available 8 digital inputs over the SPI bus. In the time being I have been thinking about the interface of the ...
L3sek's user avatar
  • 159
1 vote
0 answers
161 views

How to develop software drivers for the mcu peripherals in C++?

I have been developing a set of software drivers for the peripherals of a MCU. I need to implement those drivers in the C++ programming language. My idea was to model each driver by its own class. ...
L3sek's user avatar
  • 159
2 votes
1 answer
137 views

Ask for suggestion: data type for parsing stringified fractional numbers

I am the author of a C library for parsing INI files. So far I have delegated the task of parsing values as numbers to the standard atoi() family of functions. However I think time has come that I ...
madmurphy's user avatar
  • 129
4 votes
1 answer
380 views

What is AUTOSAR? Is it a file structure?

I've gone through AUTOSAR Layered Software Architecture and understood that it is something like a file structure in which it is defined to have all the hardware abstraction in one directory and ...
sskartheekadivi's user avatar
0 votes
0 answers
60 views

Modular design of authentication schemes for a http client

I want to make a httpClient wrapper that is able to use a predefined set of authentification methods: basic, digest, token (oauth), ntlm just to name a few that I will have to implement. My approach ...
niraami's user avatar
  • 109
1 vote
1 answer
278 views

Array Declaration for Embedded System

I am developing a library for an embedded system with very little storage in C++. I would like to declare an array for a specific use in one function, however I am unsure if I should declare this in ...
Rico's user avatar
  • 39
-2 votes
1 answer
74 views

Designating a pin header and a GPIO

I have an Acconeer XB112 breakout board and an XM112 radar module. It all works just fine per the Acconeer documentation and tutorials. Now I want to modify some of the code to output to a GPIO. ...
acpilot's user avatar
  • 107
0 votes
1 answer
196 views

How to go from Simulink to embedded fixed-point DSP processor?

A library of audio algorithms is modeled, tested and verified in Simulink (graphical block diagramming tool). It needs to go from this existing Simulink models down to a multiple embedded platforms (...
Danijel's user avatar
  • 101
-2 votes
2 answers
237 views

Is it possible to write unit tests for embedded systems with no prior embedded programming knowledge?

I have this question for a long time that is it possible for someone with no prior embedded systems programming experience to write unit tests? I have good knowledge of other languages like JAVA, ...
deanavenger's user avatar
0 votes
0 answers
77 views

Architecture Design of Command&Control application center for displays

I am facing dilemma on how to best design the following functionality. What design patterns and OOD principles should I use. For simplicity sake following are basic requirements: displays type ...
coderock's user avatar
4 votes
5 answers
1k views

How to deal with a lot of conditions in If statement in an elegant manner

Is there a more syntactically beautiful/simply better way to write the following (without major abstraction)?: if (usart_error.CRCError == true || usart_error.DMATransferError == true || ...
NoOne's user avatar
  • 81
1 vote
2 answers
1k views

Executable VS. Software image

Need your help to clarify primitive concepts: In an embedded system, when a program runs on the processor (ARM as an example), in my understanding that it is because the "code to be executed" is ...
Lavender's user avatar
  • 119
10 votes
3 answers
4k views

An older, experienced contractor used an SQLite DB for various queues - am I, a young dev, justified with feeling uncomfortable with it? [closed]

Context: I'm an embedded dev with only 2 years of solid experience. I'm the sole technical employee of a startup of 4 people. We have an MVP of our product out and are getting ready to develop the ...
KubaFYI's user avatar
  • 219
1 vote
1 answer
202 views

Developing and debugging code with a logic analyzer?

Until now I used Arduinos with shields and ICs and mostly I used libraries to communicate with i.e. ADC, DAC, Real Time Clock, etc. Now I want to do the same kind of programming with the same ICs ...
Edgar's user avatar
  • 293
1 vote
1 answer
614 views

One loop or MultiTasking with FreeRTOS in ESP32 project?

I programmed a CAN Bus logger for the ESP32 with ESP-IDF. Currently this is just one main program with one loop. In that loop data is read from the CAN-Bus receiver and written to one log file on a ...
Edgar's user avatar
  • 293
25 votes
7 answers
7k views

Can abstractions and good code practice in embedded C++ eliminate the need for the debugger?

I am a C developer for an embedded system. YouTube has recently started recommending "C++ for embedded systems" talks. Having watched some of them, they pique my interest, but none of them answer the ...
Smyther's user avatar
  • 369
1 vote
1 answer
278 views

Finding undefined behaviour in C for embedded system

I just started at a small company and there is a hot-needle-built software for micro controllers written in C which we are now starting to clean up to make it maintainable again. Of course this goes ...
user avatar
0 votes
2 answers
462 views

Should I separate send and receive methods into tasks for a CAN-BUS reader on ESP32?

I am developing a CAN-BUS reader (logger) with an ESP32 microcontroller. This sample uses RTOS and several task to send and receive CAN-BUS messages. https://github.com/espressif/esp-idf/tree/master/...
Edgar's user avatar
  • 293
1 vote
2 answers
1k views

How to connect IOT devices to Android App(initial connection) [closed]

Background I am starting a new project, and I want custom IOT sensors for an app I am writing. I want to keep everything as simplistic as possible so the IOT devices wont be running any major software ...
Gambit's user avatar
  • 31
2 votes
1 answer
1k views

Testable class/interface in embedded software written in C++

I would like to collect feedback on possible solutions for creating testable classes/interfaces. In a normal C++ development we can use references/pointers and forward declarations to achieve dynamic ...
Stanislav Pankevich's user avatar
4 votes
1 answer
802 views

C++ pattern for compile-time configurable class functionality

Due to resource limitations (embedded), I want to make some functionality that a class provides optional. The decision to include this optional functionality should be made at compile time. For ...
Alexander Willer's user avatar
3 votes
3 answers
660 views

Best way to conditionally exclude unused code (C++03)

I'm working on a bare-metal embedded system, with a class that can be compiled for different hardware versions. The class takes in a pointer to a device and uses it, or takes in NULL if the device is ...
Marlon Smith's user avatar
0 votes
1 answer
88 views

How is a function in execute only space compiled?

I don't quite understand, how the following typedef is parsed by a compiler to call code at a specific address. I guess I understand that a function is just a pointer and we're typedefing such a ...
Harper's user avatar
  • 11
2 votes
1 answer
366 views

Design approach for extending class functionality - Embedded C++

For my company i am refactoring our embedded C/C++ code base to increase re-usability for commonly used functionality. Currently i am refactoring our command line interface but i ran into a design ...
Johan Zwarteveld's user avatar
4 votes
2 answers
573 views

Best way to model UTC time and deltas in embedded C

I'm getting ready to do some work on an embedded firmware prototype that has a GPS chip attached to it (straight C on an arm0, no OS). I'm torn on how to model UTC instants and time deltas. ...
Travis Griggs's user avatar
1 vote
1 answer
139 views

Board support driver for custom board - API design - MCU resource configuration

I have got to implement a board support package for a custom board, and I would like to know your opinion about the different approaches of designing board support drivers. My custom board pupulates ...
Sinushyperbolikus's user avatar
3 votes
2 answers
588 views

Object Oriented vs. Procedural Processes in Embeded System

I'm currently developing a controller for an industrial application which takes data inputs from various sensors and interfaces (ethernet, serial, etc.), does some minimal processing, and adjusts ...
Dragonsheep's user avatar
2 votes
1 answer
948 views

How to abstract HAL in embedded test driven development?

Recently I've been reading into topic of test driven development and decided to give it a go with a sensor driver I need. Sensor uses SPI interface and I will implement this driver on STM32F415 ...
hbrezak's user avatar
  • 81
2 votes
2 answers
2k views

Appropriate way to handle timezone for embedded/IoT devices

I am writing some data collection software (in python) that will transmit data to the cloud. I am including a timestamp (using the standard datetime module included with python) in the data record so ...
Alex's user avatar
  • 131
1 vote
1 answer
408 views

Help defining architecture - async messaging; web app as portal in web page

I don't know if this is a legitimate architecture that I've been playing with. It consists of nodejs servers for services and to create web app front ends. And it is using async messaging (Redis) to ...
HankCa's user avatar
  • 129