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
4
votes
3 answers

What are the internal processes involved for a C compilation?

I have a set of *.C files (embedded related). What are the steps/processes (internal information) involved while compiling followed by linking to create the final executable? (Information/steps regarding what a preprocessor/compiler generally…
Renjith G
  • 4,718
  • 14
  • 42
  • 56
4
votes
1 answer

Bus error debugging on arm cortex m4

I am trying to debug a precise bus error on a Arm cortex m4 chip. The board is a teensy 3.1 with a freescale MK20DX256VLH7. The error only happens when i actually send characters with the uart and results in a forced hard fault because i dont have…
P. Brand
  • 111
  • 1
  • 6
4
votes
1 answer

STM32L4 - SPI2 clocking issue

I am currently working on the STM32L476RG Nucleo board and I am trying to communicate with the SPI2 bus. It seems that I am sending data with the MOSI pin but I don't have anything on the SCK pin. Here are my initialisation code and sending data…
Tetris
  • 49
  • 2
4
votes
1 answer

ioctl and execution time

I have a program running two threads - they communicate using message queues. In one thread, I call ioctl() to access the hardware decryptor. The code goes like: void Decrypt { ... .. ... if() {. ... ... retVal =…
James
  • 71
  • 1
  • 3
4
votes
1 answer

Data handling for a flash chip

I am copying an excerpt from here Flash erase cycles are long - really long - it can take several seconds to erase a Flash sector. Also as the number of guaranteed erase / re-write cycles is usually limited (typically around 10,000 or up to…
NeonGlow
  • 1,659
  • 4
  • 18
  • 36
4
votes
2 answers

How are breakpoints working on an embedded device?

This is just a question for personal intrest. I know that my JTAG is able to read the register values of the uController. But I have no clue how the JTAG device knows when to stop the uController. I thought that maybe some code is added calling an…
Schafwolle
  • 501
  • 3
  • 15
4
votes
2 answers

Fill pattern of an arbitrary size in Intel hex file

I have been trying to do a fill using the open source Srecord Program. I need to do a fill that is 0xC2AF00. It appears the program can only do fills that are a byte long (ex: 0xff). If this is not possible with the Srecord program, then how would…
Paul
  • 198
  • 1
  • 9
  • 22
4
votes
1 answer

Generating .gcda coverage files via QEMU/GDB

Executive summary: I want to use GDB to extract the coverage execution counts stored in memory in my embedded target, and use them to create .gcda files (for feeding to gcov/lcov). The setup: I can successfully cross-compile my binary, targeting my…
ttsiodras
  • 10,602
  • 6
  • 55
  • 71
4
votes
2 answers

How to prevent Buffer overflow / array overflow?

I was recently writing code for a custom serial communication protocol. What I did was, I used a part(8/16 bit) of the receiving data to denote how big the frame size is. Based on this data I expect that no of data to follow. I use Crc to accept or…
seetharaman
  • 141
  • 4
4
votes
1 answer

Android Init startup - Ueventd and watchdogd

I'm a beginner and I'm trying to understand the Kernel-Android interface. In the system/core/init/init.c, the initial part has the following code. if (!strcmp(basename(argv[0]), "ueventd")) return ueventd_main(argc, argv); if…
Gomu
  • 1,004
  • 5
  • 16
  • 36
4
votes
2 answers

STM8 ASM safely execute WFE

I have c code runned from RAM in low power run mode (so interrupt are no handled). This mode enabled by code sequence: jump to RAM SIM switch off internal flash, and power regulator, switch to low speed clock source (LSE) do some work with WFE mode…
imbearr
  • 999
  • 7
  • 22
4
votes
2 answers

Custom RS485 Protocols

I am writing a simple multi-drop RS485 protocol for serial communications within a distributed system. I am using an addressable model where slave devices are given a window of 20ms to respond. The master uC polls the connected devices for updates…
Nate
  • 901
  • 2
  • 10
  • 19
4
votes
2 answers

Why is it called ROM?

Using any type of controller, I flash my code on the targets flash(ROM). My question is, how is it called Read Only Memory(ROM) yet I have the ability to write on it every time I flash. Any help?
YaserM
  • 185
  • 2
  • 9
4
votes
2 answers

C++ on embedded targets: Low overhead storage backend

I'm in the process of coding a reusable C++ module for an ARM Cortex-M4 processor. The module uses a lot of storage to accomplish its task and it's time-critical. To allow the users of my module to customize its behavior, I'm using different…
4
votes
6 answers

Will a string initializer somewhat waste memory?

To initialize a char array, usually I write: char string[] = "some text"; But today, one of my classmates said that one should use: char string[] = {'s', 'o', 'm', 'e', ' ', 't', 'e', 'x', 't', '\0'}; I told him it is crazy to abandon readability…
nalzok
  • 14,965
  • 21
  • 72
  • 139