EE Software Development - Operative Systems
The programming interfaces are various in different operation systems. It is a good idea to review candidate operation systems and find the drawbacks and advantages for each platforms.
DOS/Windows 9X
Here I combine DOS and Windows 3.x, Window 9X and Windows ME together, because they are similar in hardware programming. Of course Windows 9X has different driver model from DOS. I still think they can share something in common. The hardware programming on DOS normally is C and assembly languages, any low level registers can be accessed by application software. The programmer must be familiar with BIOS, it is quite important to program on DOS. DOS made Bill Gates rich and bred a lot of hackers.
Here are several links to various DOS software and other DOS related websites. Most are freeware but a few are shareware and commercial programs. It is a very informative site, ranges from DOS, batch file, compiler, GUI, RTOS, Assembly, and DIY project for IR remote controller. The full list of DOS development is at http://www.opus.co.tt/dave/indexall.htm, which is a long list. This site also covers topic under Windows, at http://www.ttcsweb.org/.
DJGPP is a compiler and a set of tools that let you produce 32-bit protected-mode programs which run on MS-DOS/MS-Windows machines. This FAQ covers questions for low-level DOS/BIOS programming issues, including int86, 1MB limitation and others.
The dmoz open directory offers many resources for technical topics, including DOS. You can also find alternatives DOS offerings in real-time applications, open source project. A designer should visit this site to check if there is something new.
Windows NT/2000/XP
Windows NT/2000/XP are much stable than DOS/Windows 9x. One reason of their stability is the different programming model from previous releases. They offer secure environment. Even a awful design or the beta version application software will not impact the whole system. In order to achieve that goal, the direct access to the hardware port is forbidden in Windows NT/2K/XP. I can not contribute too much on the device driver programming in Windows NT/2K/XP. I found the following sites as reference.
Mr. Craig Peacock designed the PortTalk, a Windows NT/2000/ I/O port device driver. The porttalk device driver comes complete with source code. It provides the facility to modify the IO permission bitmap and/or write and read to I/O ports via IOCTL calls.
ParPort 2000 from Zeecube delivers the ability to access PC parallel ports from Win32 applications under Microsoft Windows NT 4.0, Windows 2000 & Windows XP. Previously, the only way would have been to write an device driver to perform the I/O on behalf of the application.
This kernel mode driver and Win32 library combination allow Win32 applications to execute IN and OUT instructions to the parallel port device hardware I/O ports.
This driver is a commercial software product, you can check the license at the end of the web page.
UNIX/Linux
UNIX is not as same as Linux, but they share most common architect. The kernel of Linux is open, programmer can easily found reference design in the Internet and modify them for own purposes. Meanwhile Linux offers many powerful utilities and more flexible ways to program hardware. For example, the device file is very convenient for access hardware. But different devices may have different meaning for its device files, so programmer should use them case by case. Obviously Windows libraries (.lib and .dll)are different from Linux libraries (.a and .so). Although they are not binary compatible, the WINE project is available for using Windows libraries in Linux. PS, the WINE project is not an emulator. This project can not run any Windows program in Linux, but it does a good job in some cases.
Linux I/O port programming mini-HOWTO
br>
br>
br>
br>
br>
br>
br>
Tutorial of writing a Linux hardware device driver
br>
br>
Wine is an Open Source implementation of the Windows API on top of X, OpenGL, and Unix.
Think of Wine as a compatibility layer for running Windows programs. Wine does not require Microsoft Windows, as it is a completely free alternative implementation of the Windows API consisting of 100% non-Microsoft code, however Wine can optionally use native Windows DLLs if they are available. Wine provides both a development toolkit for porting Windows source code to Unix as well as a program loader, allowing many unmodified Windows programs to run on x86-based Unixes, including Linux, FreeBSD, Mac OS X, and Solaris.
Read also:
http://dev.emcelettronica.com/ee-software-development
http://dev.emcelettronica.com/ee-software-development-interfaces
http://dev.emcelettronica.com/ee-software-development-languages
http://dev.emcelettronica.com/ee-software-development-projects
http://dev.emcelettronica.com/ee-software-development-tutorials
http://dev.emcelettronica.com/ee-software-development-youtube-tutorials
- allankliu's blog
- 1233 reads





Read also:
Read also:
http://dev.emcelettronica.com/ee-software-development-pdf-tutorials
Post new comment