The CMXTracker Manual. The CMXTracker Manual

Size: px
Start display at page:

Download "The CMXTracker Manual. The CMXTracker Manual"

Transcription

1 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 and their parameters, interrupts using CMX functions, and the CMX system TICK, within the CMX-RTX TM real-time multitasking operating system environment, while application code is running. Displaying the log is performed by CMXTracker, which 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 required to use CMXTracker. When the CMXTracker task is enabled, it will send a menu to the screen. One of several prompts may be selected, allowing the user to view the chronologically ordered log, reset the log, resume running the application or "autowake" CMXTracker after a certain number of log entries or system TICKS. When the CMXTracker task is running, it prohibits other tasks from running, stops the task timers and cyclic timers, and disables interrupts from calling CMX functions, so the application is "frozen" within the CMX RTOS environment. CMXTracker allows viewing the log at the beginning or end and paging up or down. The exact execution of the tasks, the CMX functions called with their parameters and results returned (such as the message sent or received, event bits set, timed out, etc.), and interrupts are displayed with the CMX system TICK being a "timeline" stamp. CMXTracker has the capability to "single step" one system TICK allowing normal activity to occur for one system TICK, with CMXTracker resuming after this "single step". Also the number of system TICKS that CMXTracker will wait, allowing normal activity before it resumes, can be selected. This is a very powerful and helpful feature. 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 SETTING UP CMXTRACKER 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. WARNING: Please read the section at the end of this manual, the "CMXTracker Processor Specific Section". This will provide any additional processor and "C" vendor specifics, with regards to using CMXTracker. SETTING UP CMXTRACKER WARNING: CMXTracker will NOT work in conjunction with the CMXBug. CMXBug and CMXTracker cannot be used at the same time in the same application. CMX provides the ability to have CMXTracker code included or not included within the CMX functions. If the CMXTracker code is included the code size of most CMX functions will be increased and execution times will be slightly longer for each function that has the ability to be recorded into the CMXTracker log. To have the CMXTracker code included within the CMX functions, the "C" vendor's compiler switch that is equivalent to a #DEFINE CMXTRACKER MUST be used. In most cases the switch is a -D so the command line for the compiler would look something like the following: Compiler_EXE_Name -DCMXTRACKER file.c. Because CMX supplies a make file for the CMX libraries, all that is necessary to recreate the library file(s) is to edit the make files (*.mak) adding the proper compiler switch to include this global define. CMX recommends that two sets of libraries be made, one set with the CMXTracker code included, and one set without CMXTracker code. Even though CMXTracker code is present, the CMXTracker code does NOT get executed unless CMXTracker has been enabled to run. Below is a simple function that may clarify this: cmx_function() {... /* function's normal code */ #ifdef CMXTRACKER/* If CMXTracker code should be present */ #endif if (CMXTRACKER_ON) /* Has the user enabled CMXTracker to record entries of CMX functions? If so, then record it */ { cmxtracker_in(this_function);/* record this entry. */ } 2

3 SETTING UP CMXTRACKER }... /* back to function's normal code */ Within the CMX header file "cxconfig.h" there are some defines that deal with CMXTracker, CMXTRACKER_ENABLE and CMXTRACKER_SIZE. CMXTRACKER_ENABLE is for enabling or disabling CMXTracker in the CMX module CMX_INIT.C. The CMX_INIT.C module is used by CMX to allocate the required memory and variables according to the configuration file. This define should be set to ONE (1) to enable CMXTracker, or set to ZERO (0) to disable CMXTracker. The #define CMXTRACKER_SIZE specifies the amount of RAM that will be allocated to the CMXTracker log. This size should be large enough to record a decent amount of entries. CMX compresses the entries in the log as much as possible. In most cases, entries into the log take 3 to 8 bytes. CMX recommends CMXTRACKER_SIZE be set to at least 1K (1024 bytes). If possible, CMX recommends 4K or more for a log size. CMXTracker may need to be modified to meet your specific needs. The "CMX_INIT.C" file contains 3 functions that may need to be modified and one global variable that might need to be changed. CMXTracker uses a POLLED method of testing the selected serial port of the processor to see if a character is present. The CMXTracker task defaults to waiting 10 SYSTEM TICKS, before waking up to see if the + (plus) key has been pressed. If not pressed, the CMXTracker 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 CMXTracker task. It may or may not clear/set any necessary receiver 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 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 CMXTracker task. It may or may not clear/set any necessary transmitter flags, depending upon the processor. You are free to change the 3

4 SETTING UP CMXTRACKER 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. The CMX assembly file(s) also have a switch that determines whether or not to include the CMXTracker code. The switch is called CMXTRACKER_ENABLE and should be set to 1 (one) if the CMX assembly module is to be assembled with the ability to interface with the CMXTracker code. If CMXTRACKER_ENABLE is set to 0 (zero), then the assembly module will be assembled without the CMXTracker code. If this switch is off and other CMXTracker modules are linked in, then the logging of a task switch will NOT be performed. CMX could have coded the assembly modules to detect whether the CMXTracker code was enabled, but this would have required additional code and increased context switch times. Because of this, we have implemented a switch, which must be enabled/disabled by the user. The default setting is disabled. CMX provides the capability of a "user entry" into the cmxtracker log. This allows the user to place a character wide number (0-255) into the log. The CMX function is called cmxtracker_user. The prototype of this function is as follows. void cmxtracker_user(unsigned char user_num); If this function is used, CMX recommends that each time this function is called to increase the user_num variable by 1. This allows up to 256 consecutive numbers for each task. Because CMX automatically identifies which task called this function, each task is capable of calling 256 cmxtracker_user functions with a different user number. CMX provides a function to declare how many entries or SYSTEM ticks must occur, before "freezing" the CMXTracker log, allowing no more entries. The ability to have CMXTracker task automatically wake up ("autowake") after the desired number of entries or SYSTEM TICKS occur is also provided. The CMX function used is as follows: void cmxtracker_mode(unsigned char MODE, unsigned short COUNT); The COUNT parameter is the number of entries specified by the MODE parameter which must occur before the tracking log stops recording the flow of task execution, CMX functions called, etc. The MODE parameter specifies how CMXtracker should perform. The bits of this byte are explained below. Bit 0 = not used Bit 1 = not used Bit 2 = The COUNT is decremented on the SYSTEM TICK. 4

5 Bit 3 = The COUNT is decremented each time a entry is recorded. Bit 4 = not used Bit 5 = not used Bit 6 = not used Bit 7 = Autowake the CMXTracker task, when count gets to zero. If the declared size of RAM for logging is smaller than the size needed to record based on the COUNT parameter, then the COUNT parameter is disregarded. There are two ways to start LOGGING. The first way is by setting the CMXTRACKER_ON variable to 1 (one). The second way is to have the CMXTracker task woken up (by pressing the plus '+' key) and then having the CMXTracker task do a QUICK GO and RESUME, GO and RESUME or EXIT CMXTracker function. You can disable the recording of entries by setting the CMXTRACKER_ON variable to a zero (0). How ever if you do this and then use the '+' key to wake up the CMXTracker task and do one of the following: QUICK GO and RESUME, GO and RESUME or EXIT CMXTracker functions, the CMXTRACKER_ON variable will forcibly be set to a 1 (one), thus enabling recording of entries. The CMXTracker is a task that must be included into the application code. This code is found in file "cmxtrack.c". The CMX libraries (CMX functions) must be built with the #define CMXTRACKER, so the CMXTracker code resides within the CMX functions. Also the CMX RTOS must be used in the application, with the switches described above correctly set, to allow CMXTracker to work properly. To enter the CMXTracker task press the + (plus) key from the console input device. If the "autowake" feature of the CMXTracker is used, the + (plus) key does not have to be pressed, for the CMXTracker task will automatically be triggered. Once this is done the CMXTracker task will take control of the CMX RTOS system. CMXTracker then presents a menu that looks as follows. Select the desired function: Enter 1 to DISPLAY LOG Enter 2 RESET LOG Enter 3 GO and RESUME CMXTracker Enter 4 QUICK GO and RESUME CMXTracker Enter 99 EXIT CMXTracker 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. 5

6 Because CMXTracker 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 CMXTracker task down to a minimum, the data entered is not parsed until the <Return/Enter> key has been pressed. The following "keys" are used quite frequently. <Pg Dn> is used to go one page down in the log, with each "page" set to 18 entries. Note that it may not be possible to show a complete page if at or near the end of the log. <Pg Up> is used to go one page up in the log, with each "page" set to 18 entries. <Home> is used to go to the top of the log, displaying the FIRST page. <End> is used to go to the bottom of the log, displaying the LAST page. Note the LAST page may not be a complete page. The "<return> to exit" is used to go back to the previous menu. The <return> key must be pressed as the first key to exit the current function. At ANY TIME, the + (plus) key may be pressed to return to the main menu. The following will show you the different CMX functions and the associated "picture" that is seen when the selected function is displayed. Please make a note that there may be slight differences, depending upon minor enhancements to the CMXTracker code. First to be displayed is what CMX function was called by user code, a task or by an interrupt. We will then show you at least one of the following: INFORMATIONAL results, SUCCESSFUL results, or UNSUCCESSFUL results. Some functions have a "time parameter" that is displayed, or "Timed Out" if the time period expired before the possible other entity occured. It is possible that more than one error code can result from a CMX function. We will list all INFORMATIONAL, SUCCESSFUL and UNSUCCESSFUL displays for each function. We do not always break the function down into the smallest unsuccessful result codes, for this would require much more code space and increase the time to get through the function. Note that INFORMATIONAL is displayed as INFO, SUCCESSFUL is displayed as GOOD and UNSUCCESSFUL is displayed as ERROR. If the task was named using the CMX K_Task_Name function, up to 12 characters of the name will be displayed. If the task was not named, then Slot #?? will be displayed. We have listed "TASK NAME" as indicating the task's name or slot number. Also question marks (?) indicate values that will be filled in by CMXTracker. CMX recommends that while working with CMXTracker, that the tasks be named with the K_Task_Name function. Note that when you are calling functions prior to entering the CMX RTOS with the K_OS_Start function, NO task will be shown, for there is no current running task. 6

7 Below are 3 examples, the first was for a function called prior to the K_OS_Start function, the second if a task did NOT have a name attached to it and the third if a task DID have a name attached to it. USER CODE... Slot #??... TASK NAME... WARNING: If the CMXTracker task does NOT understand a particular entry in the CMXTracker log, then the following message will appear. If this message appears, then ALL subsequent entries should be considered INVALID. The user is encouraged to call CMX because this message should NEVER appear. ERROR: "Not valid command" The following "keywords" will be displayed in capital letters when a task uses them. >>> CMX Tick <<<: This indicates that the CMX "system tick" has occurred. This is used as a time line for the occurrence of system calls by tasks and interrupts. EXECUTING: This denotes that the shown task is now the executing task. When the scheduler is entered, you will not get another EXECUTING when leaving the scheduler, unless another task becomes the "new" running task. INFO: "TASK NAME EXECUTING" --CYCLIC?? K_Event_Signal: This signifies that the cyclic timer setup and started, was automatically executed, when its programmed time expired. The "??" will be filled in with the actual cyclic timer number.also identified is whether it was successful in calling the K_Event_Signal function. If it was successful, then it will list the "mode" value that was executed. Note that "mode" is set when a cyclic timer is created. The task name/slot number or priority will be shown according to the selected mode value. INFO: "--CYCLIC?? K_Event_Signal,..." ++INTERRUPT : This means that an interrupt called this function, not a task. It does NOT identify which interrupt called it, only that the function was executed out of the interrupt pipe function queue. INFO: "++INTERRUPT..." The following are assumed to follow the user code, task or interrupt that called them. K_Task_Create: Indicates that the CMX K_Task_Create function was called. GOOD: "K_Task_Create, Successful" ERROR: "K_Task_Create, ERROR" K_Task_Start: Indicates that the CMX K_Task_Start function was called. 7

8 GOOD: "K_Task_Start, Successful, TASK NAME" ERROR: "K_Task_Start, ERROR-> TASK NAME" K_Task_Priority: Indicates that the CMX K_Task_Priority function was called. GOOD: "K_Task_Priority, Successful, TASK NAME, NEW PRI. is??" ERROR: "K_Task_Priority, ERROR-> TASK NAME" K_Task_Remove: Indicates that the CMX K_Task_Remove function was called. GOOD: "K_Task_Remove, Successful, TASK NAME" ERROR: "K_Task_Remove, ERROR-> TASK NAME" ERROR: "K_Task_Remove, ERROR-> BUSY, TASK NAME" K_Task_Wake: Indicates that the either the CMX K_Task_Wake or K_Task_Wakef function was called. GOOD: "K_Task_Wake, Successful, TASK NAME" ERROR: "K_Task_Wake, ERROR-> TASK NAME" ERROR: "K_Task_Wake, ERROR-> not waiting, TASK NAME" K_Task_Wait: Indicates that the CMX K_Task_Wait function was called. ALWAYS displayed when called: "K_Task_Wait TIME PERIOD =?????" One of the other two messages are displayed, if either the time period expired or the K_Task_Wake/K_Task_Wake_force function was used. INFO: "K_Task_Wait TIME PERIOD =?????" INFO: "K_Task_Wait, Timed Out" INFO: "K_Task_Wait, woken by K_Task_Wake" K_Task_End: Indicates that the CMX K_Task_End function was called. INFO: "K_Task_End" K_Mesg_Get: Indicates that the CMX K_Mesg_Get function was called. If successful, then the text "MBOX #??" and mailbox number will be shown. Also the first 12 characters of the message that has been RECEIVED will be shown, followed by 3 dots if the message length exceeds 12 characters (e.g. Mesg. recv = message Stri... ). GOOD: K_Mesg_Get, Successful, MBOX #??, Mesg. recv = MESSAGE" ERROR: "K_Mesg_Get, ERROR-> range, MBOX #??" ERROR: "K_Mesg_Get, ERROR-> MBOX owned, MBOX #??" ERROR: "K_Mesg_Get, ERROR-> no messages, MBOX #??" K_Mesg_Wait: Indicates that the CMX K_Mesg_Wait function was called. If successful, then the text "MBOX #??" and mailbox number will be shown. Also the first 12 characters of the message that has been RECEIVED will be shown, followed by 3 dots if the message length exceeds 12 characters (e.g. Mesg. recv = message Stri... ). INFO: "K_Mesg_Wait, MBOX #??" GOOD: "K_Mesg_Wait, Successful, MBOX #?? Mesg. recv = MESSAGE" ERROR: "K_Mesg_Wait, ERROR-> range, MBOX #??" ERROR: "K_Mesg_Wait, ERROR-> MBOX owned, MBOX #??" 8

9 ERROR: "K_Mesg_Wait, ERROR-> Timed Out, no messages, MBOX #?? " K_Mesg_Send: Indicates that the CMX K_Mesg_Send function was called. If successful, then the text "MBOX #??" and mailbox number will be shown. Also the first 12 characters of the message being SENT will be shown, followed by 3 dots if the message length exceeds 12 characters (e.g. Mesg. sent = message Stri...). GOOD: "K_Mesg_Send, Successful, MBOX #?? Mesg. sent = MESSAGE" ERROR: "K_Mesg_Send, ERROR-> Range/NO MSG slots, MBOX #??" K_Mesg_Send_Wait: Indicates that the CMX K_Mesg_Send_Wait function was called. If successful, then the text "MBOX #??" and mailbox number will be shown. Also the first 12 characters of the message being SENT will be shown, followed by 3 dots if the message length exceeds 12 characters (e.g. Mesg. sent = message Stri...). INFO: "K_Mesg_Send_Wait, MBOX #??" GOOD: "K_Mesg_Send_Wait, Successful, MBOX #?? Mesg. sent = MESSAGE" GOOD: "K_Mesg_Send_Wait, Successful, ACKED by receiving task, MBOX #??" ERROR: "K_Mesg_Send_Wait, ERROR-> Range/NO MSG slots, MBOX #??" ERROR: "K_Mesg_Send_Wait, ERROR-> Timed Out WAITING for ACK, MBOX #??" K_Mesg_Ack_Sender: Indicates that the CMX K_Mesg_Ack_Sender function was called. If successful, then the task name/slot number will be shown. GOOD: "K_Mesg_Ack_Sender, Successful, TASK NAME" K_Mbox_Event_Set: Indicates that the CMX K_Mbox_Event_Set function was called. If successful, then the text "MBOX #??" and mailbox number will be shown. ERROR: "K_Mbox_Event_Set, ERROR-> range, MBOX #??" GOOD: "K_Mbox_Event_Set, Successful, MBOX #?? " K_Event_Signal: Indicates that the CMX K_Event_Signal function was called. If it was successful, then it will list the "mode" value that was executed. The task name/slot number or priority will be shown according to the selected mode value. Also the event bit(s) to be set are displayed in HEX: 0x????. Note that there are 16 event bits and any combination of these 16 bits, may be enabled (set to a one). The mode value displayed ranges from 0 to 6. Below is the output for the different modes. GOOD: "K_Event_Signal, Successful, Mode 0, TASK NAME" GOOD: "K_Event_Signal, Successful, Mode 1, TASK NAME" GOOD: "K_Event_Signal, Successful, Mode 2, TASK NAME" GOOD: "K_Event_Signal, Successful, Mode 3, ALL Tasks" GOOD: "K_Event_Signal, Successful, Mode 4, ALL Tasks Waiting" GOOD: "K_Event_Signal, Successful, Mode 5, ALL Tasks same PRI." GOOD: "K_Event_Signal, Successful, Mode 6, ALL Tasks same PRI. Waiting" ERROR: "K_Event_Signal, ERROR-> mode #??" ERROR: "K_Event_Signal, ERROR-> TASK NAME" 9

10 K_Event_Wait: Indicates that the CMX K_Event_Wait function was called. When a task calls this function the time period that it is willing to wait for at least one of the event bits to be set will be displayed. If the time specified expires "Timed out" will be shown. On a match of event bit(s) the text "Event bits match = 0x????" will be displayed, with the? mark filled in by the hex value of the bit(s) which were set that this task was waiting on. INFO: "K_Event_Wait puttime(); INFO: "K_Event_Wait, Timed Out" GOOD: "K_Event_Wait, Successful, Event bits match = 0x????" K_Event_Reset: Indicates that the CMX K_Event_Reset function was called. If successful, the task name/slot number will be shown and the event bit(s) that were reset will be displayed in hex format: 0x????. Note that there are 16 event bits and any combination of these 16 bits may be enabled (set to a one), signifying that these are the bits to reset. GOOD: "K_Event_Reset, Successful, TASK NAME Event bits reset = 0x????" ERROR: "K_Event_Reset, ERROR-> TASK NAME" K_Mem_FB_Create: Indicates that the CMX K_Mem_FB_Create function was called. If successful, the address of the memory block BASE will be displayed in hex format: 0x????. GOOD: "K_Mem_FB_Create, Successful, Memory Block BASE address 0x????" K_Mem_FB_Get: Indicates that the CMX K_Mem_FB_Get function was called. If successful, the address of the memory block will be displayed in hex format: 0x????. GOOD: "K_Mem_FB_Get, Successful, Memory address is 0x????" ERROR: "K_Mem_FB_Get, ERROR-> none free, Memory Block base address 0x????" K_Mem_FB_Release: Indicates that the CMX K_Mem_FB_Release function was called. If successful, the address of the released memory block will be displayed in hex format: 0x????. GOOD: "K_Mem_FB_Release, Successful, Memory address returned 0x????" K_Timer_Create: Indicates that the CMX K_Timer_Create function was called. If successful, the cyclic timer number will be displayed. ERROR: "K_Timer_Create, ERROR-> Range: cyclic timer #??" GOOD: "K_Timer_Create, Successful, cyclic timer #??" K_Timer_Start: Indicates that the CMX K_Timer_Start function was called. If successful, the cyclic timer number will be displayed. GOOD: "K_Timer_Start, Successful, cyclic timer #??" ERROR: "K_I_Cyclic_Common, ERROR-> Range: cyclic timer #??" K_Timer_Restart: Indicates that the CMX K_Timer_Restart function was called. If successful, the cyclic timer number will be displayed. GOOD: "K_Timer_Restart, Successful, cyclic timer #??" 10

11 ERROR: "K_I_Cyclic_Common, ERROR-> Range: cyclic timer #??" K_Timer_Cyclic: Indicates that the CMX K_Timer_Cyclic function was called. If successful, the cyclic timer number will be displayed. GOOD: "K_Timer_Cyclic, Successful, cyclic timer #??" ERROR: "K_I_Cyclic_Common, ERROR-> Range: cyclic timer #??" K_Timer_Initial: Indicates that the CMX K_Timer_Initial function was called. If successful, the cyclic timer number will be displayed. GOOD: "K_Timer_Initial, Successful, cyclic timer #??" ERROR: "K_I_Cyclic_Common, ERROR-> Range: cyclic timer #??" K_Timer_Stop: Indicates that the CMX K_Timer_Stop function was called. If successful, the cyclic timer number will be displayed. GOOD: "K_Timer_Stop, Successful, cyclic timer #??" ERROR: "K_Timer_Stop, ERROR-> Range: cyclic timer #??" K_Que_Create: Indicates that the CMX K_Que_Create function was called. If successful, the queue number will be displayed. ERROR: "K_Que_Create, ERROR-> queue #??" GOOD: "K_Que_Create, Successful, queue #??" K_Que_Add_Top: Indicates that the CMX K_Que_Add_Top function was called. If successful, the queue number will be displayed. GOOD: "K_I_Que_Add_Common, Successful, queue #??" ERROR: "K_I_Que_Add_Common, ERROR-> Range: queue #??" ERROR: "K_I_Que_Add_Common, ERROR-> Full: queue #??" K_Que_Add_Bottom: Indicates that the CMX K_Que_Add_Bottom function was called. If successful, the queue number will be displayed. GOOD: "K_I_Que_Add_Common, Successful, queue #??" ERROR: "K_I_Que_Add_Common, ERROR-> Range: queue #??" ERROR: "K_I_Que_Add_Common, ERROR-> Full: queue #??" K_Que_Get_Top: Indicates that the CMX K_Que_Get_Top function was called. If successful, the queue number will be displayed. GOOD: "K_I_Que_Get_Common, Successful, queue #??" ERROR: "K_I_Que_Get_Common, ERROR-> Range: queue #??" ERROR: "K_I_Que_Get_Common, ERROR-> Empty: queue #??" K_Que_Get_Bottom: Indicates that the CMX K_Que_Get_Bottom function was called. If successful, the queue number will be displayed. GOOD: "K_I_Que_Get_Common, Successful, queue #??" ERROR: "K_I_Que_Get_Common, ERROR-> Range: queue #??" ERROR: "K_I_Que_Get_Common, ERROR-> Empty: queue #??" 11

12 K_Que_Reset: Indicates that the CMX K_Que_Reset function was called. If successful, the queue number will be displayed. GOOD: "K_Que_Reset, Successful, queue #??" ERROR: "K_Que_Reset, ERROR-> queue #??" K_Resource_Get: Indicates that the CMX K_Resource_Get function was called. If successful, the resource number will be displayed. GOOD: "K_Resource_Get, Successful, resource # " ERROR: "K_Resource_Get, ERROR-> resource #??" ERROR: "K_Resource_Get, ERROR-> already owned, resource #??" K_Resource_Wait: Indicates that the CMX K_Resource_Wait function was called. If the time period specified by this function to wait for a resource expires, "Timed out" will be shown. If time has not expired, the resource number and the time period requested by the task will be displayed. INFO: "K_Resource_Wait, resource #?? TIME PERIOD =??; INFO: "K_Resource_Wait, Timed Out" GOOD: "K_Resource_Wait, Successful, resource #??" ERROR: "K_Resource_Wait, ERROR-> resource #??" K_Resource_Release: Indicates that the CMX K_Resource_Release function was called. The resource number will be displayed. GOOD: "K_Resource_Release, Successful, resource #??" ERROR: "K_Resource_Release, ERROR-> resource #??" ERROR: "K_Resource_Release, ERROR-> not owned, resource #??" K_OS_Slice_On: Indicates that the CMX K_OS_Slice_On function was called. INFO: "K_OS_Slice_On " K_OS_Slice_Off: Indicates that the CMX K_OS_Slice_Off function was called. INFO: "K_OS_Slice_Off " K_Task_Lock: Indicates that the CMX K_Task_Lock function was called. INFO: "K_Task_Lock, Successful" K_Task_Unlock: Indicates that the CMX K_Task_Unlock function was called. INFO: "K_Task_Unlock, Successful" K_Task_Coop_Sched: Indicates that the CMX K_Task_Coop_Sched function was called. INFO: "K_Task_Coop_Sched" USER ENTRY: Indicates that the CMXTracker cmxtracker_user function was called. INFO: "USER ENTRY, entry #??" GO and RESUME CMXTracker function Enter the number of ticks to wait or <return> to leave 12

13 This function allows CMXTracker to release control of the CMX RTOS for the number of SYSTEM TICKS selected. When the number of SYSTEM TICKS specified has expired, CMXTracker 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. Note when this is performed CMXTracker cannot be "woken" sooner by entering a key stroke. QUICK GO and RESUME CMXTracker function This function allows CMXTracker to release control of the CMX RTOS for one SYSTEM TICK. When the NEXT SYSTEM TICK has expired, CMXTracker will resume control of the CMX RTOS and freeze all other tasks. 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. EXIT CMXTracker function This function will allow the CMXTracker task to PERMANENTLY release control of the CPU back to the CMX RTOS and the running application. The only way to reenter the CMXTracker task is by pressing the "+" (plus) key. Enter P/p to toggle ECHO mode This function allows CMXTracker 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 CMXTracker ECHO mode can be disabled or the terminal or PC prevented from echoing characters. 13

The CMXBug Manual. The CMXBug Manual

The CMXBug Manual. The CMXBug Manual 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

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

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

SIO-DLL. Serial I/O DLL. User Manual

SIO-DLL. Serial I/O DLL. User Manual SIO-DLL Serial I/O DLL User Manual SIO-DLL User Manual Document Part N 0127-0178 Document Reference SIO-DLL\..\0127-0178.Doc Document Issue Level 1.3 Manual covers software version 1 All rights reserved.

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

SpiNNaker Application Programming Interface (API)

SpiNNaker Application Programming Interface (API) SpiNNaker Application Programming Interface (API) Version 2.0.0 10 March 2016 Application programming interface (API) Event-driven programming model The SpiNNaker API programming model is a simple, event-driven

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

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

Typical modules include interfaces to ARINC-429, ARINC-561, ARINC-629 and RS-422. Each module supports up to 8 Rx or 8Tx channels.

Typical modules include interfaces to ARINC-429, ARINC-561, ARINC-629 and RS-422. Each module supports up to 8 Rx or 8Tx channels. Modular PCI Range of Cards Summary features Modular Architecture Interface compatible with PCI Local bus Specification, revision 2.1, June 1995 2 or 4 Module General Purpose Carrier Cards 8 Channels per

More information

6 System Processes Keyboard Command Decoder CRT Display... 26

6 System Processes Keyboard Command Decoder CRT Display... 26 Contents 1 INTRODUCTION 5 2 GLOBAL INFORMATION 6 2.1 Process States................................... 6 2.2 Message Types.................................. 6 2.3 Kernel Control Structure.............................

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

8086 Interrupts and Interrupt Responses:

8086 Interrupts and Interrupt Responses: UNIT-III PART -A INTERRUPTS AND PROGRAMMABLE INTERRUPT CONTROLLERS Contents at a glance: 8086 Interrupts and Interrupt Responses Introduction to DOS and BIOS interrupts 8259A Priority Interrupt Controller

More information

AN HONORS UNIVERSITY IN MARYLAND UMBC. AvrX. Yousef Ebrahimi Professor Ryan Robucci

AN HONORS UNIVERSITY IN MARYLAND UMBC. AvrX.   Yousef Ebrahimi Professor Ryan Robucci AvrX https://github.com/kororos/avrx Yousef Ebrahimi Professor Ryan Robucci Introduction AvrX is a Real Time Multitasking Kernel written for the Atmel AVR series of micro controllers. The Kernel is written

More information

INEL4206: Microprocessors 1 Problem Set #5 Interrupt-Driven Memory-Mapped I/O in SPIM/XSPIM

INEL4206: Microprocessors 1 Problem Set #5 Interrupt-Driven Memory-Mapped I/O in SPIM/XSPIM University of Puerto Rico Mayagüez Department of Electrical and Computer Engineering INEL4206: Microprocessors 1 Problem Set #5 Interrupt-Driven Memory-Mapped I/O in SPIM/XSPIM Due Friday, May 17, 2002

More information

Hardware OS & OS- Application interface

Hardware OS & OS- Application interface CS 4410 Operating Systems Hardware OS & OS- Application interface Summer 2013 Cornell University 1 Today How my device becomes useful for the user? HW-OS interface Device controller Device driver Interrupts

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

Section 31. DMA Controller

Section 31. DMA Controller 31.3 MODES OF OPERATION The DMA module offers the following operating modes: Section 31. DMA Controller Basic Transfer mode Pattern Match mode Channel Chaining mode Channel Auto-Enable mode Special Function

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

Release Bugs solved

Release Bugs solved Release 3363 Bugs solved All functions with the TO suffix don t handle RTCC wait-times correctly. The yrtccx.c examples were not distributed in release 3356. Those examples handle the low power functions

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

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

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

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

Input/Output Programming

Input/Output Programming Input/Output Programming Chapter 3: Section 3.1, 3.2 Input and output (I/O) programming Communicating with I/O devices Busy-wait I/O Interrupt-driven I/O I/O devices Devices may include digital and non-digital

More information

C:\Users\Jacob Christ\Documents\MtSAC\ELEC74 Mt SAC - chipkit\homework Sheets.docx

C:\Users\Jacob Christ\Documents\MtSAC\ELEC74 Mt SAC - chipkit\homework Sheets.docx ELEC 74 Worksheet 1 Logic Gate Review 1. Draw the truth table and schematic symbol for: a. An AND gate b. An OR gate c. An XOR gate d. A NOT gate ELEC74 Worksheet 2 (Number Systems) 1. Convert the following

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

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

ssj1708 User s Manual Version 1.3 Revised February 2nd, 2009 Created by the J1708 Experts

ssj1708 User s Manual Version 1.3 Revised February 2nd, 2009 Created by the J1708 Experts ssj1708 User s Manual Version 1.3 Revised February 2nd, 2009 Created by the J1708 Experts ssj1708 Protocol Stack License READ THE TERMS AND CONDITIONS OF THIS LICENSE AGREEMENT CAREFULLY BEFORE OPENING

More information

Exam TI2720-C/TI2725-C Embedded Software

Exam TI2720-C/TI2725-C Embedded Software Exam TI2720-C/TI2725-C Embedded Software Wednesday April 16 2014 (18.30-21.30) Koen Langendoen In order to avoid misunderstanding on the syntactical correctness of code fragments in this examination, we

More information

,$5$SSOLFDWLRQ1RWH$95 (IILFLHQWSURJUDPPLQJRI$WPHO V $95 PLFURFRQWUROOHUV

,$5$SSOLFDWLRQ1RWH$95 (IILFLHQWSURJUDPPLQJRI$WPHO V $95 PLFURFRQWUROOHUV ,$5$SSOLFDWLRQ1RWH$95 (IILFLHQWSURJUDPPLQJRI$WPHO V $95 PLFURFRQWUROOHUV 6XPPDU\ This application note provides some useful hints on how to program the Atmel AVR microcontrollers using the IAR Compiler.

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

UNIT -3 PROCESS AND OPERATING SYSTEMS 2marks 1. Define Process? Process is a computational unit that processes on a CPU under the control of a scheduling kernel of an OS. It has a process structure, called

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

ECAN TM (Polling) Module

ECAN TM (Polling) Module ECAN TM (Polling) Module 1. Introduction... 2 2. Module Features... 2 3. List of Component Modules... 3 4. Using the Library Module in a Project... 3 5. List of Shared Parameters... 4 6. s... 5 8. Error

More information

Computer Labs: I/O and Interrupts

Computer Labs: I/O and Interrupts Computer Labs: I/O and Interrupts 2 o MIEIC Pedro F. Souto (pfs@fe.up.pt) October 3, 2010 I/O Operation I/O devices are the interface between the computer and its environment Most of the time, the processor

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

C:\Users\jacob\Documents\MtSAC\ELEC74 Mt SAC - chipkit\homework Sheets.docx

C:\Users\jacob\Documents\MtSAC\ELEC74 Mt SAC - chipkit\homework Sheets.docx ELEC 74 Worksheet 1 Logic Gate Review 1. Draw the truth table and schematic symbol for: a. An AND gate b. An OR gate c. An XOR gate d. A NOT gate ELEC74 Worksheet 2 (Number Systems) 1. Convert the following

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

Chaper 1: E10+ PLCs Host-Link Command Format

Chaper 1: E10+ PLCs Host-Link Command Format Chaper 1: E10+ PLCs Host-Link While an E10+ programmable logic controller is running, a host computer can send commands in the form of ASCII strings to the controller to read or write to the inputs, outputs,

More information

Visual Profiler. User Guide

Visual Profiler. User Guide Visual Profiler User Guide Version 3.0 Document No. 06-RM-1136 Revision: 4.B February 2008 Visual Profiler User Guide Table of contents Table of contents 1 Introduction................................................

More information

Quadros. RTXC Kernel Services Reference, Volume 1. Levels, Threads, Exceptions, Pipes, Event Sources, Counters, and Alarms. Systems Inc.

Quadros. RTXC Kernel Services Reference, Volume 1. Levels, Threads, Exceptions, Pipes, Event Sources, Counters, and Alarms. Systems Inc. Quadros Systems Inc. RTXC Kernel Services Reference, Volume 1 Levels, Threads, Exceptions, Pipes, Event Sources, Counters, and Alarms Disclaimer Quadros Systems, Inc. makes no representations or warranties

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

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

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

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

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 05 Lecture - 21 Scheduling in Linux (O(n) and O(1) Scheduler)

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

Lab 3a: Scheduling Tasks with uvision and RTX

Lab 3a: Scheduling Tasks with uvision and RTX COE718: Embedded Systems Design Lab 3a: Scheduling Tasks with uvision and RTX 1. Objectives The purpose of this lab is to lab is to introduce students to uvision and ARM Cortex-M3's various RTX based Real-Time

More information

Device-Functionality Progression

Device-Functionality Progression Chapter 12: I/O Systems I/O Hardware I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Incredible variety of I/O devices Common concepts Port

More information

Chapter 12: I/O Systems. I/O Hardware

Chapter 12: I/O Systems. I/O Hardware Chapter 12: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations I/O Hardware Incredible variety of I/O devices Common concepts Port

More information

EE 390 Lab Manual, EE Department, KFUPM. Experiment #7. Introduction to Flight86 Microprocessor Trainer and Application Board

EE 390 Lab Manual, EE Department, KFUPM. Experiment #7. Introduction to Flight86 Microprocessor Trainer and Application Board Experiment #7 Introduction to Flight86 Microprocessor Trainer and Application Board 7.0 Objectives: The objective of this experiment is to introduce the Flight86 Microprocessor training kit and application

More information

Lesson 5: Software for embedding in System- Part 2

Lesson 5: Software for embedding in System- Part 2 Lesson 5: Software for embedding in System- Part 2 Device drivers, Device manager, OS, RTOS and Software tools 1 Outline Device drivers Device manager Multitasking using an operating system (OS) and Real

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

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

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

Architectural Pattern for a Very Small Microcontroller

Architectural Pattern for a Very Small Microcontroller Secaplius Architectural Pattern for a Very Small Microcontroller September 12, 2016 Introduction Using a standard architectural pattern for a very small microcontroller. When I am asked to create a software

More information

Module 1. Introduction:

Module 1. Introduction: Module 1 Introduction: Operating system is the most fundamental of all the system programs. It is a layer of software on top of the hardware which constitutes the system and manages all parts of the system.

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

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

Using kgdb and the kgdb Internals

Using kgdb and the kgdb Internals Using kgdb and the kgdb Internals Jason Wessel jason.wessel@windriver.com Tom Rini trini@kernel.crashing.org Amit S. Kale amitkale@linsyssoft.com Using kgdb and the kgdb Internals by Jason Wessel by Tom

More information

SECTION 5 HSLRT6 WINDOWS BASED SETUP PROGRAM REFERENCE

SECTION 5 HSLRT6 WINDOWS BASED SETUP PROGRAM REFERENCE The Windows based set-up program is menu driven, allowing the user to easily view data, alter setup variables or set machine timing (machine offset, timing signal locations, etc.), using a PC running the

More information

Remote Control & PVR User Guide Version 12

Remote Control & PVR User Guide Version 12 Remote Control & PVR User Guide Version 12 Some features described in this guide may not be available depending on the setup of your system. If you have any questions, contact WTC Technical Support at

More information

IPTV Middleware Remote Control & DVR User Guide

IPTV Middleware Remote Control & DVR User Guide IPTV Middleware Remote Control & DVR User Guide Version 12 The information presented in this document is written for the default settings of the system. The IPTV Middleware Remote Control & DVR User Guide

More information

CS 134. Operating Systems. April 8, 2013 Lecture 20. Input/Output. Instructor: Neil Rhodes. Monday, April 7, 14

CS 134. Operating Systems. April 8, 2013 Lecture 20. Input/Output. Instructor: Neil Rhodes. Monday, April 7, 14 CS 134 Operating Systems April 8, 2013 Lecture 20 Input/Output Instructor: Neil Rhodes Hardware How hardware works Operating system layer What the kernel does API What the programmer does Overview 2 kinds

More information

Lab 13 Real Time Debugging

Lab 13 Real Time Debugging Lab 13 Real Time Debugging Page 13.1 Lab 13 Real Time Debugging This laboratory assignment accompanies the book, Embedded Microcomputer Systems: Real Time Interfacing, by, published by Brooks-Cole, copyright

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

Embedded Systems Programming - PA8001

Embedded Systems Programming - PA8001 Embedded Systems Programming - PA8001 http://goo.gl/ydeczu Lecture 2 Mohammad Mousavi m.r.mousavi@hh.se Center for Research on Embedded Systems School of Information Science, Computer and Electrical Engineering

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

CSE 120. Overview. July 27, Day 8 Input/Output. Instructor: Neil Rhodes. Hardware. Hardware. Hardware

CSE 120. Overview. July 27, Day 8 Input/Output. Instructor: Neil Rhodes. Hardware. Hardware. Hardware CSE 120 July 27, 2006 Day 8 Input/Output Instructor: Neil Rhodes How hardware works Operating Systems Layer What the kernel does API What the programmer does Overview 2 Kinds Block devices: read/write

More information

Contents. Remote Control Playback Controls What s on TV? Using the OK Button Using the Info Button... 6

Contents. Remote Control Playback Controls What s on TV? Using the OK Button Using the Info Button... 6 Contents Remote Control... 4 Playback Controls.... 5 What s on TV?.... 6 Using the OK Button.... 6 Using the Info Button.... 6 Using the Browse Button.... 6 Using the Channel Guide... 7 ReStartTV... 8

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

By the end of Class. Outline. Homework 5. C8051F020 Block Diagram (pg 18) Pseudo-code for Lab 1-2 due as part of prelab

By the end of Class. Outline. Homework 5. C8051F020 Block Diagram (pg 18) Pseudo-code for Lab 1-2 due as part of prelab By the end of Class Pseudo-code for Lab 1-2 due as part of prelab Homework #5 on website due before next class Outline Introduce Lab 1-2 Counting Timers on C8051 Interrupts Laboratory Worksheet #05 Copy

More information

Concurrency: Deadlock and Starvation. Chapter 6

Concurrency: Deadlock and Starvation. Chapter 6 Concurrency: Deadlock and Starvation Chapter 6 Deadlock Permanent blocking of a set of processes that either compete for system resources or communicate with each other Involve conflicting needs for resources

More information

Real Time Operating System: Inter-Process Communication (IPC)

Real Time Operating System: Inter-Process Communication (IPC) ECE3411 Fall 2015 Lecture 6c. Real Time Operating System: Inter-Process Communication (IPC) Marten van Dijk, Syed Kamran Haider Department of Electrical & Computer Engineering University of Connecticut

More information

Xbee module configuration from a µcontroller

Xbee module configuration from a µcontroller APPLICATION NOTE AN_P12AB04_1 Xbee module configuration from a µcontroller Soulier Baptiste Polytech Clermont Ferrand 2012-2013 The purpose of this application note is to explain how to configure the main

More information

Cooperative Multitasking

Cooperative Multitasking Cooperative Multitasking Cooperative Multitasking let's make the controller for the lamp in an LCD projector Lamp off Fan off evbutton Lamp on Fan on evtimeout Lamp off Fan on evbutton Code for LCD Projector

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

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

DNP3 V3.00 DEVICE PROFILE DOCUMENT

DNP3 V3.00 DEVICE PROFILE DOCUMENT DNP3 V3.00 DEVICE PROFILE DOCUMENT Vendor Name: DAQ Electronics. Device Name: DNP3 Master Station Server in the Callisto Computer. Date: June 8, 2000 Highest DNP Level Supported: For Requests: DNP-L3.

More information

SST DeviceNet Interface Cards

SST DeviceNet Interface Cards Windows NT/95/98 Version 1.31 50 Northland Drive, Waterloo, Ontario N2V 1N3 (519) 725-5136 fax (519) 725-1515 1998 SST, a division of Woodhead Canada Limited Printed in Canada Publication Name : Publication

More information

NetBurner s uc/os RTOS Library

NetBurner s uc/os RTOS Library NetBurner s uc/os RTOS Library Revision 1.1 July 17, 2007 Released 1 Table of Contents 1. Introduction... 4 2. Functions... 4 2.1. OSTaskCreate... 7 2.2. OSSimpleTaskCreate (MACRO)... 9 2.3. OSTaskDelete...

More information

NOTE The documentation and/or manuals provided by the IEDs vendors must be read and understood thoroughly prior to configuration.

NOTE The documentation and/or manuals provided by the IEDs vendors must be read and understood thoroughly prior to configuration. ConfigWiz Addendum This is the DNP3.0 client addendum. This addendum describes the pop-up window tabs, fields, and ranges of valid parameters for entry in those fields. NOTE The documentation and/or manuals

More information

Appendix A Pseudocode of the wlan_mac Process Model in OPNET

Appendix A Pseudocode of the wlan_mac Process Model in OPNET Appendix A Pseudocode of the wlan_mac Process Model in OPNET static void wlan_frame_transmit () { char msg_string [120]; char msg_string1 [120]; WlanT_Hld_List_Elem* hld_ptr; const WlanT_Data_Header_Fields*

More information

CSE 351. GDB Introduction

CSE 351. GDB Introduction CSE 351 GDB Introduction Lab 2 Out either tonight or tomorrow Due April 27 th (you have ~12 days) Reading and understanding x86_64 assembly Debugging and disassembling programs Today: General debugging

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

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

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

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

Digital TV. Quick Reference Guide

Digital TV. Quick Reference Guide Digital TV Quick Reference Guide CONTENTS Remote Control... 4 Playback Controls.... 4 What s on TV?.... 6 Using the OK Button.... 6 Using the Info Button.... 6 Using the Browse Button.... 7 Using the Channel

More information

User s Guide. HP B3081B Real-Time OS Measurement Tool for VRTX32 and VRTXsa

User s Guide. HP B3081B Real-Time OS Measurement Tool for VRTX32 and VRTXsa User s Guide HP B3081B Real-Time OS Measurement Tool for VRTX32 and VRTXsa Notice Hewlett-Packard makes no warranty of any kind with regard to this material, including, but not limited to, the implied

More information

ArdOS The Arduino Operating System Reference Guide Contents

ArdOS The Arduino Operating System Reference Guide Contents ArdOS The Arduino Operating System Reference Guide Contents 1. Introduction... 2 2. Error Handling... 2 3. Initialization and Startup... 2 3.1 Initializing and Starting ArdOS... 2 4. Task Creation... 3

More information

Using TOPPERS/ASP (RTOS) on GR-PEACH (Cortex-A9) With Atollic TrueSTUDIO

Using TOPPERS/ASP (RTOS) on GR-PEACH (Cortex-A9) With Atollic TrueSTUDIO Using TOPPERS/ASP (RTOS) on GR-PEACH (Cortex-A9) With Atollic TrueSTUDIO INTRODUCTION An introduction on how to setup and get started with TOPPERS/ASP kernel on GR-PEACH with the Eclipse-based Atollic

More information

Chapter 1 Getting Started

Chapter 1 Getting Started Chapter 1 Getting Started The C# class Just like all object oriented programming languages, C# supports the concept of a class. A class is a little like a data structure in that it aggregates different

More information

DNP Points List and Implementation

DNP Points List and Implementation S&C IntelliCap Plus Automatic Capacitor Control DNP Points List and Implementation Table of Contents Section Page Section Page DNP Points List for IntelliCap Plus Controls...1 Status Points....2 Analog

More information

Developing Reusable Device Drivers for MCU's

Developing Reusable Device Drivers for MCU's Embedded Systems Conference East 2012 Page 1 of 20 Developing Reusable Device Drivers for MCU's By Jacob Beningo www.beningo.com http://www.linkedin.com/in/jacobbeningo twitter : Jacob_Beningo EDN Blog

More information

Design UART Loopback with Interrupts

Design UART Loopback with Interrupts Once the E is displayed, will the 0 reappear if you return the DIP switch to its OFF position and re-establish the loopback path? Usually not. When you break the loopback path, it will most likely truncate

More information

Source EE 4770 Lecture Transparency. Formatted 16:43, 30 April 1998 from lsli

Source EE 4770 Lecture Transparency. Formatted 16:43, 30 April 1998 from lsli 17-3 17-3 Rate Monotonic Priority Assignment (RMPA) Method for assigning priorities with goal of meeting deadlines. Rate monotonic priority assignment does not guarantee deadlines will be met. A pure periodic

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

Computer-System Architecture (cont.) Symmetrically Constructed Clusters (cont.) Advantages: 1. Greater computational power by running applications

Computer-System Architecture (cont.) Symmetrically Constructed Clusters (cont.) Advantages: 1. Greater computational power by running applications Computer-System Architecture (cont.) Symmetrically Constructed Clusters (cont.) Advantages: 1. Greater computational power by running applications concurrently on all computers in the cluster. Disadvantages:

More information

Programming Model 2 A. Introduction

Programming Model 2 A. Introduction Programming Model 2 A. Introduction Objectives At the end of this lab you should be able to: Use direct and indirect addressing modes of accessing data in memory Create an iterative loop of instructions

More information