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.

542
votes
2answers
200k views

What is the Mars Curiosity Rover's software built in?

The Mars Curiosity rover has landed successfully, and one of the promo videos "7 minutes of terror" brags about there being 500,000 lines of code. It's a complicated problem, no doubt. But that is a ...
44
votes
7answers
22k views

best practice when unit testing for embedded development

I am looking for some best practice strategies for unit testing code written for embedded system. By embedded system, I mean code such as device drivers, ISR handlers etc., stuff that are pretty close ...
34
votes
8answers
27k views

Is embedded programming closer to electrical engineering or software development? [closed]

I am being approached with a job for writing embedded C on micro controllers. At first I would have thought that embedding programming is too low on the software stack for me, but maybe I am thinking ...
29
votes
2answers
5k views

Code development process for Voyager mission?

Voyager 1 reached interstellar space in August 2012 and is the most distant human-made object in existence. Launched just shortly after its twin spacecraft, Voyager 2, in 1977, Voyager 1 explored the ...
26
votes
7answers
15k views

What is a faster alternative to a CRC?

I'm doing some data transmission from a dsPIC to a PC and I'm doing an 8-bit CRC to every block of 512 bytes to make sure there are no errors. With my CRC code enabled I get about 33KB/s, without it I ...
20
votes
2answers
24k views

Good unit test examples for embedded C developers [closed]

I'm going to be giving a talk to my department next week about unit testing and test-driven development. As part of this, I'm going to show some real-world examples from some code I've written ...
17
votes
8answers
10k views

How do I do TDD on embedded devices?

I'm not new to programming and I've even worked with some low level C and ASM on AVR, but I really can't get my head around a larger-scale embedded C project. Being degenerated by the Ruby's ...
16
votes
4answers
4k views

How to adopt agile methodology for developing firmware/embedded-systems-software?

I've always wondered how to apply agile methods really are in large complex embedded system software (100+ engineers). Firmware development has some unique characteristics that make it difficult to ...
15
votes
3answers
3k views

How Do You Handle Non-Functional Work With Scrum in Embedded Systems?

I have two issues with scrum in embedded systems. First, there are many tasks to do, especially in the early stages, which are not demonstrable. We started with a dev board, no OS, no display, no ...
15
votes
1answer
2k views

What proportion of programming is done for embedded systems?

What proportion of programming is done for embedded systems? More generally, please share any interesting statistics on programmers by domain, e.g. real-time/business/UI/gaming/… How you define the ...
14
votes
8answers
18k views

Why does C dominate in the embedded software market? [closed]

Almost everyone will now say the blessing: performance! Okay, C does allow to write athletic code. But there are other languages that can do so, after all! And the optimising power of modern ...
14
votes
2answers
3k views

Functional Programming For Embedded Software [closed]

I was discussing F# and Functional Programming with a friend last night and he brought up an interesting question to me. How would you do embedded software in functional? I mean this seems like a ...
13
votes
5answers
7k views

Which languages are used today for low-level programming? [closed]

When I hear low-level programming, such as for drivers, embedded systems, operating systems, etc., I immediately think about C and perhaps C++. But mainly C. But what other languages are also used ...
13
votes
6answers
10k views

How exactly do we go from Binary/Hex to Assembly Instruction sets?

So i've been trying to learn some Embedded/Assembly programming for a bit here lately, as well as going far as trying to learn the lowest level (gates and such). One thing puzzles me though....is how ...
13
votes
1answer
304 views

What are the absolute, minimal requirement for containing SE Asian charsets for an embedded system project?

I work for a company that has begun integrating embedded computer systems into our products that we manufacture. We have a pretty wide range of products and they are distributed across the globe. ...
11
votes
3answers
3k views

What are the typical naming conventions for OO C public and private functions? [closed]

Short Question Is there a typical way to name 'public' and 'private' members of an OO C project? Background I fully understand that public and private members do not really exist in the C language. ...
11
votes
5answers
2k views

Is there a drawback at allocating a huge amount of the stack for a single array in an embedded system?

I usually have no problem deciding whether some data has to be global, static or on the stack (No dynamic allocation here, so no use of the heap). I have also read a few Q/A such as this one but my ...
11
votes
1answer
521 views

Why would it take hours to decode transmissions from Curiosity rover via MRO?

This video clip by NASA says that data from Curiosity relayed by the Mars Reconnaissance Orbiter (MRO) would be stored for a few hours, then transmitted to Earth (apparently taking about 14 minutes), ...
10
votes
4answers
4k views

Learning embedded systems development without supervision [closed]

I have graduated this year and got my first job involved with C programming, Linux administration and embedded systems development. I feel quite content with my job, but I'm afraid I won't become a ...
9
votes
4answers
637 views

Omitting “destructors” in C is taking YAGNI too far?

I'm working on a medium embedded application in C using OO-like techniques. My "classes" are .h/.c modules using data structs and function pointers structs to emulate encapsulation, polymorphism, and ...
9
votes
3answers
2k views

In software, what does the term “Embedded” entail?

So I've been looking at furthering my knowledge into embedded and lower level hardware programming, however, every time I look for jobs that mentions "embedded" it's always high level stuff. To me, ...
9
votes
1answer
3k views

What does “general purpose system” mean for Java SE Embedded?

The Oracle website says this about Java SE Embedded license: development is free, but royalties are required upon deployment on anything other than general purpose systems What does "general ...
9
votes
3answers
7k views

Custom heap allocators

Most programs can be quite casual about heap allocation, even to the extent that functional programming languages prefer to allocate new objects than modify old ones, and let the garbage collector ...
9
votes
2answers
4k views

Embedded Linux vs Windows Embedded Standard 7 [closed]

Ok looking for some really subjective answers. My company has traditionally been a Linux shop, we manufacture and sell purpose built boxes for video security. We recently decided to build an ...
8
votes
4answers
7k views

What are some standard design methods to add GUI to a command line app? [closed]

I have an embedded Linux C application that runs with a simple CLI. I am now tasked with creating a GUI that accomplishes the same functionality as the command line program. I am not an accomplished ...
8
votes
4answers
2k views

Scrum for Embedded system devices

In our company, we are going to deliver a new product which will be used for mass notification, so it is an embedded software project and we are going to use the SCRUM as a framework for the product. ...
8
votes
4answers
7k views

A good interpreted language for a small embedded project [closed]

I have an mbed microcontroller which has a small ARM Cortex M3 on it. Basically, my effective resources for the project are ~25 KB of RAM and ~400 KB of Flash. For I/O I'll have a PS/2 ...
8
votes
1answer
283 views

Can message passing be used for a CPU redundancy and load-balancing construct

In bare metal or minimal RTOS type embedded systems with multiple processors is it possible to have an identical program running on each processor that uses Message Passing Interface (MPI) to provide ...
7
votes
9answers
3k views

Mission critical embedded language [closed]

Maybe the question sounds a bit strange, so I'll explain a the background a little bit. Currently I'm working on a project at y university, which will be a complete on-board software for an satellite....
7
votes
2answers
5k views

LGPLv3 in closed embedded environment

I'm thinking of using a LGPLv3 library in a closed source commercial program running in a closed embedded environment. According to what I know from LGPLv3 licensing, I can use it as long as the ...
7
votes
1answer
671 views

Design considerations for configuration menu on embedded system

I am working on an embedded system that interfaces with the user with several buttons and a small graphic display. As a side note: Since I am on an embedded system, I would like to prevent dynamic ...
6
votes
2answers
3k views

Writing generic code when your target is a C compiler

I need to write some algorithms for a PIC micro controller. AFAIK, the official tools support either assembler or a subset of C. My goal is to write the algorithms in a generic and reusable way ...
6
votes
3answers
1k views

Safety-critical software and optimising compilers

I'm reading some internal documentation for code developed to the MISRA C guidelines, and I see that in compiler flags section of the documentation there is a note to compile with optimisation off (-...
6
votes
1answer
275 views

Using nested classes to modularize large application code?

I'm building a large Desktop application, which will have a range of functionality, for each I wish to have a specific class. I'm thinking of using a nested class structure to modularize the code and ...
6
votes
2answers
9k views

xml parser vs JSON parser performance in Java / C / C++

I am trying to understand which data format is better on embedded device communicating with Server over REST API. XML or JSON?. Is JSON parsing faster than XML parsing in Java / C and C++? I ...
6
votes
4answers
563 views

Agile requirements gathering in embedded project [duplicate]

I am working on a project where we develop an embedded application for a Linux-based device handling data from different sensors and visualizing them to the end user. We try to use Scrum process but ...
6
votes
2answers
2k views

Automated builds, build tools and Embedded systems

I come from an embedded world where we use C/C++ for programming, and use an IDE to generate a binary file, which is then programmed into a Hardware Board, which can then be tested. With this ...
6
votes
1answer
966 views

How to break up Yocto layers for continuous integration?

We are building embedded software using a Linux setup based on the Yocto project. We have a couple different configurations that we are building for different purposes (but the same target). I have ...
5
votes
7answers
14k views

What is the best way to learn how to develop drivers? [closed]

At some point in my career I would definitely like to get involved in some embedded programming. I was thinking that starting out with developing some drivers would be a good place to develop my ...
5
votes
2answers
150 views

How to abstract from a display?

I'm building an embedded text editor consisting of a keyboard, an LCD display and a PIC32 microcontroller, to be programmed in C. The application should look, for example, like the GNU nano editor. ...
5
votes
1answer
537 views

Why do some embedded projects shun cross-compiling?

As I've been getting into embedded systems I've noticed that some projects (Arch Arm and OpenBSD for example) frown upon cross compiling. What is the reasoning for this? Is a cross-compiled binary ...
4
votes
7answers
8k views

Is a degree needed for low-level/embedded programming jobs? [closed]

I know that it is possible to get into software development without a degree in computer science, but is it possible (or rather, common) to be able to get an embedded programming job without the ...
4
votes
3answers
3k views

distribution of programming languages in embedded systems

I am looking for statistics concerning the distribution of programming languages in the embedded sector. Do you know any good websites, articles or books? I found this as a first reference but am ...
4
votes
4answers
349 views

How big can the binary code be?

Where does binary go in a computer? When you turn the computer on it points to the bios and runs through it. I get that. Then it loads data off something ( disk, flash, etc. ). But where does it go? ...
4
votes
2answers
137 views

How should an embedded OS be combined with user code?

As a side-effect of an embedded project I've been working on, I've developed a small operating system for an ARM processor. While the OS and my user code are in separate directories and have clean ...
4
votes
5answers
3k views

The Default State of Unused Memory

In an embedded device, during the initializing of memory locations, is there any convention that are being practiced. I mean, say setting every byte to zero or 0xFF or any other value.
4
votes
4answers
3k views

RTOS experience

I have been working as an embedded software engineer on mostly 8 bit micro-controller firmware and desktop/mobile applications development for the past five years. My work on a WinCE project (in ...
4
votes
2answers
3k views

What are the advantages of programming to under an OS as opposed to bare metal executive?

Assume you are presented with an embedded system application to program, in C, on a multi-core environment (think a Cavium or Tilera) and need to choose between two environments: Code the application ...
4
votes
5answers
3k views

How to implement a software development process in an existing project?

My question involves setting up a Software Development process. If you came in to an existing project that had no formal methodology or process set up, and then were asked to set one up yourself, how ...
4
votes
1answer
583 views

Different ways to distribute (embedded) C modular library

picoTCP (an open source embedded TCP/IP stack) has always had a development focus (both in picoTCP itself and with picoTCP) on linux & gcc systems. The final target is usually an embedded micro (...