Sunday, May 17, 2009

MYTHS AND FACTS REGARDING EMBEDDED FIELD

I just got bored after 6 hrs of continously playing online game WARCRAFT-DOTA and now i have no mood to do work about my project (actually i never have the mood to work for my project,but compulsory i have to do so to get the so called MTECH degree after my name).Though my brain is not working properly now ( i mean most of the times it does not work),than also instead of sleeping ,i thought to write this blog.

Ya,this blog is mainly for the freshers(beginners) who are just entering into embedded domain or will be joining newly in some embedded company. I have been working in embedded domain for the past one year (college MTECH project) and I have worked in two companies TCS and CASP in embedded domain at both application and board level and also got some amount of experience I think uhmm..( not much from TCS ,but definitely a lot of from the other company CASP).

I will be telling you the myths and the facts of embedded and also some tips as what should you prepare before entering an embedded company so that you will not face the problems which I faced.

First lets us discuss some myths:
MYTH NO 1:(TOP MYTH)
If you ask an electronics guy, which field you want to enter,most of them will say i want to go in core (i.e non -programming field) in vlsi or embedded field,before i was also one of them.

PLEASE REMOVE THE CORE WORD TAG FOR EMBEDDED AND VLSI field,as both the fields require a lot of programming and there is no Embedded and VLSI without programming (exception is there if you work in VLSI field backend job(routing,chip design etc),but that jobs are very less in India and thats why we call India a developing country.
If you see embedded field, its fully programming in C mostly sometimes C++ and in VLSI field you will work on VHDL,VERILOG i.e system C which are almost similar to C only little syntax changes and all that concurrency funda which u find in VHDL and not in C.

Myth No 2:
If tommorrow someone says to you that i am embedded engineer ,i work on hardware board most of time,he is telling you a joke.
About 90 % of job in embedded, you will be involved in writing and modifying the code ,and 10 % of job is porting that code on the h/w board.So most of the time you will wasting in making your code compatible with your board( almost all ur time) ,thats the real work of embedded engineer to make your code compatible with the board u r using.
Embedded engineers most of the times get readymade code from s/w vendors,they seldom write their own code but they have to modify the code according to client needs .
Then you may ask whats the use of h/w board ,problem is for compatability purpose ,we have to know little bit about the architecture of the board and do some modifications in the code.(Now a days ,that also you do not have to do,due to WIN CE OS ,ur platform builder IDE will give a readymade design template of the application you want to build.You just have to right click add the driver or component which you want to add to ur OS image).

The H/w board design job is done by VLSI backend engineers as where to place IC on the board,routing etc,its not embedded person job,so dont think u r going design the board in embedded.Also the VLSI frontend people, work only in functional simulation and synthesis part ,its not impossible to get the VLSI backend job,but it requires a lot of years of experience and opportunities in india for backend are very less.

Myth No 3:
If someone says to you,i have been in embedded for 1 year and i have designed a driver,he is telling u another joke(i mean exceptions are there ,some einstein people but very few).You cannot write the code of driver by getting one year of experience,it requires very good knowledge of both the h/w and s/w and only after getting many years of experience in embedded field u can do that.By the way ,you must be knowing what i mean by driver,for those who do not ,a driver means an interface which acts between your H/W and S/w application,i mean to say that its a code ,which makes ur S/w application compatible and could be understood by underlying hardware.for eg :graphics,sound driver.So writing a driver is not a kids play, understanding the driver code itself written by someone else takes a lot of time.

Now time for some facts:
FACT NO 1:
First of all let me tell you do not get overwhelmed if you get an embedded job.I mean people are in seventh heaven when they get embedded or vlsi job ,after entering the job they realise that they have entered hell.

FACT NO 2:
When u say embedded u say it in broad terms,what i mean to say is that, embedded is further divided in sub-divisions like embedded automotive,embedded mobile,embedded DSP ,embedded communication.So it does not meam that u r have master of embedded automotive ,u will be master of embedded DSP also.I know this as I have worked in TCS in embedded automotive and now in CASP ,i am working in embedded DSP.

FACT NO 3:
I will enjoy life in embedded .If ur meaning of enjoying is that u will get free time,u will go for outing in weekends,than this is not the field.I mean if u want such a field than go for java ,oracle,mainframe etc.In VLSI and Embedded, word enjoy means u enjoy ur work.From my personal experience,in this two fields ,u do not get any free time,even when u will come home ,u will be thinking of ur office work as work in embedded and vlsi are not like u update some limited number of databases and than enjoy.There is no guarantee that the work u r doing in embedded and vlsi will succeed (most number of times u will fail in your work,but thats the main thing in life that u have to rise each time u fall).

There are always two ways which you choose in life.Either u go for money,name ,fame etc or u go for knowledge.From my personal experience,i prefer that if u want to go in embedded ,vlsi fields in the beginning ,go for some small company job,where u will get project exposure and also full project knowledge.In big companies,u will be working on small modules and do not get to know about other modules going in the project.

This i am saying ,as i was in TCS in so called Research and Development department in embedded automotive and i know what kind of research goes in TCS .I do not want to comment on it but i felt the other small company CASP is very good, as i got very good project as well as client exposure,i mean we used to have tele-conference calls directly with the client on every monday to discuss our problems and also got a lot of knowledge in embedded DSP field better than TCS . This is my point of view,i am not criticizing any company,if u like to go in big companies than u r free to go.But my thinking is u take good starting experience in small company and than jump to big company ,it uses the same concept of maths if ur basic formulas are not clear,how would u solve the sum.

THINGS FOR FRESHERS :
Regarding things u should know (or its better to know ) before entering embedded company for fresher are:

A.) Programming lang:
1.) C (Good knowledge required mostly in structures and pointers) (people will say Embedded C ,but i will tell u that C and Embedded C are almost similar only the later deals with lot of macros and handle concept) as i have done Embedded C course and i did not found much difference between both.
2.) C++ added advantage,though its not necessary as mostly u will be coding in C
3.) Visual C++(MFC):For designing of GUI in embedded ,just similar to Visual Basic

2.) Operating System:
1.) LINUX (any one as u wish ,TCS uses OPEN SUSE but u can go for FEDORA ,UBUNTU),I mean its not necessary to learn kernel level coding just try to do some simple programs on GCC compiler

2.) Win CE 6.0:this is the latest embedded real time OS by microsoft,will be added advantage if u know,just basics how to use platform builder IDE ,how to port the code,how to add components and drivers to ur OS design, it has lot of demand in market,u can get 120 days evaluation period version on microsoft website,u can learn it from online help or Win CE docs,no classes necessary,i learn it in 10 days.

IDE:
1.)Visual Studio 2005:This IDE is not imp from embedded point of view as each H/W board supports its own IDE ,for eg: Texas Instruments support Code Composer Studio,Motorola supports CodeWarrior etc,but the GUI which u will design in embedded will be in Visual C++(MFC) u will design it in Visual Studio only

2.) Platform Buider IDE:this IDE is used with Win CE and has inbuilt visual studio for build and debug the code,Once u download Win CE ,u will get information on this also

3.) Code Composer Studio 3. 3: This IDE helps in building and debugging the code for most of Texas Instrument Board like C62XX,C64XX series and most of the companies will use TI boards only, so its better to learn this IDE

Foreign Languages: German(level A1 ) and Japanese(speak)
Regarding foreign lang,its good to know at least one foreign lang,as embedded clients are mostly german and japanese like sony,nissan in automotive market .I know to speak japanese a little bit (konichiwa) and soon going to join German(level A1) course.If u want ,i will teach u how to speak german and japanese after 3 months at very less fees (only 100).Whether its dollar,pound it will decided by type of student.If student is girl than it will be in Rs,if boy it will be in arabian dollar.

At last ,the big blog regarding embedded is completed.One more good news is that my article on Multi-tasking capability of brain(DUAL BRAIN) is selected by leading article publisher website buzzle.com and ezlines.com and soon they are going to publish it in thier website.I will send u all, the link when it get published.Well ,I am thinking to write articles as my part time job(just kidding)
---------------------------------------------------------------------------------------------
The article above is written fully by me,not copied from anywhere ,if there are some mistakes regarding embedded ,feel free to express as i will also update my little knowledge about embedded.Also if u want embedded knowledge regarding any topic ,ask me i am always ready

No comments:

Post a Comment