Embedded Systems Engineering
|
I have to give the usual disclaimer that that these are my own personal views and not those of the ESE Editor and publisher. or those of my employer at the time..... I now work for Phaedrus Systems Ltd!
There is a 75% cut down version for print in ESE. The full one is on my web site at www.phaedsys.com Which you are now reading.
Three unrelated incidents got me thinking this month. You may want to print it out and think about it later. The first incident was about a year ago, It was brought to mind by some recent conversations on the C standards reflector. I was conversing on the ACCU embedded mentor group (as an aside the ACCU has book reviews of over 3000 current SW engineering books including a section on embedded there is a like from my web site) where they were looking for an embedded project to do.
The first question was what is embedded? Many of the participants wanted to do "embedded" Linux on a PDA and use C++ or Java…. Others were looking for something more basic with something like an 8051 and c. Several projects were discussed from an application on a PDA to a washing machine control. A domestic boiler/central heating control was suggested. This seemed like a good idea it could start simple and end up running the house via a blue tooth PDA… everyone was happy(ish). Discussion started with C or C++ (and a couple of votes for Java and C# on top of Win CE of course!), which OS etc… Linux "obviously" some said. One or two suggested a processor (from 32bit to a PIC). Some asked what the cost of the project would be. Several could see no problem with spending 200 plus pounds on the project others, had less to spend. Some thought they could eventually use the project to run their own home boiler
Then some one asked if there were any standards that needed to be adhered to. Yes… The ISO C (or C++ standard) what else? This is where things started to fall apart.
As most people reading this will know: embedded systems for controlling equipment make real physical things happen it's not the same as PC applications. Where machinery is involved there are usually standards. Some are engineering standards others are legal requirements for safety. Where domestic gas boilers are concerned there are regulations.
It was suggested that each person should find out what the regulations for domestic heating controllers were in their country. At this point several of the "engineers" started to complain. They wanted to do embedded C or embedded C++ (or Java or C#) not all this rubbish on legal requirements for gas boilers or a discussion of what was safety critical. They wanted to write code. Besides the safety would be handled by the hardware. They were programmers…
It was explained that an embedded engineer was 50% software, 50% hardware and 50% systems. Ok, on the larger systems there is a split and people specialise but at the smaller systems the same engineer needs to cover all three areas. In any event the engineer needs at least an appreciation of all three areas.
The programmers were adamant that they wanted to program. Software was their thing and they did not want to be bothered with "admin" and paperwork like the safety standards for a boiler. This raised the question of how did they think they were going to produce the specification. It appeared that many thought that they would be given the [software] specification. It was pointed out that without at least a basic understanding of the system and the constraints (some of which were legal requirements) and the hardware it would be a rather pointless project especially if it was actually going to run on a development board at the end of the day.
This incident was brought to mind this week because of a somewhat heated discussion on the C standard panel email reflector. The "discussion" was on aspects the organisation and mechanics of the UK and international C panels. It revolved around the politics and methods of how we got where we were and how we get out of it and get to the next place we anted to be. As it involves internal politics and manoeuvring between committees I don't intend to go into it here. There were about 50 long emails in the thread. One of the panel members promptly emailed me asking to be taken off the list "with immediate effect." He was not there for this sort of thing. He was interested in the technicalities of the language.
I waited a week and was about to call him to discuss his decision when I noticed that he had now joined the discussion. He had realised that the shenanigans between two panels, the voting strategy and the order things were done; whilst not technically about the language they were about to affect him greatly. If A4 went before JB2 then MY4 would be superseded and in any event one of the other national bodies would then be able to propose UV8 and not put MY4 in place but if MY4 was not done he could not do TS4…. He needed TS4. Note all of these are made up numbers and do not (I hope) refer to any ISO documents)
He realised that the way the National C panels interact with each other and the International working group had a direct effect on the way the language was put together and the direction it took. Like the three-dimensional puzzles they can only go together one way to get the correct result. However you often appear to go in the wrong direction in order to get the pieces to finally lock together in the right shape. In this case different people had different correct results. It is a bit like playing poker. So we would have to vote yes to something we thought was wrong so it moved to a point were we could kill it later or rather modify it to what we thought was right. Voting "no" now meant we would not stop it (as the overall vote from the other countries would be a "yes") so could not get in the things we needed. Committees are staffed by people representing companies with commercial agenda… this is why the c# language has been "fast tracked" through ECMA and landed with ISO as a completed language with minimum interference by the normal standardisation process. It has also done it in a fraction of the time.
The same principal shows in all these situations. A narrow view of the problem domain can be disastrous. Whether it be devising a standard for the C language, embedded systems or for that matter gas boiler requirements a wider view of the overall domain is very useful. In these days of specialisations you need to read around your subject. For example although I am in embedded systems I still read "Computing"…. OK I read Back bytes and Dilbert and scan the rest!
You need knowledge of the areas you touch and the environment you are in. I still get calls from VC++ trained Computer Science programmers who want support when they are programming an 8-bit micro and it doesn't work the way they are used to with PC apps. I usually get a comment like "I don't know about the hardware I am a programmer". I don't expect them to be able to design the hardware but I would hope they understand the concepts and the basic architecture.
Open your mind and learn a bit about the hardware or the software. In any event both hardware and software people should understand the system domain and it's environment. According to Gary Kidder in his book the Soul of a New Machine charting rise of Data General and their mini computers… that is a small mainframe the size of a couple of filing cabinets! He commented in several places that they hardware and software (microcode) teams were encouraged to hangout both at work and outside. One group even met for breakfast at on the way in to work… I can't see that happening in the UK given the average café in the UK on winter mornings. It's different in California.
This mixing of the teams meant a cross-fertilisation of ideas and they found both teams benefited greatly from it. Also they found that the teams were able to move features from hardware to software (firmware) where it made sense to do so. Be aware of the areas around you.
On a completely unrelated but completely related subject… It's the summer when things go quiet and people take holidays. It is often a time to relax and take stock of the year so far. Alternatively it is a time of panic and stress. Half the team is on holiday and the deadline looms. Some on holiday can't relax because they know things are slipping in the office and it will all be there to greet them when they return. Email has revolutionised business however there is a down side as well as an up side. Note the number of Internet café's at holiday resorts from Blackpool to Base Camp in the Himalayas. Nowhere is safe! I know of several people who get their email on their tri-band mobile phones anywhere in the world. Many now check the email "just in case". So much for getting away from it all! They worry when they read the email and worry when they don't.
A friend of mine, a University Prof in a major city, used to take 2 weeks and retreat to cottage literally half way up a Welsh mountain. No radio, TV, telephone or newspapers. He did not go down the mountain into the village; his wife and children did that. Just for supplies. He, as did his wife, enjoyed immensely it but the children grew tired of it. Now his children have left home and he is retired from the university he does not need to retreat in the summer.
Retreat? There are several meanings for this. The military or combative retreat is to fall back and implies loosing. Then there is the retreat that is to retrace ones steps or go back and then there is the more philosophical or religious sense of retreat. This is a period of contemplation to let the mind free of everyday concerns and let it repair, rest and relax.
The mind does need to rest. Actually stress causes a loss in short-term memory capacity. However taking the mind somewhere else and exercising the parts you don't normally exercise is a good idea. So this summer when you take some time off don't let the office have the mobile number and the only time you should be on an internet connected computer is to check flight or sailing times, theatre tickets.or the surf. No "just checking the email". Relax the world won't end if you don't read it.
Now at the start of this unrelated section I said it was completely related to the previous topic. It is. The mind works in an interesting way. Most of it is sub-conscious. This is why ideas just come to mind with no warning or apparent thought. Hence the well-known saying, "to sleep on it", the mind works whilst the conscious is resting or more to the point not trying to direct it.
There is a well-known scene in the dam busters movie where they are trying to solve the low level bomb aiming problem. No one can solve the problem of a bombsight that works at 200 feet in the dusk over water. They gave up thinking about it and all went out to a show in town and half way through in flash of inspiration, not to mention 40 stocking clad legs of the chorus, the hero saw the two spotlights used to pin point the lead singer in a single spot. Pythagoras to the rescue and the fitted the lights to the aircraft so the two spots merged at 200 feet: Thus saving the world etc and having an excuse for 20 scantily clad chorus girls in the film. NB there is a prize of a ASCII mug for the first person to email me with the correct height above the water on the approach and the number of chorus girls in the scene!
So a summer break is essential because not only does it let the mind rest and de-stress but also it opens the mind to all sorts of new stimuli, or at least different to normal stimuli. Also without the conscious mind trying to force the mind to solve the same problem it is free to wander. You could get all sorts of useful ideas looking at things you wouldn't normally think about. Totally, apparently, unrelated things that may hold the key to a problem.
Last ESS I met a business acquaintance who was working for a company that closed. He was in the lucky position of having some money behind him and he took a conscious decision to "retreat" for six months. He said it was the best thing he has ever done. As it was intentional he was not stressed about finding work and he just relaxed and took stock of life. He recommended that I did the same… However with one child at collage and the other ant University I will have to win the literary first! I am stuck with the two weeks like all the other permies. Contractors of course are a different kettle of fish. Your assignment for the holiday is: can some one tell me where that phrase came from? Another free ASCII Mug
Take a break. It does your conscious mind good. It does your subconscious mind good and you never know it might even solve some of the problem you were working on. So I trust you are not reading this on holiday
Eur Ing Chris Hills BSc CEng MIET MBCS MIEEE FRGS FRSA is a Technical Specialist and can be reached at This Contact
Copyright Chris A Hills 2003 -2008
The right of Chris A Hills to be identified as the author of this work has been asserted by him in accordance with the Copyright, Designs and Patents Act 1988