'Frequently Asked Questions for Lab 0'

Q. What is the purpose of Lab0?

Lab0 is designed to get you comfortable with the Lab Setup that we have. At the end, you will get used to creating new projects in Wind River Workbench, building your code,connect to a Lab Target, use the System Viewer to trace your code execution. The HOW-TO have screenshots will be helpful, refer them.

You could search on your favorite search engine and read about few important concepts such as tasks, semaphores, types of semaphores, using semaphores for task synchronization. Doing this will help you understand two_tasks.c code.

Q. I want to download the required paper to read or the task_two.c file, but I am asked a login/password ... what is it?

It was given out the first day of class, it is also listed on the initial CU Learn page. If you can't login to CU Learn (yet), ask someone in the lab.

Q. What is this VxWorks Simulator or VxSim?

According to the VxWorks documentation:

"Wind River VxWorks Simulator (aka VxSim), is a port of VxWorks to the various host architectures. It provides a simulated target for use as a prototyping and test-bed environment. In most regards, its capabilities are identical to a true VxWorks system running on target hardware. Users link in applications and rebuild the VxWorks image exactly as they do in any VxWorks cross-development environment using a standard BSP."

Read more about VxSim by using the help menu in the Work Bench Application or by directly accessing it at the path: C:\WindRiver\docs\extensions\eclipse\plugins\com.windriver.ide.doc.wr_vx_simulator

Q. Wow, the simulator is really cool! Can I do all my labs using the simulator?

You can use the simulator to do all of Lab 0 only if you want to. For other labs, you will have to come into the labs eventually. Mainly because you absolutely cannot trust the timings or System View readings using the simulator under Windows. Why? Read the Simulator docs or listen to the lectures. You will get the answer.

Q. What do I analyze in the System Viewer trace output?

Try to point out exactly the points in the trace, where both the tasks synchronize with each other using semGive and semTake. To do this try to understand two_tasks.c source code and relate the code with the trace you see on the system viewer.

Q. When I typed "i" on the Host Shell, I saw a lot of tasks running but I only have three tasks? What are these tasks and where they come from?

VxWorks have native tasks running on the system all the time. They essentially take of things like network, logging messages and even the host shell itself runs within a native task. You can read up on these tasks under docs for your own information but for this lab, you don't have to worry about them. You will also see them listed in the System View.

Q. For question 5, I read the documentation for VxSim, the default simulator, and it claims it has POSIX support. Do I still need to configure a new kernel image based on the Simulator BSP?

Yes. It is meant as a learning exercise so that you know how to build a kernel for yourself and get familiar with kernel configuration. It is good to know how to configure the kernel, so that you can remove unnecessary modules that you may not require, and only have essential components.

Q. Do I need to completely understand the posix_mq.c code?

The posix_mq.c file has code that deals with POSIX message queues.You can run this code on your custom kernel image which has POSIX support.You are not expected to thoroughly understand this,but you will still need to glance through the code to find the entry point function you need to call to run the code.

Q. For question 6, do I have to follow the exact instructions to set a break-point.

Nope, just like in any other reputable application, you can to the same results many different ways. In Work Bench, it is tricky to set a break point. You can ask some of the people in the lab for help if you get stuck.

Q. For question 6, what does it mean by "How many steps are there from a break-point set at this entry point until you enter mq_open using the single step into?".

In the mixed mode, you can see the assembly code embedded into the C code. When you step-into the code using F* or the GUI menus, it will step through the assembly code. You can count the assembly instructions the code has to take from the entry to the mq_open.

This page is last updated on August 26, 2013.

Any comments or suggestions on this page? Email the Professor and CC the TA's.

<< Back