Please do not get confused by the title. This is not an EDA software resource for electronics engineering, but a project collection about how to program hardware in high level languages and alternative approaches. I prefer to call it as Rapid Hardware Programming with High Level Languages.
The motivation of collection of these open projects, resources and tutorials is trying to help the programmers who have only programming experience in PCs, rather than the embedded systems. These programmers are software experts on the PC platform, but they do not know how to light a LED at all, because they have not sufficient background in electronics engineering. After all, this resource is trying to demonstrate those projects which use traditional and alternative high level programming languages available in desktop OSes to manipulate the hardware devices. The software experts can expand their experience to embedded system with these open source projects. Of course, it is very helpful for them to study electronics engineering courseware for embedded system development.
Actually this topic is hard to manage, because I have only the experience of electronics engineering, and I can not figure out what knowledge a software expert has or has not. However, during my background survey, I found many useful resources, even for myself. It brings me many ideas and inspiration that the electronics devices can be programmed in complete different approaches, without involving too much in detail of electronics devices. The software engineers can use high level languages and high level protocols to manipulate devices. The extra value of these projects is the development cycle reduction and rapid prototype development. It has a great commercial value in business development. The development team can easily setup hardware and demonstrate to the management team and the clients in a quick way to convince them to start the project, purchase the products, or delivery the commitment of development, without developing a fully functional product in a much longer period and run out their patience.
The collected projects usually open the source code, which can be ported to embedded systems. These source codes can be reused, because most of them are written in high level languages.
This resource book will showcase the possibilities of development combination with different interfaces, different operative systems, and different languages. Meanwhile some non-traditional programming skills are also addressed, including cross platform deployment, for instance, accessing the Windows DLL in a Linux application. It is quite useful when you have to use the commercial software components available in Windows from Linux application software.
We are grateful to readers who can contribute ideas, share source codes, recommend projects to us for this topic. We also hope the software expert can contribute their effort to the development electronics devices and bring more fresh ideas and create exciting and amazing products for us.