Google Answers Logo
View Question
 
Q: How to become an embedded system expert ( No Answer,   3 Comments )
Question  
Subject: How to become an embedded system expert
Category: Computers > Hardware
Asked by: linq-ga
List Price: $10.00
Posted: 12 Jan 2006 17:42 PST
Expires: 11 Feb 2006 17:42 PST
Question ID: 432684
This is to solicit practical advice on professional growth in the
embedded system engineer area.


My background
After got my B.S. of Computer engineering, I worked in telecom
industry and part-time developed application software for 7 years. I
programmed in Visual C++ and Visual FoxPro (for some database
software) on PC.

Then I want back to University and got my M.S. on computer
engineering. After that I came to my current employer. Now it?s 4
years.


My job
My job is to develop some IDE software for embedded system
development. It is still an application software, but since its
purpose is to help user construct the hardware and software of the
embedded system, I am fully exposed to embedded world since then.

My work is like this, each development cycle we add some new
functionality, and in testing the software we construct some system
and verify them on the board. For example, my latest work is to list
what memories are in the system and ask user to select how to
configure the data/text/interrupt section of the final ELF file, then
based on user selection, I generate the linker script.


My request
After 4 years work in embedded system, I am more and more interested
in this area. I feel more challenge and more fun than pure PC C++
programming.

In a self assessment, it seems I know a lot in embedded than before.
On software side, I know how a processor boots, from power on to print
?Hello World.?; I know there is a CRT setup before a jump to main(); I
know there are processor memory layout and liner script setup for the
sections like text, data, bss; I know the same C code might function
differently under different processor compiler; I know I should use
?volatile? in C.

On hardware side, I am familiar with the specification of some
industrial products like UARTns550, IIC, PCI and memory controllers
like SDRAM and DDR; I can launch logic analyzer to track some simple
hardware problem; I can normally identify the system problem is from
hardware functionality problem or from system timing problem; I can
check out the design source file, VHDL or Verilog, to understand how
my hardware colleagues do the work.

It seems pretty good, compared to what I knew 4 year ago. But somehow
I feel very uncomfortable.

I feel that I only know very little on each piece.

For example, I know the flow of booting the processor. But I am not
familiar with assembly, so I am not able to write the bootup code
myself; I generate the linker script according to some template and
specification, but not sure how on earth the linker and loader work
under the hood; my test code are pretty much poll mode since interrupt
service routine usually makes me wondering; to me, device driver is
pretty much register access in that all the others are similar to
application level software, but it seems not correct; even though HDL
is not strange to me, I am not sure I appreciate what hardware
designer explain to me about some electrical signal integrity stuff.

It is a long list, it upsets me.

Recently the company decided to include embedded linux support and
there are some training on linux and advanced processor technique. I
attended, it is fascinating. It is also vexing when the instructor
went further into MMU, cache coherency and deep pipeline. I was lost
in those deep discussion on processor and OS.

Sometimes I wish I could go back to university, but that is not
realistic. Now I am seriously thinking to switch my career gear to go
to be an embedded system engineer, not application engineer. And I
want to be really good in this new area.

I think my boss would agree to pay me some training within US as long
as it is a week or two. I think I can have the time to practice some
self-education projects, I think I really need some hands-on. But I am
not so sure how to start, where to find such good project and where is
the training targeting people like me.

Maybe I am thinking too much, I do not know. In a training I asked the
instructor that sometimes my bootup code hangs on some particular
address and he immediatelly pointed that address is on MMU setup, so
that might come from my memory controller. That is really admiring
since I originally spent 2 days in identifying the problem. I wish I
could have his knowledge.

Hopefully you get the picture who I am and what I am desperate for.
Your suggestion is highly appreciated!
Answer  
There is no answer at this time.

Comments  
Subject: Re: How to become an embedded system expert
From: drebt-ga on 12 Jan 2006 20:27 PST
 
Congratulations, your curiousity has brought you to the board. First
get a hold of some of Rodney Zaks old books such as Programming the
6502 or Microprocessor Interface techniques; then read them. Usually
there is some good (although it usually has one or two bugs) listings
in Steve Ciarcia  circuit cellar magazine (www.circuitcellar.com/).
Steve is essentially a bored genius and his understanding of embedded
code is legendary. Writing linkers etc. is pretty dull, and patching
operating systems at the board level can be frustrating. Make sure you
back up your new boot code or you will lose it if it fails (learned
from many screwups). If you like controlling devices and you like
speed, screw assembler, go to the microcode and set up your
instructions to synchronize with the chrystal, blazing, no way around
it. Good luck and enjoy.
Subject: Re: How to become an embedded system expert
From: philnj-ga on 13 Jan 2006 07:02 PST
 
Yes, congratulation.  You have caught the embedded systems bug.  PCs
are for e-mail, surfing the web, and balancing your check book.  Your
goal is to never write code for the PC again.

I've been doing embedded system programming for 18 years.

Remember that embedded systems are all around us.  They are in
televisions, set top boxes (satellite, cable and broadcast), cell
phones, media players (MP3, home entertainment), internet devices
(routers, swithes).  Many applications are in commerical equipment.

It sounds like your current job has embedded system programmers as
customers.  So, you probably know what they are using your IDE product
for.

If you want to stay with your current employer, maybe you can join (or
start) a group that writes sample embedded programs for the IDE
product.

If you want to switch employers, talk to your customers.  I bet they
would be happy to employ someone already familiar with their IDE.

If you want to persue it as a hobby, then drebt-ga had some good
suggestions.  Think of a simple application and start designing and
building it.
Subject: Re: How to become an embedded system expert
From: pgmer6809-ga on 25 Jan 2006 14:43 PST
 
To really learn a field you should take it up as a hobby, or work on
it in your spare time.
If it was me, I would buy a single board computer that already runs
linux etc, and I would invent a project for myself, such as hooking it
up to a zigbee device and have it control my hottub, or home security
system, etc.
this would involve probably writing a driver for it, learning the
assembler, linker memory map etc. etc.
Lots of fun stuff which would require you to understand the lower
levels enough to use them, but not get you bogged down in problems
that have already commercially available solutions.
the eCOS O/S is an open source RTOS that is a linux look alike (now
supported by Red Hat?).
www.microplex.com has a single board computer that is targetted as a
zigbee developement system.
But there should be lots of options.

Important Disclaimer: Answers and comments provided on Google Answers are general information, and are not intended to substitute for informed professional medical, psychiatric, psychological, tax, legal, investment, accounting, or other professional advice. Google does not endorse, and expressly disclaims liability for any product, manufacturer, distributor, service or service provider mentioned or any opinion expressed in answers or comments. Please read carefully the Google Answers Terms of Service.

If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you.
Search Google Answers for
Google Answers  


Google Home - Answers FAQ - Terms of Service - Privacy Policy