About Colin Walls :
Colin Walls has over twenty-five years experience in the electronics industry, largely dedicated to embedded software. A frequent presenter at conferences and seminars and author of numerous technical articles and two books on embedded software, member of the marketing team of the Mentor Graphics Embedded Systems Division. Currently, based in the UK. Follow him on Twitter & LinkedIn.
Please check below his views on Embedded Systems, India and words for young engineers :
1) How will you define Embedded Systems to an aspiring embedded engineer ?
I have always been challenged to explain to people what I do for a job. When I try to do so, the first hurdle is to define what an embedded system actually is. Of course, there is no absolute definition – and there does not really need to be. I tend to describe an embedded system as any electronic device that incorporates a microprocessor or microcontroller, which would not be recognizable as a computer. So, industrial controllers, burglar alarms, DVD players, engine management systems in cars are all example of embedded systems. Desktop computers are not embedded systems themselves, but may contain several components that are embedded systems – e.g. disk drive controller, keyboard, video controller. Smart phones and tablets are a bit more fuzzy, but I think that they are like desktops – they are not embedded systems, but may contain some.
2) Do you think in near future, Visual Programming Environments will remove the need of writing code completely ? If yes/no, why ?
I assume that you are thinking of methodologies like UML. At present, there are many tools that can do quite a good job of defining an application without writing any/much code, but there are limitations. My view is that these limitations will be largely overcome, but I find it hard to envisage a circumstance where coding will go away entirely. But, crystal ball gazing is a hazardous pursuit.
3) With everything going on cloud : Cloud Based License for EDA tools will be the only license provided by vendors in coming years ?
There certainly seems to be trend in that direction for a certain amount of both consumer and professional desktop application software – manifest in the recent moves by Microsoft and Adobe. The use patterns of embedded software development tools are not particularly special, so I see no reason why they might not go the same way.
4) What are your views on Yocto & Linaro Project ?
As I am not a Linux specialist, I do not have any particular views on this topic. However, I can see the benefit to developers of a degree of standardization in Linux deployment. Mentor Embedded keenly supports Yocto.
5) Many educational institutes are coming up with Virtual Labs. Do you think these labs provide good learning compared to physical labs ?
I am sorry, but as I do not have direct experience of this technology, I have no useful comment to make.
6) For coding what do you use : Terminal OR IDE & Why ?
At the start of my programming career, neither of these was an option. I would code with a pencil and paper and submit on punched cards. In many ways, I wonder if programmers ought to take a somewhat similar approach today, as the long turn-around time was a strong incentive to code carefully to avoid simple errors. For the largest part of my career, I used command line based tools, but nowadays I am more than happy to embrace modern technology and reach for an IDE.
7) As per your experience do you think India got talent pool for embedded industry ?
Very much so. I have met many talented engineers from the subcontinent and I believe that India will continue to be a growing influence in the embedded software world.
8) US or UK or China : who is the leader in embedded & why ?
In terms of development and innovation, I would feel that the US has to be the leader. The UK is strong, particularly bearing in mind the size of the country [I am biased!]. Remember that ARM is a British company. China is catching up fast, but their strength today is production – making stuff at a sensible price and getting it to market quickly.
9) Your take on ARM for servers and desktops ?
I do not have very strong views on this topic. Historically, ARM’s strength was in lean CPUs that delivered incredible power efficiency. Although they still excel in this area, some of their newer devices exhibit a change in priorities. I do wonder whether a successful company is one that sticks firmly at what they are good at or one that show versatility. An interesting discussion topic.
10) Assembly or C as starting point to learn processor programming ? And which processor one should start with ?
I guess it depends on what you mean by “processor programming”. If you just mean starting out with coding, then I would feel that the answer would be neither of these – assembly is too daunting and C has too many pitfalls for the beginner. I would suggest Java, Python or even Visual Basic might be better. If, however, someone wants to get to grips with CPU architectures, then programming in assembly is a sensible starting point. Probably a simple 8-bit architecture is a good start.
11) May you please point to technical resources which you think will help embedded systems enthusiast / readers ?
It is amazing what a Google search can unearth! However there are numerous more focused sources of information. A good start is embedded.com [part of EE Times online], to which I frequently contribute. Of course I would recommend my blog and my latest book.