====== Lab 2 ====== ==== Background ==== [[ucos background|Background Information]] ==== Prelab studies ==== Please make sure to read and understand the license agreements listed below: * {{:legalnotice_os_only.pdf}} * {{:micrium-sla-cpu.pdf}} * {{:micrium-sla-p1.pdf}} * {{:micrium-sla-pl.pdf}} Also reference the following study guides and application notes: * {{:an1004_the_10-minute_guide_to_rtos_.pdf}} * {{:ucos-ii-refman.pdf}} * {{:quickrefchart-color.pdf}} * {{:task-state-diagram.pdf}} * {{:an1002_mutual_exclusion_semaphores_.pdf}} * {{:an1005_inter-process_communication_.pdf}} * {{:an1007a_c_os-ii_and_event_flags_.pdf}} * {{:ucos-ii-cfgman.pdf}} * {{:taskassignmentworksheet.pdf}} * {{:lcd-manual.pdf}} * {{:whatsnewsince-v200.pdf}} * {{:releasenotes.pdf}} * Make sure you fully understand the previous labs ([[lab1|Lab 1]]). * Also read the application note 1456 which provides a general information about the stationary project used in the lab: * {{:an-1456_c_os-ii_dragon12_development_board_.pdf}} ==== Prelab Evaluation ==== μC/OS-II source code is divided into platform dependent and platform independent files. Platform independent files can be found in Micrium/Software/uCOS-II/Source/. Platform independent files can be found in Micrium/Software/uCOS-II/Ports/HCS12/Paged/Metrowerks/SerialMonitor/. By studying the source structure and Micrium/ReadMe/uCOS-II-RefMan.pdf briefly answer the following questions: * What is the process of creating a new task in μC/OS-II? Provide sample pseudo code by studying the “KeypadTask” code block used in the lab. * Explain how OSFlagPend function works and how it prevents the “KeypadTask” from accessing the critical LCD resource. * Prepare a version of the demo program that guards the LCD resource using semaphores instead of OSFlag (see {{:an1005_inter-process_communication_.pdf}}) ==== Procedure ==== * Open the lab stationary using CodeWarrior located in: LAB03/Micrium/Software/EvalBoards/Freescale/MC9S12DG256B/WytecDragon12/Metrowerks/Paged/OS-Probe-LCD/OS-Probe-LCD.mcp * Recompile the project and transfer the binaries to Dragon12 board as explained in [[lab1|Lab 1]]. Try the program and ensure you know how it works {{:icon3.jpg?30}} * Do the same for the program you developed in the prelab to use semaphores to protect the critical code segments in the LCD access. Test and debug. * Demonstrate the working program to your T.A. Submit the source code and prelab answers using the command: //submit 4352 lab2 filename// to submit your prelab report and and code. (Use “man submit” for details on how to use the submit command. The “course” is “4352”, the “assignment” is “lab2”.) ==== Resources ===== * {{:lab02.zip}} * {{:serialmonitor.zip}}