which language is best assembly or c language for micro controller programing, if c is best, why microchip is still standing with assembly language. whether assembly language is convenient language for writing ARM 7, ARM 9 and while going for high end processors.
which language is best assembly or c language for micro controller programing Either, or neither.
if c is best, why microchip is still standing with assembly language Nonsense. Don't you know PICC or HighTech C? If Microchip didn't provide C/C++ compiler then it won't get wide spread.
whether assembly language is convenient language for writing ARM 7, ARM 9 and while going for high end processors. Based on essentiality, your interest/time and your skills, or your boss' order.
"which language is best assembly or c language for micro controller programing, "
I'll say C, but only because doing so qualifies me to answer:
"if c is best, why microchip is still standing with assembly language."
They are not doing that.
" whether assembly language is convenient language for writing ARM 7, ARM 9 and while going for high end processors."
There has never been a better language than assembly language for writing assembly code.
An embedded engineer who isn't functionally proficient at both is pretty useless.
in the early '90s everything was assembler then non time critical routines started being written in C (the micros of the day ware pretty slow) as the faster versions came around in the early '00s more and more was written in C today a typical product will be all C (except the startup code automatically provided by the compiler) of my last 10 projecs only one or two have included an assembler routine besides the bootloader startup.
HOWEVER Ignoring assembler can be severely deterimental to your C debugging skills.
Erik
thank you for relating with your own project so as to clarify the situation by showing the ratio of usage of c language and assembly language. this is what the result i was searching to find. as your are working in micro controller, do you need to posses the skill in cadence software especially for analog and digital system design and PCB design.does the employers seeking skill only in micro controller or along with analog and digital system design and PCB design.
I agree with all of the previous posts. Assembly language is important for a 'specific' micro controller but far less important than C language that is standard for many different device types.
As far as combining Analog versus Digital design studies my advice is Don't Try!
Yes as an Analog designer you need to have knowledge of Digital design and as a Digital designer you need some knowledge of Analog design but you can't be an expert at both. In my long long career I have worked with many excellent and brilliant engineers but I have never met an engineer that was really good at both.
For an Analog engineer you need many years of experience in design with FOO-FOO dust, eye of the newt and skin of the frog at the full moon to build a reproducible precision low noise Analog design. The saying is "It's hard enough to build one alike much less two" ;).
To be a good Digital engineer you need to understand the difference between a 1 and a 0 and how a port pin is connected to the code. Many of the posts on this forum indicates students of CS background that have no idea that the embedded controller really connects to some external device and the data sheets tells you how best to connect these devices.
To be a good digital engineer you must be able to apply blue wire etch to your PCB and make it look as if it was meant to be there all the time.
As a PCB designer your company will determine the needs of your electronic CAD package. There are many design packages available from very low cost to very high cost. You mentioned Cadence and/or Mentor but these high end packages are limited to the larger companies. Not because they are really better but the the larger the company, the higher some IT guy will be making the buy decisions.
What I'm saying is your company will provide the CAD package that you need. To study ECAD design, there are many good low cost or free evaluation packages. Designing symbols, part footprints, pad stacks, split planes,etc. are common efforts with the same concepts across many tool sets.
Many of the ECAD vendors offer evaluation tools that are the real tools but with limited number of parts or nets supported. World wide the Zuken Cadstar is the most used tools but almost unknown here in the US. Altium as a lower cost tool set is a very good design tool. Pads and Orcad are the lower cost tools of Cadence and Mentor.
With the higher clock speed and smaller and smaller device packages, Signal Integrity is very import part of any tool set that you need to study.
For your last question. For a smaller company, an engineer designing embedded controllers will be a digital engineer with programming experience. In a larger company a team might consist of several digital engineers with some programming and several programmers with digital design experience.
And with some companies there will be people with no knowledge and the inability to google for information or data sheets and they will keep this forum active.
Bradford
thank you so much Al Bradford, thanks a lot, meeting you kind of people in this forum generates me a feel tasting knowledge for every minutes, thanks for your passion for sparing time to read the question and answering with the long long opinions with compassion.the experience of your job nature lets me understand, how it would be in the industry and what i ve to do further, and your explanation simplifies my decision making probability... thank you so much
C is good for application code, which may be migrated from one controller to other controller (will happen when controller can no longer serve the high end needs of the design or if the controller becomes obsolete). Some times assembly is used, when there are constraints of time or size of memory.
Higher languages save a lot of time, if the code is migrated from controller to controller (this platform independent implementation characteristic of higher languages are the reason for faster technological advancement of products such as mobile phones, tabs, PCs, etc) But higher languages may add a lot of over head code. Using assembly, a time saving-memory saving code can be generated (the smart compilers also help in achieving this, but to some extent). Biggest disadvantage is migration. Re-write the whole code as per the new controllers assembly instructions.
Thus, people often write a code in basic two parts - device driver & API The device driver code may have assembly but the API is generally built in higher language.
API is migrated, and device-drivers may be re-written.
There are no Written Rules. The ultimate choice is of the design engineer.
Thank you so much... what are the micro controllers(or architecture) are essentially used in the industry for mobile phone, camera, tab... is ARM only the choice or some thing else is there as dominant.how best the 8051,PIC are used in the industry.is these two is used in the high end application?,
Different devices have different controllers. For that you will have to visit many other forums and check there (because no mobile company will give to the exact details of the part number. they only give details of the architecture/core).
You can also search the respective manufactures' sites. They (may) have categorized the controllers as per the applications.
is ARM only the choice or some thing else is there as dominant.how best the 8051,PIC are used in the industry.is these two is used in the high end application
there are 'popular' controllers e.g. ARM, but you will run into apps where a less popular architecture MUST be used. Typically that will be because the chip has some unique feature e.g. IR has some "washing machine contollers" with a micro as part of the chip. Also, some companies have a preference becuse of some existing code.
Now, after several yers of experience, you will be able to 'pick up' another architecture without too much trouble, but do not expect any kind of training to get you there, experience is the only way. Many college students get surprised when they find out that graduation is the day the learning BEGINS.