The CMXBug Manual. The CMXBug Manual

Size: px
Start display at page:

Download "The CMXBug Manual. The CMXBug Manual"

Transcription

1 The CMX CMXBug TM debugger provides the ability to view and modify different aspects of the CMX multitasking operating system environment, while application code is running. CMXBug runs as a task, usually the highest priority task. In most cases, one of the target processor UART channel(s) is used as the input/output device. A simple terminal or CPU with a keyboard is all that is needed to use CMXBug. When the CMXBug task is enabled it will send a menu to the screen. One of many prompts may be selected, allowing the user to view and possibly change many aspects of the CMX RTOS environment. When the CMXBug task is running, it prohibits other tasks from running and also freezes the task timers and cyclic timers, to get an accurate picture of the "current state" of the CMX RTOS environment. CMXBug has the capability to "single step" one system TICK, allowing normal activity to occur for one system TICK, with CMXBug resuming after this "single step". Also the number of system TICKS that CMXBug will wait, allowing normal activity before it resumes, can be selected. This is a very powerful and helpful feature. CMXBug allows access to most of the CMX RTOS features, such as: Tasks, Cyclic Timers, Resources, Mailboxes, Queues, Stacks, the system TICK, TIME SLICE scales, etc. For example, you may view a task, which shows its current state (ready, waiting on what, the time remaining, etc.), its current priority, its starting address, the events associated with the task, the task's stack address and maximum usage. Also you may start a task, wake a task that was waiting on some entity and stop a task. CMXBug displays each task s percentage of RUNNING time to the total. This presents an accurate picture of each task in relation to all tasks. It also shows the amount of time that the processor is "IDLE" with no task running. This gives a very powerful insight how the processor time is being spent. A terminal that will send and receive characters using its serial port, or any PC that has a serial port and a communication package such as Procomm, Mirror, etc., should be connected to the target processor s serial port. For a communications package you may also use the CMX CMXBugio.exe program described below. The communication package selected should be fast enough to receive and display characters (without losing them) at a BAUD rate of CMX has a PC based program, CMXBugio.exe, which allows a PC to send and receive characters from either communication serial port 1 or 2. This is an interrupt driven program which allows characters to be received and transmitted without losing received characters. This will happen, in a normal polled environment, at a high BAUD rate. To use CMXBugio.exe the target processor UART must be configured for 9600 Baud, 8 data bits, one stop bit and No parity (9600 N81). Please notify us if you did not receive CMXBugio.exe and you would like one. 1

2 This manual will NOT go into great details about the CMX RTOS and its function calls. It is assumed that the user has read the CMX manual, is familiar with the CMX function calls and their parameters, and has a basic insight on how the CMX RTOS works. The CMX RTOS must be used in the application for CMXBug to work. Also, CMXBug.obj must be included in the link script, and CMXBUG_ENABLE must be defined as 1 in the "cxconfig.h" configuration file. To enter the CMXBug debugger, press the + (plus) key from the console input device. Once this is done the CMXBug debugger task will take control of the CMX RTOS system and present a menu to the user. The menu looks as follows. Select the desired function: Enter 1 TASKS Enter 2 RESOURCES Enter 3 CYCLIC TIMERS Enter 4 QUEUES Enter 5 MAILBOXES Enter 6 RAM display Enter 7 STACK information Enter 8 SYSTEM TICK SCALE Enter 9 TIME SLICE SCALE Enter 10 TIME SLICING select Enter 11 GO and RESUME CMXBug Enter 12 QUICK GO and RESUME CMXBug Enter 13 TIME ANALYSIS Enter 14 TIME ANALYSIS reset Enter 15 ADDITIONAL TASK functions Enter 99 EXIT CMXBug Enter P/p to toggle ECHO mode Your choice? The following pages will describe each of the above choices in detail. First we will explain some of the data entry prompts you will see. Because CMXBug will usually talk (UART I/O) to a terminal or CPU, normal data entry is somewhat limited. Also to keep the code size of the CMXBug task down to a minimum, the data entered is not parsed until the <Return/Enter> key has been pressed. Here are some of the prompts that will be encountered. One of the most frequent prompts is as follows. "Function" dump, enter number, * for all, <return> to exit. Choice? 2

3 "Function" is the selected function from the menu screen. "enter number" is the number of the particular entity to be viewed or changed. A decimal number or a hexadecimal number may be entered. To enter a hexadecimal number the x/x key must be pressed first. The normal hexadecimal nomenclature, 0x, should not be used. Usually a number ranges from 0 (zero) to the MAXIMUM number less 1, configured for that function. An example would be CYCLIC TIMERS. Lets say that the maximum number of CYCLIC TIMERS in the application is 5. In this example valid numbers would be 0 (zero) through 4. This is because the array of CYCLIC TIMER structures begins at 0 (zero) and goes up to 4. If the number entered is either too small or too big, then an error message will be displayed and the "entry prompt" will be shown again. Enter "*" to show ALL of the particular entity selected. If there are more than 18 items, then you will be prompted to press the <return> key to bring up the next page. Press the <return> key at the prompt to go back to the previous menu. The <return> key must be the first key entered to exit the current function. At ANY TIME, the + (plus) key may be pressed to return to the main menu. Another entry prompt that the user will encounter is as follows. "Function", enter SLOT #, "TASK name, <return> to exit. Choice? "Function" is the selected function from the menu screen. "enter SLOT #" is the TASK SLOT NUMBER that the CMX RTOS K_Task_Create function has returned for that particular task. This SLOT NUMBER is not necessarily the order in which the tasks were created. The SLOT NUMBER is the index number into the task array that CMX maintains. A decimal number or a hexadecimal number may be entered. To enter a hexadecimal number the x/x key must be pressed first. The normal hexadecimal nomenclature, 0x, should not be used. Usually a number ranges from 0 (zero) to the MAXIMUM number less 1, configured for that function. "TASK name" is the NAME of the supplied to the CMX K_Task_Name function for this task. To enter a task name the first key pressed MUST be the double quote key ("). This informs CMXBug a character string is being entered. The maximum number of characters used in a task name is 12. Note that task names are case sensitive and only the first 12 characters will be used, even if more than 12 characters are given to the K_Task_Name function. If the character string entered does not match any of the task names, then an error message will be displayed and the "entry prompt" will be shown again. Press the <return> key at the prompt to go back to the previous menu. The <return> key must be the first key entered to exit the current function. At ANY TIME, the + (plus) key may be pressed to return to the main menu. 3

4 The functions that allow viewing and changing the selected variable value have the following prompt. Current "variable" = Enter new "variable value" or <return> to leave as is Where "variable" is the variable selected by the chosen function. CMXBug will show the current value of this variable. "Enter new variable value or <return> to leave as is" allows the user to select a new value for this variable, or to leave it at its present value by entering the <return> key first. The functions that allow viewing and changing the selected variable STATE (enabled/ disabled), have the following prompt. Current "variable" is (enabled/disabled) Enter Y/y or N/n to enable/disable "variable" or <return> to leave as is Where "variable" is the variable selected by the chosen function. CMXBug will show the current state of this variable. The state can only be enabled or disabled. "Enter Y/y or N/n to enable/disable "variable" or <return> to leave as is" allows the user to enable this "variable" by entering the Y/y keys or to disable the variable by entering the N/n keys. The "variable" may be left in its current state by entering the <return> key first. There are a few more "entry prompts", that are basically the same as the above "entry prompts". These prompts are answered similarly. The following will show you the different menu prompt functions and the associated "picture" that is seen when the selected function is chosen. There may be slight differences, depending upon minor enhancements to the CMXBug code. 4

5 TASKS function Slot Name State (time) Trig Pri TSK Addr E-Flags E-Match 1 CMXBug running 1 1 0x131C 0x0000 0x TASK1 ready++ ( TIME) 1 5 0x1665 0x8003 0x TASK2 mesg_send( 5) x19DD 0x0000 0x TASK3 wait x231F 0x0000 0x0000 <SLOT> is the slot number that was assigned to this task when the task was created using the CMX K_Task_Create function. This is actually the index number into the task structure array that is maintained by CMX. <NAME> is the name of the task that was selected using the CMX K_Task_Name function. The task's name may be more than 12 characters long, yet CMXBug will only use and display the first 12 of them. <State(time)> is the state of the task and possibly the remaining time, in SYSTEM TICKS, that the task will wait for the entity to occur. If the task called one of the CMX functions that allows a "time-out" period, and the function was called with a non-zero time-out value, then the remaining time will be shown. However, if the entity that the task was waiting on occurred, then no time value will be shown. If the time-out period expired before the entity the task was waiting on occurred, or either the CMX K_Task_Wake or CMX K_Task_Wake_Force function was used, then "TIME" will be displayed, indicating that the time-out period had elapsed. Make note that whenever the task calls the CMX K_Task_Wait function, mostly likely the "TIME" indicator will be shown. There are several possible states a task can be in, though a task can be in only one state at a time. They are as follows. The state "running" means that this task is the current RUNNING task. The CMXBug task will always be the "running" task when viewing this screen. The state "ready" signifies that the task has been created and triggered (started). This means the task is able to RUN when its priority is the highest priority of all tasks able to RUN. The state "ready++" indicates that this task is able to RESUME. This means that this task was running at one time and was preempted by a higher priority task, the entity that the task was waiting on has occurred or the time-out specified had expired. This task can be the RUNNING task when its priority is the highest priority among all tasks able to run. 5

6 The state "wait" denotes that the task called the CMX K_Task_Wait function, and is waiting for the time period to expire, or for the task to be woken up with either CMX K_Task_Wake or CMX K_Task_Wake_Force functions. The state "resource" means that the task is waiting for a resource which is currently owned by another task. The state "mesg_wait" indicates that the task is waiting for a message from a particular mailbox. The state "mesg_send" signifies that the task has sent a message to a mailbox and is waiting for another task to acknowledge receiving the message from the mailbox. The state "event" denotes that the task is waiting for one or more events to become set. The state "idle" means that the task has been created, but not triggered (started). This task can NEVER run until it is started by the CMX K_Task_Start function. A task may also be in the "idle" state if the task has finished its code (reached its end brace). A task that has ended may be restarted with additional calls to the CMX K_Task_Start function. The state "no create" indicates that the task has NOT been created or the task has been removed (killed), and therefore the task state does not exist. <Trig> is the number of triggers (starts) that the task has received so far. This value ranges from zero, indicating the task is in the IDLE state, up to 255. Each time a task finishes its code and calls the CMX K_Task_End function, identifying it has completed its code, the trigger value will be decremented by 1. If the new trigger value is zero the task will enter the idle state. If the new trigger value is greater than zero the task will be automatically placed into the ready state. <Pri> is the current priority of the task. The lower the number, the higher the priority. <TSK Addr> is the hexadecimal address where the task begins in ROM. <E-Flags> is the hexadecimal value of the task's events flag states. <E-Match> is the hexadecimal value of the task's events match states. 6

7 RESOURCES function RES # Owner Task(s) Waiting MAX. 3 shown 0 NONE NONE 1 TASK1 TASK2 2 TASK3 TASK4 TASK5 3 TASK6 NONE <RES #> is the RESOURCE number. This is actually the index number into the RESOURCE structure array maintained by CMX. <Owner> is the name of the task that currently "owns" this resource, or NONE if no task "owns" this resource. If you do not supply a task name this field will be blank. <Task(s) Waiting> is a list of tasks that are waiting to use this resource. The first three waiting tasks will be shown. CYCLIC TIMERS function TIMER # Started? Time left CYCLIC Time Mode task/pri EVENT 0 NO 0x0000 0x0000 Task number 0x YES 0x000A 0x000F Task number TASK2 0x YES 0x0003 0x0000 All tasks 2 0x0400 <TIMER #> is the CYCLIC TIMER number. This is actually the index number into the CYCLIC TIMER structure array maintained by CMX. <Started?> is the state of the cyclic timer, started or not started. <Time left> is the hexadecimal number of SYSTEM TICKS to go before the timer executes its associated parameters with the CMX K_Event_Signal function. <CYCLIC TIME> is the hexadecimal number that will be loaded into the CYCLIC Time parameter when the time left value reaches zero. A non-zero CYCLIC Time means that the cyclic timer will be a continuous duty timer. A value of zero for the CYCLIC Time indicates a "one shot" timer. <Mode> is the selected cyclic timer event setting mode. There are 7 different modes that a cyclic timer can perform. They are as follows. 7

8 The mode "task number", means that the specific task selected by the <task/pri> variable, will be the task to have its event flag(s) set, according to the <EVENT> parameter. The mode "Top Pri task", means that the highest priority task WITHOUT regard to the <task/pri> variable, will be the task to have its event flag(s) set, according to the <EVENT> parameter. The mode "Top pri task waiting", means that the highest priority task waiting on these event(s) WITHOUT regard to the <task/pri> variable, will be the task to have its event flag(s) set, according to the <EVENT> parameter. The mode "ALL tasks", means that all tasks will have their event flag(s) set, according to the <EVENT> parameter. The mode "All tasks waiting", means that all tasks waiting on these event(s) WITHOUT regard to their priority, will be the task(s) to have its event flag(s) set, according to the <EVENT> parameter. The mode "Same priority", means that all tasks with the same priority as the <task/pri> variable, will be the task(s) to have their event flag(s) set, according to the <EVENT> parameter. The mode "Same Pri waiting", means that all tasks waiting on these event(s) with the same priority as the <task/pri> variable, will be the task(s) to have their event flag(s) set, according to the <EVENT> parameter. <Task/pri.> depends upon the <mode> selected. Mode # Acts On Task slot # or priority 0 (zero) Specific task Task slot # 1 Highest priority task Not used 2 Highest priority task waiting on <EVENT> Not used 3 All tasks Not used 4 All tasks waiting on <EVENT> Not used 5 All tasks with same priority Priority 6 All tasks with same priority waiting on <EVENT> Priority <EVENT> is the event bit(s) to set for one or more tasks, depending upon the <mode> selected. 8

9 QUEUES function QUE # Status Max Slots Slots Used Slotsfree <QUEUE #> is the QUEUE number. This is actually the index number into the QUEUE structure array maintained by CMX. <Status> is the current status of the queue. There are 4 possible status messages. They are as follows. The status "EMPTY", means that the queue has NO slot that is currently being used, ALL slots are free. The status "FULL", means that ALL the queue slots are currently being used, NO slots are free. The status "PARTIAL", means that the queue has one or more slots currently being used. The status "NOT CREATED", means that the queue has not been created with the CMX K_Que_Create function. <Max Slots> is the total number of slots the queue has been created with. <Slots Used> is the number of slots currently being used. Slot size <Slots free> is the number of slots currently free to receive data. QUE.Addr 0 PARTIAL x EMPTY x15DD 2 FULL x18FD 3 NOT CREATED x0000 <Slot size> is the size of EACH slot within the queue. The size given is the number of BYTES (8 BITS). The size is fixed for all slots of a particular queue and is determined when the queue is created. <QUE. Addr> is the hexadecimal address where this queue resides in RAM. 9

10 MAILBOXES function MAILBOX # # of MESG TASK waiting TASK to Sig EVENT 0 0 NONE NONE TASK2 0x TASK1 0 0 <MAILBOX #> is the MAILBOX number. This is actually the index number into the MAILBOX structure array maintained by CMX. <# of MESG> is the number of messages that are currently available in this mailbox. <TASK waiting> is the task that is waiting for a message to arrive at this mailbox. <TASK to Sig> is the task that will have its event bit(s) set according to the <EVENT> parameter when messages are available at this mailbox. <EVENT> is the event bit(s) to set of the selected task according to the <TASK to Sig> parameter. RAM display function Etc A 0B 0C 0D 0E 0F 0000 FA 00 C F FF AA CC 00 AA DD 00 DD D0 F EE AA The RAM display puts the starting address on the left side of screen. It will be rounded down, if necessary, so the starting address low nibble will be zero. ALL bytes are displayed in hexadecimal format. The starting and ending address must be entered in either decimal or hexadecimal notation. The ending address MUST be equal to or greater than the starting address. 10

11 STACK INFO function SLOT NAME STACK Addr MAX. bytes used SO FAR 1 CMXBug 0x TASK1 0x TASK2 0x TASK3 0x <SLOT> is the slot number assigned to this task when the task was created using the CMX K_Task_Create function. This is actually the index number into the task structure array maintained by CMX. <NAME> is the name selected when the CMX K_Task_Name function was used to "NAME" the task. The task's name may be more than 12 characters long, yet CMXBug will only use and display the first 12 of them. <STACK Addr> is the address in RAM where this task s stack begins. The following is not implemented in this version. <MAX. bytes used SO FAR> is the maximum number of bytes used by the task to save return addresses of function calls, pass parameters, hold the task context, etc. WARNING: This may NOT show the true depth of the task s stack, for this is ONLY computed when the task has its context saved during the CMX SYSTEM TICK K_OS_Tick_Update function. This will present a fairly accurate insight to the task s stack usage requirements though. SYSTEM TICK SCALE function Current SYSTEM TICK SCALE = 2 Enter new SYSTEM TICK SCALE or <return> to leave as is This function allows the user to view and possibly modify the current value of the CMX "RTC_SCALE" variable. This variable was defined in the "cxconfig.h" file and is the number of times that the K_OS_Tick_Update function must be called by the interrupt that is generating the CMX timing, before producing what is called the CMX SYSTEM TICK, which all CMX task timers and cyclic timer timers are based on. At each SYSTEM TICK, CMX decides whether there are task timers and/or cyclic timers that need servicing, and if so, will service them. 11

12 TIME SLICE SCALE function Current TIME SLICE SCALE = 4 Enter new TIME SLICE SCALE or <return> to leave as is This allows the user to view and possibly modify the current value of the CMX "TSLICE_SCALE" variable. This variable was defined in the "cxconfig.h" file and is the number of times that the K_OS_Tick_Update function must be called by the interrupt that is generating the CMX timing, before producing what is called the TIME SLICE TICK, which all time slicing is based on. This value is meaningful only if TIME SLICING is enabled. TIME SLICING function Current TIME SLICING = Disabled Enter Y/y or N/n to enable/disable TIME SLICING or <return> to leave as is This allows the user to view and possibly modify the current state of the TIME SLICING variable. This allows the user to either disable or enable TIME SLICING. If disabled, then TIME SLICING is not active and the CMX RTOS will NOT do any TIME SLICING. If enabled, the TIME SLICING is active and the CMX RTOS will do TIME SLICING. GO and RESUME CMXBug function Enter the number of ticks to wait or <return> to leave This function allows CMXBug to release control of the CMX RTOS for the number of SYSTEM TICKS selected. When the number of SYSTEM TICKS specified has expired, CMXBug will automatically resume control of the CMX RTOS and freeze all other tasks. This is a very powerful feature, for it allows the user to "multiple step" the desired number of SYSTEM TICKS and see the CMX RTOS environment change, aiding in debugging and verifying the application. When this is performed CMXBug cannot be "woken" sooner by entering a key stroke. QUICK GO and RESUME CMXBug function This function allows CMXBug to release control of the CMX RTOS for one SYSTEM TICK. When the NEXT SYSTEM TICK has expired, CMXBug will resume control of the CMX RTOS and freeze all other tasks. 12

13 This is a very powerful feature, for it allows the user to "single step" one SYSTEM TICK at a time and see the CMX RTOS environment change, aiding in debugging and verifying the application. This function is the same as the GO and RESUME function above with a selected value of 1. TIME ANALYSIS This function displays the number of SYSTEM TICKS that each task was RUNNING, and the approximate percentage of the CPU processing time devoted to that task in relation to the total for all tasks. Also shown is the IDLE time, when the CPU was not processing a task. SLOT # NAME Number of Ticks % of TICKS 1 CMXBug < 1 % TASK1 20 % TASK2 35 % TASK3 3 % TASK4 < 1 %00.00 IDLE 31 %41.57 <SLOT> is the slot number assigned to this task when the task was created using the CMX K_Task_Create function. This is actually the index number into the task structure array maintained by CMX. <NAME> is the name selected when the CMX K_Task_Name function was used to "NAME" the task. The task's name may be more than 12 characters long, yet CMXBug will only use and display the first 12 of them. <Number of Ticks> is the number of SYSTEM TICKS that have occurred while that particular task was RUNNING (owned the CPU). A task that has RUN for less than a FULL SYSTEM TICK worth of time will show a value of "< 1". Note that the TOTAL number of times that the task was RUNNING, could be more than indicated, for the task's SYSTEM TICK count is only incremented when the task has control of the CPU and a SYSTEM TICK occurs. <% of TICKS> is the percentage of the task s total accumulated SYSTEM TICK count to the TOTAL number of SYSTEM TICKS that have occurred so far. The above function presents a relatively accurate "picture" of how the CPU processing time has been spent. Remember that the smaller the SYSTEM TICK time, the more accurate this picture becomes. It is possible that a task could have used a fair amount of the CPU processing time, yet never long enough for a SYSTEM TICK to have occurred. There is also a possibility that a task had executed for LESS than a SYSTEM 13

14 TICK, yet will show a total count of zero. This is a very unique situation and will not be explained here. When CMXBug is RUNNING TIME ANALYSIS counting is suspended. TIME ANALYSIS reset This function allows the reset of the TIME ANALYSIS array. This will set all tasks total accumulated counts to zero and also zeros out the count of the number of SYSTEM TICKS so far. TIME ANALYSIS will begin from this state when CMXBug releases control of the CMX RTOS, either by exiting CMXBug or by the GO and RESUME CMXBug functions. ADDITIONAL TASK functions *** ADDITIONAL TASK functions *** Enter 1 START TASK Enter 2 STOP TASK Enter 3 WAKE TASK Enter 9 EXIT Your choice? The ADDITIONAL TASK functions menu appears as above. The functions will be explained below. START TASK function TASK START, enter SLOT #, "TASK_name, <return> to exit. Choice? <TASK START> indicates you are going to trigger (start) a task using the CMX K_Task_Start function. <enter SLOT #> allows the entry of the slot number of a particular task to trigger. The task's name may be used instead of the slot number, as described below. If the slot number is out of range, an error message will be displayed. If the slot number is valid, the task will be triggered. <"TASK_name> allows the entry of the task's NAME. To select a "task name" the double quote key (") must be pressed as the first key, to inform CMXBug that a string of characters is being entered. A maximum number of 12 characters is allowed and names are case sensitive. When the return key is pressed CMXBug will search for that task name. If the "TASK_name" is not found, an error message will be displayed. If the "TASK_name" is found, and the task has been created and not removed, then the task will be triggered. <return to exit> will exit this function and move up to the previous menu (ADDITIONAL TASK functions menu). 14

15 STOP TASK function TASK STOP, enter SLOT #, "TASK_name, <return> to exit. Choice? <TASK STOP> indicates you are going to stop the task by using the CMX K_Task_Wait function with a time-out period of zero. The task will be SUSPENDED indefinitely, until woken by either the CMX K_Task_Wake or CMX K_Task_Wake_Force functions. If the task is already waiting on some entity, then the task will NOT be stopped. <enter SLOT #> allows the entry of the slot number of a particular task to stop. The task's name may be used instead of the slot number, as described below. If the slot number is out of range, an error message will be displayed. If the slot number is valid, the task will be stopped (SUSPENDED). <"TASK_name> allows the entry of the task's NAME. To select a "task name" the double quote key (") must be pressed as the first key, to inform CMXBug that a string of characters is being entered. A maximum number of 12 characters is allowed and names are case sensitive. When the return key is pressed CMXBug will search for that task name. If the "TASK_name" is not found, an error message will be displayed. If the "TASK_name" is found, the task has been created and not removed, and is not already waiting on an entity, then the task will be stopped (SUSPENDED). <return to exit> will exit this function and move up to the previous menu (ADDITIONAL TASK functions menu). WAKE TASK function TASK WAKE, enter SLOT #, "TASK_name, <return> to exit. Choice? <TASK WAKE> indicates you are going to use the CMX K_Task_Wake_Force function to forcefully wake a task that is currently waiting (SUSPENDED) for an entity to happen. If the task is not waiting, then this function will not be performed and an error message will be displayed. Also, if this function IS successful, and the task was waiting for a message, and the MAILBOXES are viewed again, it will still show the task is waiting. This will change as soon as CMXBug has released control to the CMX RTOS. <enter SLOT #> allows the entry of the slot number of a particular task to wake. The task's name may be used instead of the slot number, as described below. If the slot number is out of range, an error message will be displayed. If the slot number is valid and the task is waiting, the task will be woken (Ready++). <"TASK_name> allows the entry of the task's NAME. To select a "task name" the double quote key (") must be pressed as the first key, to inform CMXBug that a string of characters is being entered. A maximum number of 12 characters is allowed and names are case sensitive. When the return key is pressed CMXBug will search for that 15

16 task name. If the "TASK_name" is not found, an error message will be displayed. If the "TASK_name" is found, the task has been created and not removed, and is not waiting on an entity, the task will be woken (Ready++ state). <return to exit> will exit this function and move up to the previous menu (ADDITIONAL TASK functions menu). EXIT CMXBug function This function will allow the CMXBug task to PERMANENTLY release control of the CPU back to the CMX RTOS and the running application. The only way to reenter the CMXBug task is by pressing the "+" (plus) key. Enter P/p to toggle ECHO mode This function allows CMXBug task to enable or disable the ECHO mode. The default is to ECHO (send back) all valid characters received to the terminal or PC. If disabled, no received characters will ECHO back. If a valid key is pressed and two characters are displayed, then the CMXBug ECHO mode can be disabled or the terminal or PC prevented from echoing characters. Setting up CMXBug You may need to modify CMXBug to meet your specific needs. The "CMX_INIT.C" file contains 3 functions that may need to be modified and one "define" that might need to be changed. CMXBug uses a POLLED method of testing the selected serial port of the processor to see if a character is present. The CMXBug task defaults to waiting 10 SYSTEM TICKS, before waking up to see if the + (plus) key has been pressed. If not pressed, the CMXBug task goes to sleep for another 10 SYSTEM TICKS. This is repeated until the + (plus) key is detected. The "wait" time may be increased or decreased if desired. This is a variable within the K_OS_Init function called BUG_WAIT_TICKS. BUG_WAIT_TICKS = 10; The setup_bug function may have to be modified to select the desired serial port. This function sets up the serial port by configuring the BAUD rate, data bits, parity, etc. It also enables any register flags that must be cleared and/or set to get the serial port alive. If using CMXBugio.exe the target processor UART must be configured for 9600 Baud, 8 data bits, one stop bit and No parity (9600 N81). This serial port MUST be configured for a POLLING type of operation and NOT interrupt driven. The K_Bug_Getchr function uses the serial port configured by the setup_bug function to receive characters for the CMXBUG TASK. It may or may not clear/set any necessary receiver flags, depending upon the processor. You are free to change the 16

17 desired serial port, but you must ensure that the processor has this serial port and that any receiver flags that must be cleared or set, are done, according to the processor you are using. The K_Bug_Putchr function uses the serial port configured by the setup_bug function to transmit characters for the CMXBUG TASK. It may or may not clear/set any necessary transmitter flags, depending upon the processor. You are free to change the desired serial port, but you must ensure that the processor has this serial port and that any transmitter flags that must be cleared or set, are done, according to the processor you are using. Try not to use the SAME serial port that is used by a MONITOR program, YOUR program, etc. If so, you will most likely run into a conflict problem. You are free to change the CMXBug "C" code if you like, but CMX will not be responsible for your results if you do. Please do not call us about modifying the CMXBug code specifically to meet your particular needs. All suggestions are of course welcome. CMX will try to add your desired additions and our own enhancements over time, however we do NOT want this code to be either processor or compiler specific. 17

The CMXTracker Manual. The CMXTracker Manual

The CMXTracker Manual. The CMXTracker Manual The CMXTracker Manual The CMX CMXTracker TM Code Analyzer provides the ability to log chronologically in real-time, the tasks' execution flow, capturing when a task is executing, the CMX functions called

More information

Task Based Programming Revisited Real Time Operating Systems

Task Based Programming Revisited Real Time Operating Systems ECE3411 Fall 2016 Lecture 6a. Task Based Programming Revisited Real Time Operating Systems Marten van Dijk, Syed Kamran Haider Department of Electrical & Computer Engineering University of Connecticut

More information

Xinu on the Transputer

Xinu on the Transputer Purdue University Purdue e-pubs Department of Computer Science Technical Reports Department of Computer Science 1990 Xinu on the Transputer Douglas E. Comer Purdue University, comer@cs.purdue.edu Victor

More information

Templates what and why? Beware copying classes! Templates. A simple example:

Templates what and why? Beware copying classes! Templates. A simple example: Beware copying classes! Templates what and why? class A { private: int data1,data2[5]; float fdata; public: // methods etc. } A a1,a2; //some work initializes a1... a2=a1; //will copy all data of a2 into

More information

embos Real-Time Operating System embos plug-in for IAR C-Spy Debugger Document: UM01025 Software Version: 3.0 Revision: 0 Date: September 18, 2017

embos Real-Time Operating System embos plug-in for IAR C-Spy Debugger Document: UM01025 Software Version: 3.0 Revision: 0 Date: September 18, 2017 embos Real-Time Operating System embos plug-in for IAR C-Spy Debugger Document: UM01025 Software Version: 3.0 Revision: 0 Date: September 18, 2017 A product of SEGGER Microcontroller GmbH & Co. KG www.segger.com

More information

Lecture Topics. Announcements. Today: Uniprocessor Scheduling (Stallings, chapter ) Next: Advanced Scheduling (Stallings, chapter

Lecture Topics. Announcements. Today: Uniprocessor Scheduling (Stallings, chapter ) Next: Advanced Scheduling (Stallings, chapter Lecture Topics Today: Uniprocessor Scheduling (Stallings, chapter 9.1-9.3) Next: Advanced Scheduling (Stallings, chapter 10.1-10.4) 1 Announcements Self-Study Exercise #10 Project #8 (due 11/16) Project

More information

Introduction to the ThreadX Debugger Plugin for the IAR Embedded Workbench C-SPYDebugger

Introduction to the ThreadX Debugger Plugin for the IAR Embedded Workbench C-SPYDebugger C-SPY plugin Introduction to the ThreadX Debugger Plugin for the IAR Embedded Workbench C-SPYDebugger This document describes the IAR C-SPY Debugger plugin for the ThreadX RTOS. The ThreadX RTOS awareness

More information

embos Real-Time Operating System embos plug-in for IAR C-Spy Debugger Document: UM01025 Software Version: 3.1 Revision: 0 Date: May 3, 2018

embos Real-Time Operating System embos plug-in for IAR C-Spy Debugger Document: UM01025 Software Version: 3.1 Revision: 0 Date: May 3, 2018 embos Real-Time Operating System Document: UM01025 Software Version: 3.1 Revision: 0 Date: May 3, 2018 A product of SEGGER Microcontroller GmbH www.segger.com 2 Disclaimer Specifications written in this

More information

What s An OS? Cyclic Executive. Interrupts. Advantages Simple implementation Low overhead Very predictable

What s An OS? Cyclic Executive. Interrupts. Advantages Simple implementation Low overhead Very predictable What s An OS? Provides environment for executing programs Process abstraction for multitasking/concurrency scheduling Hardware abstraction layer (device drivers) File systems Communication Do we need an

More information

Tasks. Task Implementation and management

Tasks. Task Implementation and management Tasks Task Implementation and management Tasks Vocab Absolute time - real world time Relative time - time referenced to some event Interval - any slice of time characterized by start & end times Duration

More information

SMD149 - Operating Systems

SMD149 - Operating Systems SMD149 - Operating Systems Roland Parviainen November 3, 2005 1 / 45 Outline Overview 2 / 45 Process (tasks) are necessary for concurrency Instance of a program in execution Next invocation of the program

More information

RTOS Debugger for CMX

RTOS Debugger for CMX RTOS Debugger for CMX TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... RTOS Debuggers... RTOS Debugger for CMX... 1 Overview... 2 Brief Overview of Documents for New Users... 3

More information

Lecture 3: Concurrency & Tasking

Lecture 3: Concurrency & Tasking Lecture 3: Concurrency & Tasking 1 Real time systems interact asynchronously with external entities and must cope with multiple threads of control and react to events - the executing programs need to share

More information

Perle Dial-Out User s Guide

Perle Dial-Out User s Guide Perle Dial-Out User s Guide 95-2345-05 Copyrights Copyright 1996-2000, Perle Systems Limited and its suppliers. IBM is the registered trademark of International Business Machines Corporation. Microsoft,

More information

Interrupts Peter Rounce - room 6.18

Interrupts Peter Rounce - room 6.18 Interrupts Peter Rounce - room 6.18 P.Rounce@cs.ucl.ac.uk 20/11/2006 1001 Interrupts 1 INTERRUPTS An interrupt is a signal to the CPU from hardware external to the CPU that indicates than some event has

More information

embos Real-Time Operating System CPU & Compiler specifics for embos Visual Studio Simulation

embos Real-Time Operating System CPU & Compiler specifics for embos Visual Studio Simulation embos Real-Time Operating System CPU & Compiler specifics for Document: UM01060 Software Version: 5.02 Revision: 0 Date: July 25, 2018 A product of SEGGER Microcontroller GmbH www.segger.com 2 Disclaimer

More information

BASICS OF THE RENESAS SYNERGY TM

BASICS OF THE RENESAS SYNERGY TM BASICS OF THE RENESAS SYNERGY TM PLATFORM Richard Oed 2018.11 02 CHAPTER 9 INCLUDING A REAL-TIME OPERATING SYSTEM CONTENTS 9 INCLUDING A REAL-TIME OPERATING SYSTEM 03 9.1 Threads, Semaphores and Queues

More information

Architecture of 8085 microprocessor

Architecture of 8085 microprocessor Architecture of 8085 microprocessor 8085 consists of various units and each unit performs its own functions. The various units of a microprocessor are listed below Accumulator Arithmetic and logic Unit

More information

Small Computer Monitor User Guide

Small Computer Monitor User Guide Small Computer Monitor User Guide Monitor version 0.5 for the Z80 CPU Software and Documentation by Stephen C Cousins Edition 0.5.0 CONTENTS OVERVIEW...3 Conventions... 3 Serial port... 4 RC2014 systems...

More information

REAL-TIME MULTITASKING KERNEL FOR IBM-BASED MICROCOMPUTERS

REAL-TIME MULTITASKING KERNEL FOR IBM-BASED MICROCOMPUTERS Malaysian Journal of Computer Science, Vol. 9 No. 1, June 1996, pp. 12-17 REAL-TIME MULTITASKING KERNEL FOR IBM-BASED MICROCOMPUTERS Mohammed Samaka School of Computer Science Universiti Sains Malaysia

More information

BASICS OF THE RENESAS SYNERGY PLATFORM

BASICS OF THE RENESAS SYNERGY PLATFORM BASICS OF THE RENESAS SYNERGY PLATFORM TM Richard Oed 2017.12 02 CHAPTER 9 INCLUDING A REAL-TIME OPERATING SYSTEM CONTENTS 9 INCLUDING A REAL-TIME OPERATING SYSTEM 03 9.1 Threads, Semaphores and Queues

More information

Operating Systems Design Fall 2010 Exam 1 Review. Paul Krzyzanowski

Operating Systems Design Fall 2010 Exam 1 Review. Paul Krzyzanowski Operating Systems Design Fall 2010 Exam 1 Review Paul Krzyzanowski pxk@cs.rutgers.edu 1 Question 1 To a programmer, a system call looks just like a function call. Explain the difference in the underlying

More information

PROCESS STATES AND TRANSITIONS:

PROCESS STATES AND TRANSITIONS: The kernel contains a process table with an entry that describes the state of every active process in the system. The u area contains additional information that controls the operation of a process. The

More information

University of Massachusetts Amherst Computer Systems Lab 1 (ECE 354) LAB 1 Reference Manual

University of Massachusetts Amherst Computer Systems Lab 1 (ECE 354) LAB 1 Reference Manual University of Massachusetts Amherst Computer Systems Lab 1 (ECE 354) LAB 1 Reference Manual Lab 1: Using NIOS II processor for code execution on FPGA Objectives: 1. Understand the typical design flow in

More information

You can examine the contents of a single memory location by typing a single address followed by a Return.

You can examine the contents of a single memory location by typing a single address followed by a Return. 1 von 5 31.07.2012 14:49 The Woz Monitor When a computer is powered up it must know what it must do. It goes without saying that a piece of software must be executed. Since the computer has just been powered

More information

JMY504M User's Manual

JMY504M User's Manual JMY504M User's Manual (Revision 3.42) Jinmuyu Electronics Co. LTD 2011/6/28 Please read this manual carefully before using. If any problem, please mail to: Jinmuyu@vip.sina.com Contents 1 Product introduction...

More information

UniOP VT100 Terminal Emulation - Ver. 3.16

UniOP VT100 Terminal Emulation - Ver. 3.16 UniOP VT100 Terminal Emulation - Ver. 3.16 This tech note describes the operation of the VT100 emulation software on UniOP. This document is a short reference for VT100 Terminal Emulation software. It

More information

Micrium µc/os II RTOS Introduction EE J. E. Lumpp

Micrium µc/os II RTOS Introduction EE J. E. Lumpp Micrium µc/os II RTOS Introduction (by Jean Labrosse) EE599 001 Fall 2012 J. E. Lumpp μc/os II μc/os II is a highly portable, ROMable, very scalable, preemptive real time, deterministic, multitasking kernel

More information

INSTEON Hidden Door Sensor

INSTEON Hidden Door Sensor Developer Notes INSTEON Door Sensor Developer Notes INSTEON Hidden Door Sensor Version 005 October 18, 2013 Revision History Rev Date Comments 001 4/15/13 Initial Release 002 8/2/13 Updated s 003 9/6/13

More information

Operating Systems 2014 Assignment 2: Process Scheduling

Operating Systems 2014 Assignment 2: Process Scheduling Operating Systems 2014 Assignment 2: Process Scheduling Deadline: April 6, 2014, at 23:59. 1 Introduction Process scheduling is an important part of the operating system and has influence on the achieved

More information

Embedded Software TI2726 B. 7. Embedded software design. Koen Langendoen. Embedded Software Group

Embedded Software TI2726 B. 7. Embedded software design. Koen Langendoen. Embedded Software Group Embedded Software 7. Embedded software design TI2726 B Koen Langendoen Embedded Software Group Overview Timing services RTOS and ISRs Design of embedded systems General principles Timing Functionality

More information

REVIEW OF COMMONLY USED DATA STRUCTURES IN OS

REVIEW OF COMMONLY USED DATA STRUCTURES IN OS REVIEW OF COMMONLY USED DATA STRUCTURES IN OS NEEDS FOR EFFICIENT DATA STRUCTURE Storage complexity & Computation complexity matter Consider the problem of scheduling tasks according to their priority

More information

Design and Implementation Interrupt Mechanism

Design and Implementation Interrupt Mechanism Design and Implementation Interrupt Mechanism 1 Module Overview Study processor interruption; Design and implement of an interrupt mechanism which responds to interrupts from timer and UART; Program interrupt

More information

Hello, and welcome to this presentation of the STM32 Low Power Universal Asynchronous Receiver/Transmitter interface. It covers the main features of

Hello, and welcome to this presentation of the STM32 Low Power Universal Asynchronous Receiver/Transmitter interface. It covers the main features of Hello, and welcome to this presentation of the STM32 Low Power Universal Asynchronous Receiver/Transmitter interface. It covers the main features of this interface, which is widely used for serial communications.

More information

Lab 3 Process Scheduling Due date: 29-Nov-2018

Lab 3 Process Scheduling Due date: 29-Nov-2018 Introduction Lab 3 Process Scheduling Due date: 29-Nov-2018 Modern operating system employ scheduling algorithms that are based on the round-robin concept as described in class. The scheduling policy is

More information

FERGUSON BEAUREGARD. RTU-5000 Configurator User Manual

FERGUSON BEAUREGARD. RTU-5000 Configurator User Manual FERGUSON BEAUREGARD RTU-5000 Configurator User Manual FERGUSON BEAUREGARD RTU-5000 Configurator User Manual The Ferguson Beauregard RTU-5000 Configurator program and manuals are Copyright 1997-2004 by

More information

Module 3. Embedded Systems I/O. Version 2 EE IIT, Kharagpur 1

Module 3. Embedded Systems I/O. Version 2 EE IIT, Kharagpur 1 Module 3 Embedded Systems I/O Version 2 EE IIT, Kharagpur 1 Lesson 15 Interrupts Version 2 EE IIT, Kharagpur 2 Instructional Objectives After going through this lesson the student would learn Interrupts

More information

AVT J1939 / J1708 Controller. Interface Control Document and Related Technical Information

AVT J1939 / J1708 Controller. Interface Control Document and Related Technical Information ADVANCED VEHICLE TECHNOLOGIES, Inc. AVT - 822 J1939 / J1708 Controller Interface Control Document and Related Technical Information Hardware revision A3 Firmware Version 1.6 (01) 3 November 2014 1509 Manor

More information

REAL TIME OPERATING SYSTEMS: A COMPLETE OVERVIEW

REAL TIME OPERATING SYSTEMS: A COMPLETE OVERVIEW REAL TIME OPERATING SYSTEMS: A COMPLETE OVERVIEW Mrinal Parikshit Chandane Former Assistant Professor, Dept. of E&TC, KJSCE, (India) ABSTRACT Telecommunication applications such as telephony, navigation

More information

CSCI 4210 Operating Systems CSCI 6140 Computer Operating Systems Project 1 (document version 1.3) Process Simulation Framework

CSCI 4210 Operating Systems CSCI 6140 Computer Operating Systems Project 1 (document version 1.3) Process Simulation Framework CSCI 4210 Operating Systems CSCI 6140 Computer Operating Systems Project 1 (document version 1.3) Process Simulation Framework Overview This project is due by 11:59:59 PM on Thursday, October 20, 2016.

More information

NEW CEIBO DEBUGGER. Menus and Commands

NEW CEIBO DEBUGGER. Menus and Commands NEW CEIBO DEBUGGER Menus and Commands Ceibo Debugger Menus and Commands D.1. Introduction CEIBO DEBUGGER is the latest software available from Ceibo and can be used with most of Ceibo emulators. You will

More information

Interrupt/Timer/DMA 1

Interrupt/Timer/DMA 1 Interrupt/Timer/DMA 1 Exception An exception is any condition that needs to halt normal execution of the instructions Examples - Reset - HWI - SWI 2 Interrupt Hardware interrupt Software interrupt Trap

More information

Input/Output Systems

Input/Output Systems Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for this lecture have been largely based on those from an earlier edition of the course text Operating

More information

Interrupts Peter Rounce

Interrupts Peter Rounce Interrupts Peter Rounce P.Rounce@cs.ucl.ac.uk 22/11/2011 11-GC03 Interrupts 1 INTERRUPTS An interrupt is a signal to the CPU from hardware external to the CPU that indicates than some event has occured,

More information

In examining performance Interested in several things Exact times if computable Bounded times if exact not computable Can be measured

In examining performance Interested in several things Exact times if computable Bounded times if exact not computable Can be measured System Performance Analysis Introduction Performance Means many things to many people Important in any design Critical in real time systems 1 ns can mean the difference between system Doing job expected

More information

Embedding OS in AVR microcontrollers. Prof. Prabhat Ranjan DA-IICT, Gandhinagar

Embedding OS in AVR microcontrollers. Prof. Prabhat Ranjan DA-IICT, Gandhinagar Embedding OS in AVR microcontrollers Prof. Prabhat Ranjan (prabhat_ranjan@daiict.ac.in) DA-IICT, Gandhinagar Operating System Fundamentals The kernel is the core component within an operating system Operating

More information

Using the KD30 Debugger

Using the KD30 Debugger ELEC3730 Embedded Systems Tutorial 3 Using the KD30 Debugger 1 Introduction Overview The KD30 debugger is a powerful software tool that can greatly reduce the time it takes to develop complex programs

More information

Simulator. Chapter 4 Tutorial: The SDL

Simulator. Chapter 4 Tutorial: The SDL 4 Tutorial: The SDL Simulator The SDL Simulator is the tool that you use for testing the behavior of your SDL systems. In this tutorial, you will practice hands-on on the DemonGame system. To be properly

More information

Multi-channel TNC FIRMWARE (Version 1.0) Copyright 1985, Ronald E. Raikes (WA8DED)

Multi-channel TNC FIRMWARE (Version 1.0) Copyright 1985, Ronald E. Raikes (WA8DED) Multi-channel TNC FIRMWARE (Version 1.0) Copyright 1985, Ronald E. Raikes (WA8DED) This firmware supports the full AX.25 link-layer protocol, version 2.0 as described in the ARRL specification dated October

More information

Small Computer Monitor User Guide

Small Computer Monitor User Guide Small Computer Monitor User Guide Monitor version 0.3 for the Z80 CPU Software and Documentation by Stephen C Cousins Edition 0.3.0 CONTENTS OVERVIEW... 3 Conventions... 3 Serial Port... 4 RC2014 Systems...4

More information

Embedded Resource Manager (ERM)

Embedded Resource Manager (ERM) Embedded Resource Manager (ERM) The Embedded Resource Manager (ERM) feature allows you to monitor internal system resource utilization for specific resources such as the buffer, memory, and CPU ERM monitors

More information

ECE 372 Microcontroller Design Parallel IO Ports - Interrupts. ECE 372 Microcontroller Design Parallel IO Ports - Interrupts

ECE 372 Microcontroller Design Parallel IO Ports - Interrupts. ECE 372 Microcontroller Design Parallel IO Ports - Interrupts Interrupts An interrupt can be compared with a phone call interrupting your task which you will resume when the call is finished You can mask an interrupt just as you can decide not to answer any phone

More information

6/20/2018. Lecture 2: Platforms & RTOS. Outline. Lab Setup (20 min) Labs work. Lecture: Platform + RTOS

6/20/2018. Lecture 2: Platforms & RTOS. Outline. Lab Setup (20 min) Labs work. Lecture: Platform + RTOS Lecture 2: Platforms & RTOS 1 Outline Lab Setup (20 min) Labs work Workbench + vxworks Documentations (15 min) Project Management (25 min) Host Shell (25 min) Lecture: Platform + RTOS 2 1 3 Microcomputer

More information

Developer Notes for KeypadLinc Line

Developer Notes for KeypadLinc Line Developer Notes for KeypadLinc Line Version 003 April 16, 2013 Revision History Rev Date Comments 001 1/11/13 Initial Release 002 1/22/13 Update s 003 4/16/13 Updated s Table of Contents 1 SUPPORTED DEVICES...

More information

1.1 CPU I/O Burst Cycle

1.1 CPU I/O Burst Cycle PROCESS SCHEDULING ALGORITHMS As discussed earlier, in multiprogramming systems, there are many processes in the memory simultaneously. In these systems there may be one or more processors (CPUs) but the

More information

RTOS Debugger for OS-9

RTOS Debugger for OS-9 RTOS Debugger for OS-9 TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... RTOS Debuggers... RTOS Debugger for OS-9... 1 Overview... 3 Brief Overview of Documents for New Users...

More information

MVI46-MCM SLC Platform Modbus Interface Module USER MANUAL. February 5, 2004

MVI46-MCM SLC Platform Modbus Interface Module USER MANUAL. February 5, 2004 MVI46-MCM SLC Platform Modbus Interface Module USER MANUAL ProSoft Technology, Inc. 1675 Chester Avenue Fourth Floor Bakersfield, CA 93301 (661) 716-5100 (661) 716-5101 Fax prosoft@prosoft-technology.com

More information

Last Time. Think carefully about whether you use a heap Look carefully for stack overflow Especially when you have multiple threads

Last Time. Think carefully about whether you use a heap Look carefully for stack overflow Especially when you have multiple threads Last Time Cost of nearly full resources RAM is limited Think carefully about whether you use a heap Look carefully for stack overflow Especially when you have multiple threads Embedded C Extensions for

More information

OPERATING SYSTEM PROJECT: SOS

OPERATING SYSTEM PROJECT: SOS OPERATING SYSTEM PROJECT: SOS I. Description 1. This project simulates a noninteractive (batch) monolithic operating system. Your program, OS, is a set of functions invoked by SOS (Student Operating System),

More information

Programming Book for 6809 Microprocessor Kit

Programming Book for 6809 Microprocessor Kit Programming Book for 6809 Microprocessor Kit Wichit Sirichote, wichit.sirichote@gmail.com Image By Konstantin Lanzet - CPU collection Konstantin Lanzet, CC BY-SA 3.0, Rev1.2 March 2018 1 Contents Lab 1

More information

Multiprogramming. Evolution of OS. Today. Comp 104: Operating Systems Concepts 28/01/2013. Processes Management Scheduling & Resource Allocation

Multiprogramming. Evolution of OS. Today. Comp 104: Operating Systems Concepts 28/01/2013. Processes Management Scheduling & Resource Allocation Comp 104: Operating Systems Concepts Management Scheduling & Resource Allocation Today OS evolution Introduction to processes OS structure 1 2 Evolution of OS Largely driven by desire to do something useful

More information

Architectural Support for Operating Systems

Architectural Support for Operating Systems Architectural Support for Operating Systems (Chapter 2) CS 4410 Operating Systems [R. Agarwal, L. Alvisi, A. Bracy, M. George, E. Sirer, R. Van Renesse] Let s start at the very beginning 2 A Short History

More information

Process Scheduling Part 2

Process Scheduling Part 2 Operating Systems and Computer Networks Process Scheduling Part 2 pascal.klein@uni-due.de Alexander Maxeiner, M.Sc. Faculty of Engineering Agenda Process Management Time Sharing Synchronization of Processes

More information

Example: Enable sleep mode

Example: Enable sleep mode Example: Enable sleep mode In this example, you will learn how to extend the battery life of an XBee ZigBee module. The example uses all three modules included in the kit to demonstrate how a ZigBee network

More information

Real-time operating systems and scheduling

Real-time operating systems and scheduling Real-time operating systems and scheduling Problem 21 Consider a real-time operating system (OS) that has a built-in preemptive scheduler. Each task has a unique priority and the lower the priority id,

More information

Processes. Overview. Processes. Process Creation. Process Creation fork() Processes. CPU scheduling. Pål Halvorsen 21/9-2005

Processes. Overview. Processes. Process Creation. Process Creation fork() Processes. CPU scheduling. Pål Halvorsen 21/9-2005 INF060: Introduction to Operating Systems and Data Communication Operating Systems: Processes & CPU Pål Halvorsen /9-005 Overview Processes primitives for creation and termination states context switches

More information

Process Concepts. CSC400 - Operating Systems. 3. Process Concepts. J. Sumey

Process Concepts. CSC400 - Operating Systems. 3. Process Concepts. J. Sumey CSC400 - Operating Systems 3. Process Concepts J. Sumey Overview Concurrency Processes & Process States Process Accounting Interrupts & Interrupt Processing Interprocess Communication CSC400 - Process

More information

Implementing Scheduling Algorithms. Real-Time and Embedded Systems (M) Lecture 9

Implementing Scheduling Algorithms. Real-Time and Embedded Systems (M) Lecture 9 Implementing Scheduling Algorithms Real-Time and Embedded Systems (M) Lecture 9 Lecture Outline Implementing real time systems Key concepts and constraints System architectures: Cyclic executive Microkernel

More information

MPLAB SIM. MPLAB IDE Software Simulation Engine Microchip Technology Incorporated MPLAB SIM Software Simulation Engine

MPLAB SIM. MPLAB IDE Software Simulation Engine Microchip Technology Incorporated MPLAB SIM Software Simulation Engine MPLAB SIM MPLAB IDE Software Simulation Engine 2004 Microchip Technology Incorporated MPLAB SIM Software Simulation Engine Slide 1 Welcome to this web seminar on MPLAB SIM, the software simulator that

More information

DS2756EVKIT+ High Accuracy Battery Fuel Gauge With Programmable Suspend Mode Evaluation Kit

DS2756EVKIT+ High Accuracy Battery Fuel Gauge With Programmable Suspend Mode Evaluation Kit 19-4847; Rev 9/09 www.maxim-ic.com FEATURES Demonstrates the capabilities of the DS2756 High Accuracy Battery Fuel Gauge, including: Programmable Suspend Mode Temperature measurement Voltage measurement

More information

WiMOD LR Base Host Controller Interface

WiMOD LR Base Host Controller Interface WiMOD LR Base Host Controller Interface Specification Version 1.7 Document ID: 4100/40140/0062 IMST GmbH Carl-Friedrich-Gauß-Str. 2-4 47475 KAMP-LINTFORT GERMANY Introduction Document Information File

More information

Command Manual Network Protocol. Table of Contents

Command Manual Network Protocol. Table of Contents Table of Contents Table of Contents Chapter 1 IP Address Configuration Commands... 1-1 1.1 IP Address Configuration Commands... 1-1 1.1.1 display ip host... 1-1 1.1.2 display ip interface... 1-1 1.1.3

More information

AC OB S. Multi-threaded FW framework (OS) for embedded ARM systems Torsten Jaekel, June 2014

AC OB S. Multi-threaded FW framework (OS) for embedded ARM systems Torsten Jaekel, June 2014 AC OB S Multi-threaded FW framework (OS) for embedded ARM systems Torsten Jaekel, June 2014 ACOBS ACtive OBject (operating) System Simplified FW System for Multi-Threading on ARM embedded systems ACOBS

More information

Scheduling Algorithm and Analysis

Scheduling Algorithm and Analysis Scheduling Algorithm and Analysis Model and Cyclic Scheduling (Module 27) Yann-Hang Lee Arizona State University yhlee@asu.edu (480) 727-7507 Summer 2014 Task Scheduling Schedule: to determine which task

More information

Resource Management IB Computer Science. Content developed by Dartford Grammar School Computer Science Department

Resource Management IB Computer Science. Content developed by Dartford Grammar School Computer Science Department Resource Management IB Computer Science Content developed by Dartford Grammar School Computer Science Department HL Topics 1-7, D1-4 1: System design 2: Computer Organisation 3: Networks 4: Computational

More information

Scheduling - Overview

Scheduling - Overview Scheduling - Overview Quick review of textbook scheduling Linux 2.4 scheduler implementation overview Linux 2.4 scheduler code Modified Linux 2.4 scheduler Linux 2.6 scheduler comments Possible Goals of

More information

CONNECTING YOUR PC TO THE USB EVALUATION BOARD

CONNECTING YOUR PC TO THE USB EVALUATION BOARD OVERVIEW This application note discusses how to solve the problems you may encounter when you interface the Keil dscope debugger to the Intel USB Evaluation Board using RISM. Typically, these problems

More information

B Interface description 12.01/

B Interface description 12.01/ B 95.3530.2 Interface description 12.01/00340396 Contents 1 Introduction 1.1 Preface... 3 1.2 Typographical conventions... 4 1.2.1 Warning signs... 4 1.2.2 Note signs... 4 1.2.3 Presentation... 4 2 Protocol

More information

embos Real Time Operating System CPU & Compiler specifics for ARM core with ARM RealView Developer Suite 3.0 Document Rev. 1

embos Real Time Operating System CPU & Compiler specifics for ARM core with ARM RealView Developer Suite 3.0 Document Rev. 1 embos Real Time Operating System CPU & Compiler specifics for ARM core with ARM RealView Developer Suite 3.0 Document Rev. 1 A product of SEGGER Microcontroller GmbH & Co. KG www.segger.com 2/25 embos

More information

Micriµm, Inc. µc/os-view

Micriµm, Inc. µc/os-view Micriµm, Inc. Copyright 2002-2003, Micriµm, Inc. All Rights reserved V.0 User s Manual Rev. C www.micrium.com Table of Contents.00 Introduction....0 Revision History... 6.0.0 V.0... 6 2.00 Windows Application...

More information

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology exam Embedded Software TI2726-B January 28, 2019 13.30-15.00 This exam (6 pages) consists of 60 True/False

More information

PS Telematik-Projekt: Wireless Embedded Systems

PS Telematik-Projekt: Wireless Embedded Systems 19589 - PS Telematik-Projekt: Wireless Embedded Systems First Steps Bastian Blywis, Dr. Achim Liers Department of Mathematics and Computer Science Institute of Computer Science 08. October, 2008 Institute

More information

8051 Microcontroller

8051 Microcontroller 8051 Microcontroller 1 Salient Features (1). 8 bit microcontroller originally developed by Intel in 1980. (2). High-performance CMOS Technology. (3). Contains Total 40 pins. (4). Address bus is of 16 bit

More information

Interrupts and real time

Interrupts and real time Page 1 of 7 Interrupts and real time Problem 1. A computer system has three devices whose characteristics are summarized in the following table: Device Service Time Interrupt Frequency Allowable Latency

More information

Console Framework Module Guide

Console Framework Module Guide Application Note Renesas Synergy Platform R11AN0110EU0101 Rev.1.01 Introduction This module guide will enable you to effectively use a module in your own design. Upon completion of this guide, you will

More information

Precept 3: Preemptive Scheduler. COS 318: Fall 2018

Precept 3: Preemptive Scheduler. COS 318: Fall 2018 Precept 3: Preemptive Scheduler COS 318: Fall 2018 Project 3 Schedule Precept: Monday 10/15, 7:30pm (You are here) Design Review: Monday 10/22, 3-7pm Due: Sunday 11/04, 11:55pm Project 3 Overview Goal:

More information

MIDI CPU Firmware V User Manual

MIDI CPU Firmware V User Manual MIDI CPU Firmware V..2 MIDI CPU Firmware Version.2 User Manual Updated 23-5-3 Additional documentation available at: http://highlyliquid.com/support/ 23 Sonarcana LLC Page / 55 MIDI CPU Firmware V..2 Table

More information

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 21

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 21 CS24: INTRODUCTION TO COMPUTING SYSTEMS Spring 2018 Lecture 21 LAST TIME: UNIX PROCESS MODEL Began to explore the implementation of the UNIX process model The user API is very simple: fork() creates a

More information

Real-Time Programming

Real-Time Programming Real-Time Programming Week 7: Real-Time Operating Systems Instructors Tony Montiel & Ken Arnold rtp@hte.com 4/1/2003 Co Montiel 1 Objectives o Introduction to RTOS o Event Driven Systems o Synchronization

More information

Linux - Not real-time!

Linux - Not real-time! Linux - Not real-time! Date: 16.01.2015 Author(s): Michal Koziel www.bitvis.no 1 Abstract A system is said to be real-time if it can respond to external triggers and perform periodic tasks with deterministic

More information

Context Switch DAVID KALINSKY

Context Switch DAVID KALINSKY DAVID KALINSKY f e a t u r e Context Switch From the humble infinite loop to the priority-based preemptive RTOS and beyond, scheduling options are everywhere to be found. This article offers a survey and

More information

COSC243 Part 2: Operating Systems

COSC243 Part 2: Operating Systems COSC243 Part 2: Operating Systems Lecture 17: CPU Scheduling Zhiyi Huang Dept. of Computer Science, University of Otago Zhiyi Huang (Otago) COSC243 Lecture 17 1 / 30 Overview Last lecture: Cooperating

More information

CSCI 1800 Cybersecurity and International Relations. Computer Hardware & Software John E. Savage Brown University

CSCI 1800 Cybersecurity and International Relations. Computer Hardware & Software John E. Savage Brown University CSCI 1800 Cybersecurity and International Relations Computer Hardware & Software John E. Savage Brown University Overview Introduction computer design Central Processing Unit (CPU) Random Access Memory

More information

real-time kernel documentation

real-time kernel documentation version 1.1 real-time kernel documentation Introduction This document explains the inner workings of the Helium real-time kernel. It is not meant to be a user s guide. Instead, this document explains overall

More information

SECTION 5 RESETS AND INTERRUPTS

SECTION 5 RESETS AND INTERRUPTS SECTION RESETS AND INTERRUPTS Resets and interrupt operations load the program counter with a vector that points to a new location from which instructions are to be fetched. A reset immediately stops execution

More information

19: I/O Devices: Clocks, Power Management

19: I/O Devices: Clocks, Power Management 19: I/O Devices: Clocks, Power Management Mark Handley Clock Hardware: A Programmable Clock Pulses Counter, decremented on each pulse Crystal Oscillator On zero, generate interrupt and reload from holding

More information

Embit Binary Interface - IEEE Specific Documentation. embit s.r.l.

Embit Binary Interface - IEEE Specific Documentation. embit s.r.l. Embit Binary Interface - IEEE 802.15.4-Specific Documentation embit s.r.l. Document information Versions & Revisions Revision Date Author Comments 1.0 A. Sala First release 1.1 14/12/2012 C. Biagi Minor

More information

LORD MANUAL. Wireless Sensor Networks LXRS Data Communications Protocol

LORD MANUAL. Wireless Sensor Networks LXRS Data Communications Protocol LORD MANUAL Wireless Sensor Networks LXRS Data Communications Protocol 1 2013 LORD Corporation MicroStrain Sensing Systems 459 Hurricane Lane Suite 102 Williston, VT 05495 United States of America Phone:

More information

kcserial User Guide version 2006.FEB.20

kcserial User Guide version 2006.FEB.20 TABLE OF CONTENTS 1 Preface...4 1.1 Purpose...4 1.2 Definitions and Acronyms...4 1.3 Feedback...5 2 Overview...6 2.1 Modes of Operation...6 2.2 System Configuration...6 2.2.1 Hardware...6 2.2.2 Software...7

More information

WiMOD LR Base Host Controller Interface

WiMOD LR Base Host Controller Interface WiMOD LR Base Host Controller Interface Specification Version 1.10 Document ID: 4100/40140/0062 IMST GmbH Carl-Friedrich-Gauß-Str. 2-4 47475 KAMP-LINTFORT GERMANY Introduction Document Information File

More information