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.

Questions that discuss embedded systems include those that related to development of microprocessor systems with electronics that are tailored to the design at the board or module level.

What questions should have this tag?

Device level interfaces for I2C, SPI, RS232, Timers, USB may also be prime candidates for this tab. Interrupt service routines, resident monitors, flash or RAM resident vector tables, and real-time kernels are also software artifacts that fall under this category.

Important links for learning more about embedded systems could include:

Stack Exchange and Blogs

Amazingly enough, Stack Exchange does not have its own Q & A site for Embedded systems. One was proposed about two years ago, but it is still in the commitment phase, languishing without enough people signing up to support it. If you want to make a difference, go here:

http://area51.stackexchange.com/proposals/15961/embedded-system-design-and-development

Read the proposal and if you agree, click commit to get involved.

Linked In also has an Embedded Systems group, plus a couple closely related groups that may be of interest:

Embedded Systems

Firmware

ARM

Web Resources

EETimes has features about embedded systems.

http://www.eetimes.com/design/embedded

Dr. Dobbs is a long time friend to programmers of all types and has great stuff on embedded.

http://www.drdobbs.com/embedded-systems

The Arduino community is large, enthusiastic, and has removed many barriers to entry for embedded programming including price and prior training.

http://www.arduino.cc/

If you are a female software developer or an unenlightened male developer who thinks embedded systems is mainly a "Good-Old-Boys" club, check out this site. The author is an MIT graduate, had done edgy, out of the box (or sometimes in the box stuff, like her Altoids-box iPhone charger), and seems to be very prolific in her designing, writing, and video blogging.

http://www.youtube.com/watch?v=QkmtHqsYCbw&feature=player_embedded#!

http://www.adafruit.com/tutorials

Many vendors will have extensive collections of data sheets, application notes, white papers, and free or evaluation copies of development tools. Top companies in this space include ARM, Atmel, Freescale, intel, Microchip Technologies, NXP (formerly Phillips), TI, and many others.

Books

Not sure if you can find it, but I have a book I think tells a lot of the story for embedded systems in terms to tools (assemblers, linkers, loaders) and fundamental things that happen in microprocessors (interrupts, I/O, simple task managers and schedulers, simple file structures). Systems Programming for Small Computers, Daniel Marcellus.

A more modern reference is Embedded Linux Primer. Early chapters discuss the rationale behind running Linux on embedded systems and some of the mechanics involved. Chapter 3 has a nice discussion of processors + support chipsets and SOC (System On a Chip) options that can be considered for use in current designs. Actually, the target is moving, so it gives a starting point that is contemporary with the publication of the book. Chapter 3 is great, but should be supplemented with some further research on the web and in discussion with vendors. Typically, the electrical engineer and lead software engineers on the project will pick the processor, so if you are in a company and learning embedded systems, do your deep dive on the hardware they pick.

Later chapters include extensive descriptions about many practical aspects of targeting Linux to hardware, but partnership with the vendor and use of a pretty standard reference design might reduce the effort significantly.

181 questions
577
votes
2 answers

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 lot of code, surely there was a pretty big…
InfinitiesLoop
  • 3,673
  • 3
  • 15
  • 8
48
votes
7 answers

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 to the metal. Most of the unit tests are not…
tehnyit
  • 1,469
  • 2
  • 10
  • 16
36
votes
8 answers

Is embedded programming closer to electrical engineering or software development?

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 about it wrong. Normally I would have shrugged…
Jeremy
  • 4,791
  • 1
  • 25
  • 40
31
votes
2 answers

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 Jovian and Saturnian systems discovering new…
29
votes
9 answers

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 get 67KB/s. What are some alternative error…
FigBug
  • 2,369
  • 3
  • 17
  • 20
25
votes
7 answers

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 question they leave me with. These talks…
Smyther
  • 369
  • 3
  • 5
21
votes
2 answers

Good unit test examples for embedded C developers

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 recently, but I'd also like to show some very simple…
DrAl
  • 443
  • 1
  • 3
  • 12
19
votes
2 answers

Functional Programming For Embedded Software

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 fairly natural fit in terms of stateless code but…
Onorio Catenacci
  • 2,937
  • 3
  • 26
  • 37
18
votes
8 answers

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 philosophy of TDD/BDD, I'm unable to understand how people…
Jakub Arnold
  • 521
  • 1
  • 6
  • 12
17
votes
4 answers

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 do agile (ie. Hardware is not available until late…
hopia
  • 311
  • 2
  • 6
16
votes
1 answer

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 domain boundaries (e.g. what is an embedded system)…
15
votes
3 answers

How do you handle non-functional work with Scrum in embedded eystems?

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 development board, no OS, no display, no serial communication, etc. We didn't have our…
Bruce
  • 441
  • 4
  • 5
14
votes
1 answer

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. Additionally, we've designed a few integrated…
RLH
  • 533
  • 4
  • 16
14
votes
8 answers

Why does C dominate in the embedded software market?

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 compilers is awesome. Does C have some advantages that no…
vines
  • 1,176
  • 1
  • 8
  • 19
14
votes
3 answers

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

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. However, like most C programmers, I still treat…
Adam Lewis
  • 543
  • 4
  • 12
1
2 3
12 13