|
The two books we have around the office, to which I refer when I need to refresh my failing memory are:
Embedded Systems Dictionary by Jack Ganssle and Michael Barr
and
Real-Time Concepts for Embedded Systems by Qing Li.
For a book on Electronics, The Art of Electronics by Horowitz and Hill.
Michael Barr was an expert witness in the Toyata case and his website barrgroup.com has some good resources.
|
|
|
|
|
Well, maybe my suppositions were wrong. I know I should learn by trying things, but need something to begin with... Like an introduction to the topic written for an engineer.
|
|
|
|
|
I, like you, have spent most of my career in higher-level languages, although I have also worked in assembly and C. Earlier this year I took a MOOC on embedded systems programming offered via the EdX - https://www.edx.org/course/utaustinx/utaustinx-ut-6-02x-embedded-systems-4806[^]. The course is free, but the hardware kit costs some money (you don't absolutely need the hardware, you can run with an emulator, but it is helpful to actually do the hardware part). It was a good course, I thought. I had fun, and learned quite a bit. They are re-offering it in January. Per the Linux thing, the (free) IDE they recommended used Windows, but I seem to remember some chatter on the message boards about getting it to work under Wine. Anyway, the textbook is an ebook that is free (aimed at the board they use for the class), the videos are all online on Youtube, so you could check it out before registering.
|
|
|
|
|
That is sort of like asking "what is the best book to learn about PC programming?". There isn't one because the field is broad. If you feel pretty good about C especially pointers and bit operations you are probably fine there. Frankly very little is done with assembly these days. Many embedded programmers are actually Electrical Engineers (I am). I think the one thing that defines embedded programmers is a deeper understanding of computer architecture and operating systems. Every RTOS implements the same things differently so without knowing what one you will use understanding POSIX is a good start. I'm not an embedded Linux fan. You'll probably want some type of background in serial communications or networking. You also need to think about the domain you want to go after. A motor control guy is much different that a video processing expert. Same with processors. If I had to pick a good processor to learn it would be ARM because that architecture is used in many applications.
There are lots of embedded book lists out there. Try www.ganssle.com/bkreviews.htm
Another thing to think about is debug tools. Debugging generally is not like it is for a PC. Baseline is JTAG debugging but a good embedded guy can also use a multimeter and oscilloscope. A great one can use a logic analyzer.
Once you narrow your focus a bit I would go research the relevant technologies that you are interested in. I'd also go buy myself a SBC Development kit preferably one with a good manual and a prototyping area to play around with, maybe even a JTAG interface. PIC kits are fun and there is lots of learning info out there but don't expect to find lots of jobs with them.
Good luck.
|
|
|
|
|
A good start to help decide what your needs are and go from there. <a href="http://en.m.wikipedia.org/wiki/Embedded_system">http://en.m.wikipedia.org/wiki/Embedded_system</a>[<a href="http://en.m.wikipedia.org/wiki/Embedded_system" target="_blank" title="New Window">^</a>]
|
|
|
|
|
Jacek Gajek wrote: Could you recommend me a proper book on embedded systems?
The answer as other's have said is "it depends", mostly on the flavor of the unit you are going to work with. There is a nice selection of boards out there such as the Raspberry Pi, Beagle bone Black, which are fairly close in capability, both run stripped Linux builds.
At the lower end, the Arduino is a fun board to play with and start building some skills. It uses an IDE with a C like syntax with versions for Linux (not sure which flavour). Microchip also has a number of demo boards to get you up and running (and a fairly decent free C based tool chain)...I think there are builds for Linux now...
In my experience, I have found the boards are the least of the problems, it's finding the low cost tool chains that are compatible (which tends to take out the higher stuff i.e. TI, Motorola, STM etc which have some very nice boards), unless your being funded. Most offer a limited use tool chain for demo, normally either size locked, time locked or other restriction.
Ken
|
|
|
|
|
I don't think you could lift a book that went into all that in any kind of detail.
When making the transition from Windows device drivers to 'embedded systems' I found the book "MicroC OS II" by Jean J. Labrosse very helpful (on Amazon here http://tinyurl.com/pgluzvd[^])
There is a newer version of the book but I have not read it and I don't think it's as good because the OS is closed source.
Jean has another book, "Embedded Systems Building Blocks" where he goes into interfacing with devices ( [on Amazon here:]) This is geared towards smaller systems.
There are 2 basic types of embedded systems, "super loop" and using some sort of embedded OS (such as uCOS/II.) Most of the engineers that I have worked with struggle with the concurrency issues. Get a handle on these first and you will be a step ahead of most people.
Wayne
|
|
|
|
|
Experience only
|
|
|
|
|
I'm a embedded software developer and I use the following technologies on a day to day basis:
- Continues Integration
- Agile
- Waterfall
- RISC
- Safety Critical Software
- Object Oriented design in C
- UML Modelling
- Make
- Unix
- Scripting language (like perl)
- Requirement management
- Revision control systems
- Testing and the various types of testing
- Static analysis
- Processors in general (One piece of hardware I always work with)
- C Compilers
The hardware technologies I work with I learn as I have to. The chance you going to use your asm experience is very little. If you want to do something to get you familiar embedded systems, buy a pic and program it (nothing hectic required here).
"Program testing can be used to show the presence of bugs, but never to show their absence."
<< please vote!! >>
|
|
|
|
|
That was informative, thanks.
|
|
|
|
|
|
|
... waiting for the fail ...
|
|
|
|
|
|
|
User Voice[^] has been updated to state that edit and continue of lambdas is in work. MS's not willing to commit to when it will be done though; hopefully it will make the 2015 cutoff date.
Quote: We are currently working on edit and continue support for Lambdas. I can’t give you an exact time frame as we are quality driven, but we’ll ship it as soon as it is ready so please keep following our 2015 announcements.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
Is Lambdas the one Griff likes?
|
|
|
|
|
An obnoxious drunk stumbles into the front door of a bar and orders a drink. The bartender says, "No way buddy you're too drunk."
A few minutes later the drunk comes in through the bathrooms. Again he slurs, "Give me a drink!" The bartender says "No man, I told you last time you're too drunk." Five minutes later the guy comes in through the back door and orders a drink. Again the bartender says, "You're too drunk."
The drunk scratches his head and says "Damn, I must be... the last two places said the same thing."
/ravi
|
|
|
|
|
Is that Leslie or an empty coat hook? :cool
An oldy but goody nonetheless.
No object is so beautiful that, under certain conditions, it will not look ugly. - Oscar Wilde
|
|
|
|
|
I just got my new Samsung Galaxy S4 phone with Andriod.
I'm coming from a Nokia Lumia Windows Phone on which nothing (that I wanted) worked except the Dilbert app, which was great.
So I just downloaded the official Dilbert app and it's by far the worst app I've seen.
Takes a minute to start. Takes quite a while to load a new comic.
And I can't really do anything besides go to the previous comic (it loads on today by default).
The description says I can show random comics (which the Windows app could do too and which I use daily), but I can't figure out how to do it.
It's just a really very slow, clunky, ugly app... And it's official.
I am SO REALLY VERY MUCH disappointed...
Luckily everything else works great.
Except that I had to download an app to get a 'x unread emails' thingy on my Gmail tile. I was a bit surprised (in a negative way) that I needed an app for something so trivial (comes standard in Windows Phone and iPhone). But an app fixed it, so nothing really amiss there.
My blog[ ^]
public class SanderRossel : Lazy<Person>
{
public void DoWork()
{
throw new NotSupportedException();
}
}
|
|
|
|
|
Sander Rossel wrote: Except that I had to download an app to get a 'x unread emails' thingy on my Gmail tile
This is because you get new email alerts in the notification area... not through the tile itself.
|
|
|
|
|
Didn't see it in the notification area either.
I do now though. And in the tile too.
My blog[ ^]
public class SanderRossel : Lazy<Person>
{
public void DoWork()
{
throw new NotSupportedException();
}
}
|
|
|
|
|
You don't get a number on the icon?
I get one on the icon, which is also forwarded to the icon of the folder it's in.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
Don't think so... but I also have it in a folder with other email apps, so it's possible I just never noticed it.
|
|
|
|
|
Nice phone. Had one until not too long ago, when I fell asleep on the train, and woke up and jumped off, leaving it behind.
No object is so beautiful that, under certain conditions, it will not look ugly. - Oscar Wilde
|
|
|
|