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
25
votes
6 answers

What Java embedded VM do you suggest for ARM development?

There are a lot of Java embedded VMs. What do you suggest for ARM development? http://www.cacaovm.org/ http://www.rtjcom.com/main.php?p=home http://www.k-embedded-java.com/ http://jamvm.sourceforge.net/ I'm currently using the TINI platform from…
michelemarcon
  • 23,277
  • 17
  • 52
  • 68
25
votes
3 answers

Lisp on embedded platforms

Are there any open source Lisp compilers suitable for real-time embedded applications? I.e. with incremental garbage collection, customisable memory handling, small footprint, etc. Edit: To clarify, by "compiler" I meant native code, not bytecode…
absence
  • 821
  • 1
  • 8
  • 13
25
votes
1 answer

What are .axf files?

I am new to arm architecture, I work on embedded software and was trying to learn about the .axf file which is present in my project binary's debug folder. Discovered that it is an arm executable format file generated by linker while the build…
Pravi
  • 599
  • 3
  • 6
  • 10
25
votes
19 answers

Best way to get started with programming other things than your computer?

What is the best way to get started with programming things outside of your computer? I don't mean mainstream things like cell phones with APIs. Please assume working knowledge of C/C++
Brian R. Bondy
  • 339,232
  • 124
  • 596
  • 636
25
votes
9 answers

What can firmware engineers learn from software engineers?

Judging from my knowledge of the history of firmware engineering tools, practices etc. It has consistently lagged behind the software engineering field by several years. For example, as far as I can tell there is still a fair amount of debate in…
Gabe
  • 2,526
  • 1
  • 23
  • 24
25
votes
2 answers

How do I make an embedded Android OS with just one app?

I would like to make my own embedded system built on Android (ARM) just using devices distributed with Android but without their launcher. OR I want to start Android with my application launched on top and refuse to close it and shutdown Android…
xdonko
  • 269
  • 1
  • 3
  • 8
24
votes
8 answers

How can I visualise the memory (SRAM) usage of an AVR program?

I have encountered a problem in a C program running on an AVR microcontroller (ATMega328P). I believe it is due to a stack/heap collision but I'd like to be able to confirm this. Is there any way I can visualise SRAM usage by the stack and the…
Matthew Murdoch
  • 30,874
  • 30
  • 96
  • 127
24
votes
6 answers

Porting Python to an embedded system

I am working with an ARM Cortex M3 on which I need to port Python (without operating system). What would be my best approach? I just need the core Python and basic I/O.
Randomblue
  • 112,777
  • 145
  • 353
  • 547
24
votes
21 answers

Best platform for learning embedded programming?

I'm looking to learn about embedded programming (in C mainly, but I hope to brush up on my ASM as well) and I was wondering what the best platform would be. I have some experience in using Atmel AVR's and programming them with the stk500 and found…
mdec
  • 5,122
  • 4
  • 25
  • 26
24
votes
3 answers

What parts of the codebase are making binaries large?

I have built some code for a simulator and am now trying to use TI's free toolchain to cross-compile to a target with 64kb of nvram. The compiler claims that my code is about 34kb beyond the ROM: (...) msp430-elf/bin/ld: region `ROM' overflowed by…
Christian Chapman
  • 1,018
  • 10
  • 27
24
votes
8 answers

Compact decompression library for embedded use

We're currently creating a device for a customer that will get a block of data (like, say, 5-10KB) from a PC application. This is a bit simplified, so assume that the data must be passed and uncompressed a lot, not just once a year. The…
OregonGhost
  • 23,359
  • 7
  • 71
  • 108
24
votes
7 answers

C++ frontend only compiler (convert C++ to C)

I'm currently managing some C++ code that runs on multiple platforms from a single source tree (Win32, Linux, Verifone CC terminals, MBED and even the Nintendo GBA/DS). However I need to build an app targetted at an embedded platform for which there…
Tim Ring
  • 1,845
  • 1
  • 20
  • 27
24
votes
6 answers

Why do we need a bootloader in an embedded device?

I'm working with ELinux kernel on ARM cortex-A8. I know how the bootloader works and what job it's doing. But i've got a question - why do we need bootloader, why was the bootloader born? Why we can't directly load the kernel into RAM from flash…
chainz
  • 253
  • 1
  • 2
  • 8
23
votes
5 answers

Is `volatile` required for shared memory accessed via access function?

[edit] For background reading, and to be clear, this is what I am talking about: Introduction to the volatile keyword When reviewing embedded systems code, one of the most common errors I see is the omission of volatile for thread/interrupt shared…
Clifford
  • 88,407
  • 13
  • 85
  • 165
23
votes
4 answers

AOSP repo sync takes too long

I'm trying to learn Embedded Android from the book with the same name. And the author suggested working with AOSP gingerbread branch. So I followed to download the source: $ repo init -u https://android.googlesource.com/platform/manifest.git -b…
user3011609
  • 331
  • 1
  • 2
  • 3