Questions tagged [embedded]

Embedded refers to embedded systems, which involves areas such as microcontroller/DSP firmware programming, real-time systems, electronic interfaces, hardware drivers, serial bus communication etc.

Embedded systems are computer systems which are an internal component of a product (that is, embedded within a product) for a specific, usually limited, purpose which includes control, reconfigurability, or translation. Examples include digital watches, smart thermostats, automotive engine supervision, firewalls, solar panel controllers, PC keyboards, digital billboards, digital cameras, GPS receivers, traffic signal control and MP3 players.

Embedded systems contain a processing core that is either a microprocessor, a or a digital signal processor .

The key characteristic is being dedicated to handle a particular task. Since the embedded system is dedicated to specific tasks, its design can be optimized to reduce the size and cost of the product and increase the reliability and performance. Some embedded systems are mass-produced, benefiting from economies of scale.

The complexity of an embedded system can be any point along several orders of magnitude: from a vehicle counter with 150 bytes of code to an iPad with a sophisticated operating system kernel which manages gigabytes of local information.

Two major aspects of embedded system design and implementation is to reduce power consumption and heat reduction.


Tag usage

Apart from the tag, also tag your question with a specific development platform, tool chain, and/or target platform. Relevant tags are the specific compiler, specific processor, specific evaluation boards etc. that are used. Avoid using manufacturer tags such as for example as they generally add nothing of value. Instead, specify the microcontroller being used, for example .

This tag is not for questions about embedding media into HTML pages (<embed>), the #embed preprocessor directive, embedding visual components in a GUI, or embedding programming languages, databases or other things into web/desktop programs.

Please note that Stack Overflow is a programming site, and therefore questions about embedded systems that are related both to software and hardware will likely get a better reception at Electronics.stackexchange.com, where embedded systems hardware questions always are on-topic. For example, if you have a problem which could either be caused by software or by hardware, it is better to ask it on the electronics site.

Other sites that may also give a better response to specific embedded system questions:


Books


Resources

  • Wikipedia overview: including history, manufacture, implementations, debugging, tools, UIs, and architectures.
10540 questions
28
votes
4 answers

@ sign in C variable declaration

I found this header file for PIC microcontrollers by the name of pic1250.h and I'm unable to get the hang of some syntax used in it. The source for the file is: /* * Header file for the Microchip * PIC 12c508 chip * PIC 12c509 chip * …
Avi Gabhawala
  • 291
  • 3
  • 5
28
votes
8 answers

Programming on a Nintendo DS

I was reading this answer previously and it got me interested in purchasing a Nintendo DS Lite for learning to program embedded devices. Before I go out and splurge on a DS I had a few questions: Are there any restrictions on what you can program?…
mdec
  • 5,122
  • 4
  • 25
  • 26
28
votes
5 answers

How to force an unused memory read in C that won't be optimized away?

Microcontrollers often require a register to be read to clear certain status conditions. Is there a portable way in C to ensure that a read is not optimized away if the data is not used? Is it sufficient that the pointer to the memory mapped…
Judge Maygarden
  • 26,961
  • 9
  • 82
  • 99
27
votes
3 answers

Do interrupts interrupt other interrupts on Arduino?

I have an Arduino Uno (awesome little device!). It has two interrupts; let's call them 0 and 1. I attach a handler to interrupt 0 and a different one to interrupt 1, using attachInterrupt() :…
Chris Laplante
  • 29,338
  • 17
  • 103
  • 134
27
votes
7 answers

Which Forth to start porting from?

I'm looking to develop a new Forth system, aimed at making game development easier on one or possibly several retro console platforms. I'm something of a Forth beginner, and need your help deciding which Forth codebase to start porting from. I'm…
Tyr
  • 782
  • 8
  • 19
27
votes
5 answers

Is there a need to close file descriptors before exit?

Of course, the immediate answer for most situations is "yes", and I am a firm believer that a process should correctly cleanup any resources it has allocated, but what I have in my situation is a long-running system daemon that opens a fixed number…
Alex B
  • 82,554
  • 44
  • 203
  • 280
27
votes
3 answers

UART vs I2C vs SPI for inter-processor communication between microcontrollers

I am examining a way to connect two microcontrollers. On the level of serialization I am thinking of using Nano protobuffers (http://code.google.com/p/nanopb/). This way I can encode/decode messages and send them between two processors. Basically,…
Drasko DRASKOVIC
  • 343
  • 1
  • 3
  • 8
27
votes
16 answers

C++ usage in embedded systems

What features of C++ should be avoided in embedded systems? Please classify the answer by reason such as: memory usage code size speed portability EDIT: Lets' use an ARM7TDMI with 64k ram as a target to control the scope of the answers.
JeffV
  • 52,985
  • 32
  • 103
  • 124
27
votes
3 answers

Getting Embedded with D (the programming language)

I like a lot of what I've read about D. Unified Documentation (That would make my job a lot easier.) Testing capability built in to the language. Debug code support in the language. Forward Declarations. (I always thought it was stupid to declare…
NoMoreZealots
  • 5,274
  • 7
  • 39
  • 56
26
votes
4 answers

Unit testing patterns for microcontroller C code

Although there are plenty of unit test frameworks that support C, I'm a little stumped on how to write unit tests for micro controller code (PIC in my case, but I think the question is more general than that). Much of the code written for micro…
Steve Hawkins
  • 1,433
  • 4
  • 17
  • 24
26
votes
8 answers

Small libc for embedded systems

I am looking for a small libc for embedded use with freertos on a ARM7 microcontroller. I have looked at newlib, but it is a bit too complex for my needs. Newlib calls malloc() in a number of functions (e.g. printf()), which is not good for small…
GT.
  • 901
  • 1
  • 6
  • 10
26
votes
5 answers

Is there a good tiny XML parser for an embedded C project?

I'm after a very tiny XML parser for an embedded project. It needs to compile down to 10-15k, doesn't need to validate, and needs to be simple and portable.
Joe
  • 269
  • 1
  • 3
  • 4
26
votes
9 answers

Test Automation with Embedded Hardware

Has anyone had success automating testing directly on embedded hardware? Specifically, I am thinking of automating a battery of unit tests for hardware layer modules. We need to have greater confidence in our hardware layer code. A lot of our…
JeffV
  • 52,985
  • 32
  • 103
  • 124
25
votes
4 answers

What is the role of .s files in a C project?

I am working with an ARM Cortex M3 chip (STM32F2) and ST provides a "standard peripheral library". It has some useful .c and .h files. It also has .s files. What is the purpose of these .s files in the context of a C project? How do I get my…
Randomblue
  • 112,777
  • 145
  • 353
  • 547
25
votes
4 answers

Undefined reference to 'operator delete(void*)'

I'm new to C++ programming, but have been working in C and Java for a long time. I'm trying to do an interface-like hierarchy in some serial protocol I'm working on, and keep getting the error: Undefined reference to 'operator delete(void*)' The…
Bracket
  • 432
  • 1
  • 4
  • 9