BOS Logo BOS Operating System

Home News Introduction Documentation Versions History Movies BOS board Preview


In this page are described some movies showing BOS in action. When applicable is shown the serial port output. This material can be useful to compare source code provided with a real working hardware.

All movies are DivX (DivX 5.2.1 codec - Build b1328-WaffleDay) compressed.

Movies can be downloaded from Download Area.

Movie 1 : complete.avi

This movie shows "Complete" example in action from board boot.

Frame 10 First green debug led on. This led is Debug led 0 driven by UMN_Sub1Task().
Frame 11 Red debug led is on. This led is Debug led 1 driven by UMN_MainTask(). Display is still off because not yet initialized.
Frame 12 Display is initialized and is showing "MSG 0" on the first line (UMN_Sub5Task()), indicating no messages are received from serial port and "Tmp:" on the second line (UMN_MainTask()) indicating current temperature. In this frame temperature value is missing because temperature is not yet read from sensor.
Frame 22 Temperature is shown on display. Displayed value is 22.50 C, correct laboratory temperature.
Frame 71 First SIPO led (indicated with D3 on board silk screen) is on, and on sequent frames SIPO leds are toggled slowly in a top-bottom sequence. SIPO sequence is driven by UMN_Sub2task() task
Frame 111 SIPO led sequence is stopped till frame 192. UMN_Sub2task() driving led sequence is destroyed by UMN_Sub1Task().
Frame 192 Last SIPO led is switched on and a fast bottom-up led sequence is shown. This fast sequence is driven by UMN_Sub3Task() and is never stopped.

Serial port received data is shown :

Console Ready
Sub 2 create
Sub 2 OK
Double test : OK : 3.100
Sub 2 destroy
Sub 3 create
Sub 3 waiting for Event1
Set Event 1
Sub 3 set

Movie 2 : complete-messages.avi

This movie shows "Complete" example in action from board boot. Main difference from Movie1 is receiving messages from serial port. Every five bytes received (five bytes is defined as a message) data is shown on display and number of received messages and bytes is also shown.

Frame 132 First message is received from serial port and 'hello' received string is shown in the second display line at left. In the first line is shown the number of received messages (1) and received bytes (5). Task dedicated to manage serial port is UMN_Sub5Task().
Frame 233 and 234 A second message is received from serial port. New received string ' bos ' is shown and received messages and bytes count is updated. Task dedicated to manage serial port is UMN_Sub5Task().

Serial port received data is identical to Movie1 data. Messages sent are not reported back on serial port.

Movie 3 : complete-temperature.avi

This movie shows "Complete" example in action while temperature sensor is warmed up by a finger. It is possible to observe a temperature increase when finger touches sensor and a decrease when finger leaves device.

Frame 30 Finger is coming on temperature sensor. Shown temperature is 23.50 C and no increase is still observed
Frame 43 Finger is on temperature sensor and shown temperature is 24.25 C. An increase is observed. Task designed to read temperature is UMN_MainTask()
Frame 63 Finger is going away. Temperature shown is 25.50 C
Frame 74 Finger is away but temperature is still increasing and value shown is 25.75 C
Frame 83 Temperature is decreasing and value shown is 25.50 C. From this frame temperature goes down to 25.25 C at the end of movie.

Serial port received data is identical to Movie1 data. Temperature changes are not reported on serial port.

Movie 4 : keyboard.avi

This movie shows "Complete" example while pressing a keyboard button.

Frame 33 A keyboard button is pressed. First display line shows "Key : 40" indicating is pressed button number 7 (0x40 = 0x00000040 = 0000.0000.0000.0000.0000.0000.00100.0000 just one bit is set, one button is pressed). On display second line, at left, is shown '0' indicating this is the first pressed button.
As can be noted from movie, after pressing button, led sequence is stopped for a while; this is due to the fact debug driver stops preemption to read tasks data and send to serial port all information before restoring task preemption.

Serial port received data is shown :

Keyboard status : 0x0
Display Line 0: Key : 40        
Display Line 1: 0     Tmp: 23.75
TASK Dump at tick 5015
Critical Counter : 2
Task count 7
Task 0x1300 - Next 0x1120 - State 0 - Stack Size 12 - max stack used 11 - Stack addr 0x12F6 - is Idle - is Head
Task 0x1120 - Next 0x21FA - State 2 - Stack Size 70 - max stack used 23 - Stack addr 0x11D6
Task 0x21FA - Next 0x157E - State 1 - Stack Size 300 - max stack used 71 - Stack addr 0x1826
Task 0x157E - Next 0x1F7C - State 1 - Stack Size 300 - max stack used 17 - Stack addr 0x1A7E
Task 0x1F7C - Next 0x15A4 - State 0 - Stack Size 300 - max stack used 57 - Stack addr 0x1CFC - is Running
Task 0x15A4 - Next 0x1F56 - State 2 - Stack Size 300 - max stack used 40 - Stack addr 0x1F54
Task 0x1F56 - Next 0x1300 - State 1 - Stack Size 300 - max stack used 16 - Stack addr 0x157C - is Tail
End of Dump.
Keyboard ON

Task dump shows the following information :

Following lines show task details : Moreover are evidenced some tasks conditions :

Movie 5 : display.avi

This movie shows "Display" example from boot. This example is very simple and only shows 'Welcome to BOS' string on the display. SIPO leds are not initialized and at every boot are randomly switched on or off.

Frame 11 Some SIPO leds are switched on. Board is powered and microcontroller is in its boot reset phase.
Frame 13 In the first display line on the right it is slightly visible a 'W'.
Frame 19 'Welcome' string is on the display
Frame 29 'Welcome to BOS' is completely visible on the display. Now display will be cleared and a new cycle starts.
Frame 40 Display is clear. New string will soon come from right.

Display example do no produce serial port output.

BOS - operating system - Luca Bertossi - Logo hosts BOS operating system