EECS 373 Lab 2: Software Toolchain - Question Sheet

What is the purpose of the gpio.h file? Disassemble the gpio.o file and look at the assembly. Do you see anything related to the gpio.h file? Explain.




Disassemble the main.o file. Do you see the function call into your gpio.o file? Explain.




Is LED 1 really permanently turned on? Verify using an oscilloscope to see if LED 1 is really turned on continuously. What is the frequency of the signal that you see? How does this related to the CPU clock frequency?




Explain the difference between the GDB commands step and stepi. Use the GDB help command to find the difference.




Explain what this application does and how the C values get passed to the inline assembly function. Hint: use the disassembly function of Soft Console.




Post-Lab Assignments

Write a simple blinking LED function in Assembler with the following function signature: void blink(uint8_t num, uint8_t state) where num is the LED number and state the state the led should be put in (0: OFF, 1: ON). Put this function into its own object file. Call this function from within your C code.

We showed you where the Reset_Handler is located. Describe what this function does, and describe the initialization procedure. On which line and file do we call our actual main function? Explain.





Create a "Knight Rider" effect with all the LEDs. The LEDs should fade, not just toggle, between each other.


You may work with a partner for this assignment. Submit all C and assembler code as well as a text file containing the answers from the questions asked during the lab, and the post-lab assignment. You can use