'Frequenty Asked Questions for Lab 3'
Q. How long should be the explaination and critique of the paper/frequency architecture paper? Or this is my critique, is this ok?
As long as all the important points are in your writeup, there is no minimum or maximum. You can write a paragraph or in bullet points.
Q. What is an ISR and how is it different than regular routines/functions.
You can think of ISR as the hook function you wrote in the last lab. You give the kernel a function pointer to your routine and the kernel magically calls it when a interrupt comes on the line/vector your set it up for.
In this problem, you are replacing the system clock interrupt with your own. Failing to do it correctly will cause the system to crash (reboot, freeze, burn in flames etc.). Once you get it right, it will only be appropriate to set it back to the orignial routine once you are done.
Q. What routine should we use to connect our ISR?
In the sysLib, use sysClkConnect(). Some students in the past have use intConnect() to accomplish the same thing, which is also the way the files on the CD do this.
Q. I am using sysClkConnect() but my routine isn't being called.
To debug, first don't do any semGive in your ISR, just update a global counter and call tickAnnounce(). Then see if the counter is being updated. If it is being updated then the problem is in your semGive() after N tick logic. Also, depending on how you connect, you might need to call sysClkEnable() after calling sysClkConnect().
Q. What does "top-half for your driver" mean?
You can get an eample of it here. For a visual, read page 153 of the Text Book.
Q. Where can I get more information about writing device drivers for vx works?
You will have to read up on the device drivers. At least VxWorks Programmers Guide Chapter 6. For more indepth knowledge read vxworks_device_driver_developers_guide_6.4, and vxworks_drivers_api_reference_6.5. All these documents are present on your mahine under [%WhereeverWindRiverIsInstalled%\docs\extensions\eclipse\plugins\com.windriver.ide.doc.vxworks]
Q. Why can't I just call my read/write functions directly?
Because the exercise is to learn how to write absrtracted device drivers.
Q. For our driver read() function, I don't understand how to get a digital/virtual/integer timer values into a char buffer?
The char* is just a type pointing to a buffer. This doesn't mean the buffer can only hold (ASCII) chars. You can cast that buffer in the driver to whatever structure you want. Similarly, the test task can cast the pointer to it's buffer, which can be of any kind/size, to a char* while calling the read().
Q. I found a probing function online .. can I use it?
Sure. Probing PCI bus code is very common. Actually the video card driver included on the CD probes the pci bus as well. Just make sure you understand the code and extract out the correct information, rather than just a mindless copy/paste.
Q. What is a north bridge and how will I find Intel's North Bridge's Vendor/Device IDs?
North Bridge is also known as Memory Controller Hub or MCH. One way to find out Vendor and Device IDs is by searching this online database.
Q. How can I find North bridge's including: latency timing, the arbitration control etc?
Did you read the PCI System Architecture book?
Q. I 'm not sure what i'm supposed to be looking for as far as "memory access by masters other than the main CPU"?
These Intel Specs specifically tells you all the info.
This page is last updated on October 23, 2008