Rodrigo Almeida Sr. - Professor at Universidade Federal de Itajubá
I’ve start with electronics at 1998, when I started a technician course on eletro-electronics. I think this was one of my first experience of lighting a led.
I like to debug software using scopes. If they came packed with protocol analyzers for using with UARTS better. Also National has great acquisition boards that helps a lot when testing the protypes.
LabView is great for develop an acquisition and processing signals. The graphical programming interface speeds up the time need to set-up the system. In development one of my favorite tools are GCC suite of compilers with its wide range of target architectures and Splint for static code checking.
The Art of Programming Embedded Systems (Jack Ganssle), The C Programming Language”, (Dennis Ritchie, Brian Kernighan) and The elements of Technical Writing (Blake & Bly). These are the technical books I tend to keep close. The first two because I use as a guideline for my classes, the third is a little help for a non-native English speaker. The other books are non-technical ones: The Lord Of the Rings, The Silmarillion and The Hobbit (Tolkien), A Batalha do Apocalipse (Eduardo Spohr) and the first two volumes of A Song of Fire and Ice (George Martin).
One nice trick I commonly use is to keep an output pin connected at a oscilloscope all times during the development. I manly used it as a “free-time” counter by setting the pin high every time the kernel is not running a process (idle task). This way you can have a good picture of how much free time you have left in your system. If you adjust the scope to measure the DC voltage you just need to multiply by 20 to get the free time in percentage.
Until now my favorite project is developing the microkernel for one of the development boards we have here. Operational systems design rally requires a deep knowledge of the C language. Is really nice to play with function pointers while abstracting and encapsulating hardware devices in struct’s and functions calls. I’m still developing some of the main parts (mainly the context switcher) which will require assembly and C connection.
Besides the microkernel, I’m working on my PhD thesis in artificial intelligence. We’re developing a new neural net training methodology without complex activation functions that may be more suitable to embedded in a simpler hardware.
I think security will be the main thread. With virtually all systems demanding data connection capacity, being internet, bluetooth or any other protocol, the risks of attacks rises significantly. Even in a small project is already hard to cover all breaches. Project safer systems is mandatory and developing new techniques of design and test to ensure this safety will be a rewarding challenge.