??? 03/16/05 19:43 Modified: 03/16/05 19:44 Read: times Msg Score: +1 +1 Good Answer/Helpful |
#89798 - Becoming effective with embedded C Responding to: ???'s previous message |
Grant Beattie said:
If hardware knowledge is important for embedded programming, so is software (knowledge of proper software design and implementation). I am constantly impressed by Keil and I try to use classic C programming techniques wherever I can (that is, except where necessary my code would look pretty similar on any target platform). I think it's important to understand the philosphies behind C and to a lesser extent C++ in order to write excellent code. If you are a self-taught C programmer then I urge you to take a class or two (say, at a university night class maybe?). Unfortunately it's equally important that the class instructor is versed in these philosophies and that can be hard to determine. :-( I started in hardware as an EE and later I was "reprogrammed" in software. It really opened my eyes. The bottom line is that you will not succeed at writing performance-critical embedded applications in a high level language without an intimate understanding of the underlying hardware and how the high level language's constructs map to that hardware. For Keil C on the 8051, that means reading and understanding "the bible" and Keil documentation. It also probably means having at least written a few simple applications in 8051 assembly to get a real feel for the nature of the architecture. Often, details of using high level languages on resource-constrained systems are not covered in university courses though. However, good coursework in embedded systems and programming/software engineering gives one the facilities necessary to understand and apply the concepts in the relevant documentation. --Sasha Jevtic |