Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. Hardware & Devices
  4. Best Resource for the information

Best Resource for the information

Scheduled Pinned Locked Moved Hardware & Devices
hardwarehelplearning
6 Posts 4 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • V Offline
    V Offline
    vikrantc1355
    wrote on last edited by
    #1

    Hello All, Which is the best place to look for the information about the various facts technology about hardware. I am an application programmer with a very limited knowledge of how we access the hardware through software. Basically what I need to learn is the basic knowledge about various topics as PCI buses (want to undersatand what bus-function-device-offset way of reading PCI space), ISa, SPD, SMBus etc etc. I am able to download specification documents for each of above mentioend technology bit they are very detailed and indepth. What exactlly I am looking for is brief and to the point stuff for a programmer. Pleas help Thanks

    J V 2 Replies Last reply
    0
    • V vikrantc1355

      Hello All, Which is the best place to look for the information about the various facts technology about hardware. I am an application programmer with a very limited knowledge of how we access the hardware through software. Basically what I need to learn is the basic knowledge about various topics as PCI buses (want to undersatand what bus-function-device-offset way of reading PCI space), ISa, SPD, SMBus etc etc. I am able to download specification documents for each of above mentioend technology bit they are very detailed and indepth. What exactlly I am looking for is brief and to the point stuff for a programmer. Pleas help Thanks

      J Offline
      J Offline
      JudyL_MD
      wrote on last edited by
      #2

      vikrantc1355 wrote:

      What exactlly I am looking for is brief and to the point stuff for a programmer.

      The average programmer doesn't need to know this stuff. The hardware, in conjunction with its driver and the OS, expose an interface to the user-mode world which is used to access the hardware - things like a drive letter, a custom IOCTL, a com port indicator (COMx), ... User-mode programs use that to communicate with the hardware. If you're looking at actually talking to the hardware, you're entering the realm of writing a device driver. "Brief and to the point stuff" for this subject doesn't exist. How a driver talks to a piece of hardware depends on each piece of hardware, and the operating system it is written for. This is not a simple straight-forward subject. Here's my usual list that I give when asked about info on device drivers. The WDK itself - documentation andthe samples are improving but it assumes you already have a good knowledge of the OS "Programming the Windows Driver Model" 2nd ed by Walter Oney - make sure it is the 2nd edition "Microsoft Windows Internals, Fourth Edition: Microsoft Windows Server(TM) 2003, Windows XP, and Windows 2000" by Mark Russinovich and David Solomon "Windows NT Device Driver Development" by Peter Viscarola and Tony Mason - dated but the stuff they discuss hasn't changed and it's a good foundation. "Developing Drivers with the Windows® Driver Foundation" by Penny Orwick and Guy Smith - this one is from Microsoft Press and is the only book currently published with a good description of KMDF This one should be excellent (if they ever get it published) "Introduction to the Windows Driver Foundation Kernel Mode Driver Framework " by Peter Viscarola, Tony Mason, Mark Cariddi, Brenda Ryan, Scott Noone, and OSR

      V 1 Reply Last reply
      0
      • J JudyL_MD

        vikrantc1355 wrote:

        What exactlly I am looking for is brief and to the point stuff for a programmer.

        The average programmer doesn't need to know this stuff. The hardware, in conjunction with its driver and the OS, expose an interface to the user-mode world which is used to access the hardware - things like a drive letter, a custom IOCTL, a com port indicator (COMx), ... User-mode programs use that to communicate with the hardware. If you're looking at actually talking to the hardware, you're entering the realm of writing a device driver. "Brief and to the point stuff" for this subject doesn't exist. How a driver talks to a piece of hardware depends on each piece of hardware, and the operating system it is written for. This is not a simple straight-forward subject. Here's my usual list that I give when asked about info on device drivers. The WDK itself - documentation andthe samples are improving but it assumes you already have a good knowledge of the OS "Programming the Windows Driver Model" 2nd ed by Walter Oney - make sure it is the 2nd edition "Microsoft Windows Internals, Fourth Edition: Microsoft Windows Server(TM) 2003, Windows XP, and Windows 2000" by Mark Russinovich and David Solomon "Windows NT Device Driver Development" by Peter Viscarola and Tony Mason - dated but the stuff they discuss hasn't changed and it's a good foundation. "Developing Drivers with the Windows® Driver Foundation" by Penny Orwick and Guy Smith - this one is from Microsoft Press and is the only book currently published with a good description of KMDF This one should be excellent (if they ever get it published) "Introduction to the Windows Driver Foundation Kernel Mode Driver Framework " by Peter Viscarola, Tony Mason, Mark Cariddi, Brenda Ryan, Scott Noone, and OSR

        V Offline
        V Offline
        vikrantc1355
        wrote on last edited by
        #3

        My requirment is not something related to driver develoment. The books you menmtioned seems to be specific to that peupose. Waht I am looking is like I want for example lets assume I want to show the content of PCI Config space to show this I should have a good understanding of PCI spacce and its structure and other stuff. Smilarly for SPD and SMBus etc.

        J D 2 Replies Last reply
        0
        • V vikrantc1355

          My requirment is not something related to driver develoment. The books you menmtioned seems to be specific to that peupose. Waht I am looking is like I want for example lets assume I want to show the content of PCI Config space to show this I should have a good understanding of PCI spacce and its structure and other stuff. Smilarly for SPD and SMBus etc.

          J Offline
          J Offline
          JudyL_MD
          wrote on last edited by
          #4

          The problem is, from a coding point of view, that only drivers are allowed to access this information from the hardware. You cannot write a user-mode program to access this directly - the OS flat out won't let you. The content of the PCI config space, for instance, is the way it is described in the spec. You can look in the DDK files to see the data structure(s) used by a driver to query for the config space (search for PCI_COMMON_CONFIG for the PCI stuff). All those tools that show stuff like the config space (I've written some myself) all commmunicate with a driver to actually get that info. My suggestion to learn about this type of hardware stuff is to look at the specs for each class of hardware and then the appropriate sample drivers in the DDK to see how those data structures and interfaces are manipulated. You can't really draw a line between the knowledge and the driver since the driver is the only one who gets to use it. The knowledge is in the spec and the "how to" use it is in the driver. If you have access to a Linux box, it is much simpler to write a Linux driver and play with the structures under that OS. However, you have the problem of what piece of hardware to play with since you probably don't have a spare piece of hardware laying around to serve as your guinea pig. Judy

          1 Reply Last reply
          0
          • V vikrantc1355

            My requirment is not something related to driver develoment. The books you menmtioned seems to be specific to that peupose. Waht I am looking is like I want for example lets assume I want to show the content of PCI Config space to show this I should have a good understanding of PCI spacce and its structure and other stuff. Smilarly for SPD and SMBus etc.

            D Offline
            D Offline
            Dan Neely
            wrote on last edited by
            #5

            extending on what judy said, what information is exposed in userland is exposed via WMI (which in turn is populated by talking to drivers).

            Otherwise [Microsoft is] toast in the long term no matter how much money they've got. They would be already if the Linux community didn't have it's head so firmly up it's own command line buffer that it looks like taking 15 years to find the desktop. -- Matthew Faithfull

            1 Reply Last reply
            0
            • V vikrantc1355

              Hello All, Which is the best place to look for the information about the various facts technology about hardware. I am an application programmer with a very limited knowledge of how we access the hardware through software. Basically what I need to learn is the basic knowledge about various topics as PCI buses (want to undersatand what bus-function-device-offset way of reading PCI space), ISa, SPD, SMBus etc etc. I am able to download specification documents for each of above mentioend technology bit they are very detailed and indepth. What exactlly I am looking for is brief and to the point stuff for a programmer. Pleas help Thanks

              V Offline
              V Offline
              Vaclav_
              wrote on last edited by
              #6

              I would start with any A+ certification book and go from there into your specific area of interest. PS Real computers interface with real hardware - don't let anybody tell you that you do not need hardware knowledge to be a computer geek! Cheers Vaclav

              1 Reply Last reply
              0
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • World
              • Users
              • Groups