Intro to embedded programming

This is a discussion on Intro to embedded programming within the C Programming forums, part of the General Programming Boards category; Could someone please help me out here?
I am attending a job interview next week. The job requires some knowledge ...

Intro to embedded programming

Could someone please help me out here?

I am attending a job interview next week. The job requires some knowledge on embedded programming. I already told them that the only experience I have is from University which was 10 years ago and they are fine with that.

The problem is, all I can remember from Univerisity is that I programmed in C, and used some compiler to translate the code into assembly language which programs the chip. I already lost all my textbooks and searching on the internet doesn't give me much information probably due to my poor research skills.

My main questions are:

Do different chips have different compilers, and what are their names?
What specifically do I need to know about the chip in order to code?

>> I am attending a job interview next week.
>> The job requires some knowledge on embedded programming.
Since you only have a week. You may want to just brush up on programming basics. Are there any language requirements - like "C Programming"?

You'll want to go in there showing a lot of enthusiasm, drive, and willingness to learn.

Thanks Codeplug. Yes I know C and I have 5 years of programming experience (not all on C). I just don't know much about embedded programming so I am trying to get some help on that topic here. Do you know the answer to my questions? I only need the real basics because they know that I don't have working experience on that. Cheers.

Trying to frame 'embedded programming' within your questions is a little like trying to nail jello to the wall. My version may not be be yours. Many micros have their own compilers, and some even have several.

Originally Posted by ohanna

What specifically do I need to know about the chip in order to code?

In general, I'd say you need to know the vendor, and thus the website for manuals, application notes, etc.

Agreed, the compilers are usualyl specific to a particular chip/family/brand. Soem of them are provided by the vendor, some are 3rd party. You wont know what to learn until you find out what chips they are using. If they are hiring an embedded programmer, they probably already have the tools, or are open to purchasing whatever you suggest.

Until you can build a working general purpose reprogrammable computer out of basic components from radio shack, you are not fit to call yourself a programmer in my presence. This is cwhizard, signing off.

Agreed, the compilers are usualyl specific to a particular chip/family/brand. Soem of them are provided by the vendor, some are 3rd party. You wont know what to learn until you find out what chips they are using. If they are hiring an embedded programmer, they probably already have the tools, or are open to purchasing whatever you suggest.

Completely disagree with this. You may be in a situation where you will have to develop your own tools. Just keep in my that the majority of embedded systems run GNU/Linux, therefore, you'll be working with a cross-compiled GCC tied directly to the version of the GlibC that is on the board they are playing with.

Setting up a cross-tool chain is fairly easy -- if the GlibC package is prior to 2.5 (2.3.6 is fairly common with most ARM processors) then you can use CROSSTOOL for it. Anything newer, and you can use the first 5 chapters of CLFS.

The problems I have had with the MFG giving out the toolkit is that they require you to use the exact version of the OS they built the sucker on. There are, however, some intermediate programming consoles that will allow you fake the compiler to using a library that is in a different location, but I have yet to be able to get ANY of them to work correctly with Slackware.