⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sptest.adb

📁 RTEMS (Real-Time Executive for Multiprocessor Systems) is a free open source real-time operating sys
💻 ADB
📖 第 1 页 / 共 5 页
字号:
         RTEMS.NOT_DEFINED,         "SEMAPHORE_CREATE OF FIFO INHERIT PRIORITY"      );      TEXT_IO.PUT_LINE("TA1 - semaphore_create - NOT_DEFINED");      RTEMS.SEMAPHORE_CREATE(         SPTEST.SEMAPHORE_NAME( 1 ),         1,         RTEMS.INHERIT_PRIORITY + RTEMS.COUNTING_SEMAPHORE + RTEMS.PRIORITY,         RTEMS.NO_PRIORITY,         SPTEST.JUNK_ID,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.NOT_DEFINED,         "SEMAPHORE_CREATE OF COUNTING_SEMAPHORE INHERIT PRIORITY"      );      TEXT_IO.PUT_LINE("TA1 - semaphore_create - NOT_DEFINED");      RTEMS.SEMAPHORE_CREATE(         SPTEST.SEMAPHORE_NAME( 1 ),         2,         RTEMS.BINARY_SEMAPHORE,         RTEMS.NO_PRIORITY,         SPTEST.JUNK_ID,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_NUMBER,         "SEMAPHORE_CREATE OF BINARY_SEMAPHORE with COUNT > 1"      );      TEXT_IO.PUT_LINE("TA1 - semaphore_create - INVALID_NUMBER");      RTEMS.SEMAPHORE_CREATE(         SPTEST.SEMAPHORE_NAME( 3 ),         1,         RTEMS.GLOBAL,         RTEMS.NO_PRIORITY,         SPTEST.JUNK_ID,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.MP_NOT_CONFIGURED,         "SEMAPHORE_CREATE OF MP_NOT_CONFIGURED"      );      TEXT_IO.PUT_LINE("TA1 - semaphore_create - MP_NOT_CONFIGURED");      RTEMS.SEMAPHORE_DELETE( 100, STATUS );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_ID,         "SEMAPHORE_DELETE WITH ILLEGAL ID"      );      TEXT_IO.PUT_LINE(         "TA1 - semaphore_delete - unknown INVALID_ID"      );      RTEMS.SEMAPHORE_DELETE( 16#10100#, STATUS );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_ID,         "SEMAPHORE_DELETE WITH LOCAL ILLEGAL ID"      );      TEXT_IO.PUT_LINE(         "TA1 - semaphore_delete - local INVALID_ID"      );      RTEMS.SEMAPHORE_IDENT(         100,         RTEMS.SEARCH_ALL_NODES,         SPTEST.JUNK_ID,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_NAME,         "SEMAPHORE_IDENT WITH ILLEGAL NAME (local)"      );      TEXT_IO.PUT_LINE(         "TA1 - semaphore_ident - global INVALID_NAME"      );      RTEMS.SEMAPHORE_IDENT( 100, 1, SPTEST.JUNK_ID, STATUS );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_NAME,         "SEMAPHORE_IDENT WITH ILLEGAL NAME (global)"      );      TEXT_IO.PUT_LINE(         "TA1 - semaphore_ident - local INVALID_NAME"      );  end SCREEN_5;--PAGE-- --  SCREEN_6--   procedure SCREEN_6   is      STATUS         : RTEMS.STATUS_CODES;   begin      RTEMS.SEMAPHORE_OBTAIN(         100,         RTEMS.DEFAULT_OPTIONS,         RTEMS.NO_TIMEOUT,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_ID,         "SEMAPHORE_OBTAIN WITH ILLEGAL ID"      );      TEXT_IO.PUT_LINE( "TA1 - semaphore_obtain - INVALID_ID" );      RTEMS.SEMAPHORE_OBTAIN(         SPTEST.SEMAPHORE_ID( 1 ),         RTEMS.DEFAULT_OPTIONS,         RTEMS.NO_TIMEOUT,         STATUS      );      TEST_SUPPORT.DIRECTIVE_FAILED(STATUS, "SEMAPHORE_OBTAIN SUCCESSFUL");      TEXT_IO.PUT_LINE(          "TA1 - semaphore_obtain - got sem 1 - SUCCESSFUL"      );      RTEMS.SEMAPHORE_OBTAIN(         SPTEST.SEMAPHORE_ID( 1 ),         RTEMS.NO_WAIT,         RTEMS.NO_TIMEOUT,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.UNSATISFIED,         "SEMAPHORE_OBTAIN NOT AVAILABLE"      );      TEXT_IO.PUT_LINE( "TA1 - semaphore_obtain - UNSATISFIED" );      TEXT_IO.PUT_LINE( "TA1 - semaphore_obtain - timeout in 3 seconds" );      RTEMS.SEMAPHORE_OBTAIN(         SPTEST.SEMAPHORE_ID( 1 ),         RTEMS.DEFAULT_OPTIONS,         3 * TEST_SUPPORT.TICKS_PER_SECOND,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.TIMEOUT,         "SEMAPHORE_OBTAIN NOT AVAILABLE"      );      TEXT_IO.PUT_LINE(         "TA1 - semaphore_obtain - woke with TIMEOUT"      );      RTEMS.SEMAPHORE_RELEASE( SPTEST.SEMAPHORE_ID( 2 ), STATUS );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.NOT_OWNER_OF_RESOURCE,         "SEMAPHORE_RELEASE AND NOT OWNER"      );      TEXT_IO.PUT_LINE(          "TA1 - semaphore_release - NOT_OWNER_OF_RESOURCE"      );      RTEMS.SEMAPHORE_RELEASE( 100, STATUS );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_ID,         "SEMAPHORE_RELEASE WITH ILLEGAL ID"      );      TEXT_IO.PUT_LINE( "TA1 - semaphore_release - INVALID_ID" );      TEXT_IO.PUT_LINE(         "TA1 - task_start - start TA2 - SUCCESSFUL"     );      RTEMS.TASK_START(         SPTEST.TASK_ID( 2 ),         SPTEST.TASK_2'ACCESS,         0,         STATUS      );      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TA2" );      TEXT_IO.PUT_LINE(          "TA1 - task_wake_after - yield processor - SUCCESSFUL"      );      RTEMS.TASK_WAKE_AFTER( RTEMS.YIELD_PROCESSOR, STATUS );      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER (yield)" );      TEXT_IO.PUT_LINE(          "TA1 - semaphore_delete - delete sem 1 - SUCCESSFUL"      );      RTEMS.SEMAPHORE_DELETE( SPTEST.SEMAPHORE_ID( 1 ), STATUS );      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_DELETE OF SM1" );      TEXT_IO.PUT_LINE( "TA1 - semaphore_obtain - binary semaphore" );      RTEMS.SEMAPHORE_OBTAIN(         SPTEST.SEMAPHORE_ID( 2 ),         RTEMS.NO_WAIT,         RTEMS.NO_TIMEOUT,         STATUS      );      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_OBTAIN" );      TEXT_IO.PUT_LINE(          "TA1 - semaphore_delete - delete sem 2 - RESOURCE_IN_USE"      );      RTEMS.SEMAPHORE_DELETE( SPTEST.SEMAPHORE_ID( 2 ), STATUS );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(          STATUS,          RTEMS.RESOURCE_IN_USE,         "SEMAPHORE_DELETE OF SM2"       );      TEXT_IO.PUT_LINE(          "TA1 - task_wake_after - yield processor - SUCCESSFUL"      );      RTEMS.TASK_WAKE_AFTER( RTEMS.YIELD_PROCESSOR, STATUS );      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER (yield)" );      RTEMS.TASK_DELETE( SPTEST.TASK_ID( 2 ), STATUS );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_ID,         "TASK_DELETE AFTER THE TASK HAS BEEN DELETED"      );      TEXT_IO.PUT_LINE(          "TA1 - task_delete TA2 - already deleted INVALID_ID"      );   end SCREEN_6;--PAGE-- --  SCREEN_7--   procedure SCREEN_7   is      BUFFER         : SPTEST.BUFFER;      BUFFER_POINTER : RTEMS.ADDRESS;      COUNT          : RTEMS.UNSIGNED32;      MESSAGE_SIZE   : RTEMS.UNSIGNED32;      STATUS         : RTEMS.STATUS_CODES;   begin      BUFFER_POINTER := BUFFER'ADDRESS;      RTEMS.MESSAGE_QUEUE_BROADCAST(         100,         BUFFER_POINTER,         16,         COUNT,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_ID,         "MESSAGE_QUEUE_BROADCAST WITH ILLEGAL ID"      );      TEXT_IO.PUT_LINE(         "TA1 - message_queue_broadcast - INVALID_ID"      );      RTEMS.MESSAGE_QUEUE_CREATE(         0,         3,         16,         RTEMS.DEFAULT_ATTRIBUTES,         SPTEST.JUNK_ID,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_NAME,         "MESSAGE_QUEUE_CREATE WITH ILLEGAL NAME"      );      TEXT_IO.PUT_LINE(         "TA1 - message_queue_create - Q 1 - INVALID_NAME"      );      RTEMS.MESSAGE_QUEUE_CREATE(         SPTEST.QUEUE_NAME( 1 ),         1,         16,         RTEMS.GLOBAL,         SPTEST.JUNK_ID,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.MP_NOT_CONFIGURED,         "MESSAGE_QUEUE_CREATE OF MP NOT CONFIGURED"      );      TEXT_IO.PUT_LINE(             "TA1 - message_queue_create - Q 1 - MP_NOT_CONFIGURED");      RTEMS.MESSAGE_QUEUE_CREATE(         SPTEST.QUEUE_NAME( 1 ),         2,         16,         RTEMS.DEFAULT_ATTRIBUTES,         SPTEST.QUEUE_ID( 1 ),         STATUS      );      TEST_SUPPORT.DIRECTIVE_FAILED(         STATUS,         "MESSAGE_QUEUE_CREATE SUCCESSFUL"      );      TEXT_IO.PUT_LINE(         "TA1 - message_queue_create - Q 1 - 2 DEEP - SUCCESSFUL"      );      RTEMS.MESSAGE_QUEUE_CREATE(         SPTEST.QUEUE_NAME( 2 ),         1,         16,         RTEMS.DEFAULT_ATTRIBUTES,         SPTEST.JUNK_ID,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.TOO_MANY,         "MESSAGE_QUEUE_CREATE OF TOO MANY"      );      TEXT_IO.PUT_LINE(         "TA1 - message_queue_create - Q 2 - TOO_MANY"      );      RTEMS.MESSAGE_QUEUE_DELETE( 100, STATUS );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_ID,         "MESSAGE_QUEUE_DELETE WITH ILLEGAL ID"      );      TEXT_IO.PUT_LINE(         "TA1 - message_queue_delete - unknown INVALID_ID"      );      RTEMS.MESSAGE_QUEUE_DELETE( 16#10100#, STATUS );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_ID,         "MESSAGE_QUEUE_DELETE WITH LOCAL ILLEGAL ID"      );      TEXT_IO.PUT_LINE(         "TA1 - message_queue_delete - local INVALID_ID"      );      RTEMS.MESSAGE_QUEUE_IDENT(         100,         RTEMS.SEARCH_ALL_NODES,         SPTEST.JUNK_ID,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_NAME,         "MESSAGE_QUEUE_IDENT WITH ILLEGAL NAME"      );      TEXT_IO.PUT_LINE( "TA1 - message_queue_ident - INVALID_NAME" );      RTEMS.MESSAGE_QUEUE_FLUSH( 100, COUNT, STATUS );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_ID,         "MESSAGE_QUEUE_FLUSH WITH ILLEGAL ID"      );      TEXT_IO.PUT_LINE( "TA1 - message_queue_flush - INVALID_ID" );      RTEMS.MESSAGE_QUEUE_RECEIVE(         100,         BUFFER_POINTER,         RTEMS.DEFAULT_OPTIONS,         RTEMS.NO_TIMEOUT,         MESSAGE_SIZE,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_ID,         "MESSAGE_QUEUE_RECEIVE WITH ILLEGAL ID"      );      TEXT_IO.PUT_LINE( "TA1 - message_queue_receive - INVALID_ID" );      RTEMS.MESSAGE_QUEUE_RECEIVE(         SPTEST.QUEUE_ID( 1 ),         BUFFER_POINTER,         RTEMS.NO_WAIT,         RTEMS.NO_TIMEOUT,         MESSAGE_SIZE,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.UNSATISFIED,         "MESSAGE_QUEUE_RECEIVE UNSATISFIED"      );      TEXT_IO.PUT_LINE(         "TA1 - message_queue_receive - Q 1 - UNSATISFIED"      );      TEXT_IO.PUT_LINE(         "TA1 - message_queue_receive - Q 1 - timeout in 3 seconds"      );      RTEMS.MESSAGE_QUEUE_RECEIVE(         SPTEST.QUEUE_ID( 1 ),         BUFFER_POINTER,         RTEMS.DEFAULT_OPTIONS,         3 * TEST_SUPPORT.TICKS_PER_SECOND,         MESSAGE_SIZE,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.TIMEOUT,         "MESSAGE_QUEUE_RECEIVE 3 SECOND TIMEOUT"      );      TEXT_IO.PUT_LINE(         "TA1 - message_queue_receive - Q 1 - woke up with TIMEOUT"      );      RTEMS.MESSAGE_QUEUE_SEND( 100, BUFFER_POINTER, 16, STATUS );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_ID,         "MESSAGE_QUEUE_SEND WITH ILLEGAL ID"      );      TEXT_IO.PUT_LINE( "TA1 - message_queue_send - INVALID_ID" );      RTEMS.MESSAGE_QUEUE_SEND(         SPTEST.QUEUE_ID( 1 ),         BUFFER_POINTER,         16,         STATUS      );      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );      TEXT_IO.PUT_LINE(         "TA1 - message_queue_send - BUFFER 1 TO Q 1 - SUCCESSFUL"      );      RTEMS.MESSAGE_QUEUE_SEND(         SPTEST.QUEUE_ID( 1 ),         BUFFER_POINTER,         16,         STATUS      );      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );      TEXT_IO.PUT_LINE(         "TA1 - message_queue_send - BUFFER 2 TO Q 1 - SUCCESSFUL"      );      RTEMS.MESSAGE_QUEUE_SEND(         SPTEST.QUEUE_ID( 1 ),         BUFFER_POINTER,         16,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.TOO_MANY,         "MESSAGE_QUEUE_SEND TOO MANY TO LIMITED QUEUE"      );      TEXT_IO.PUT_LINE(         "TA1 - message_queue_send - BUFFER 3 TO Q 1 - TOO_MANY"      );   end SCREEN_7;--PAGE

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -