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

📄 sptest.adb

📁 RTEMS (Real-Time Executive for Multiprocessor Systems) is a free open source real-time operating sys
💻 ADB
📖 第 1 页 / 共 5 页
字号:
-- --  SCREEN_8--   procedure SCREEN_8   is      BUFFER         : SPTEST.BUFFER;      BUFFER_POINTER : RTEMS.ADDRESS;      STATUS         : RTEMS.STATUS_CODES;   begin      BUFFER_POINTER := BUFFER'ADDRESS;      RTEMS.MESSAGE_QUEUE_DELETE( SPTEST.QUEUE_ID( 1 ), STATUS );      TEST_SUPPORT.DIRECTIVE_FAILED(         STATUS,         "MESSAGE_QUEUE_DELETE SUCCESSFUL"      );      TEXT_IO.PUT_LINE(         "TA1 - message_queue_delete - Q 1 - SUCCESSFUL"      );      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_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"      );      RTEMS.MESSAGE_QUEUE_DELETE( SPTEST.QUEUE_ID( 1 ), STATUS );      TEST_SUPPORT.DIRECTIVE_FAILED(         STATUS,         "MESSAGE_QUEUE_DELETE SUCCESSFUL"      );      TEXT_IO.PUT_LINE(         "TA1 - message_queue_delete - Q 1 - SUCCESSFUL"      );      RTEMS.MESSAGE_QUEUE_CREATE(         SPTEST.QUEUE_NAME( 1 ),         3,         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 - 3 DEEP - 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 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.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );      TEXT_IO.PUT_LINE(         "TA1 - message_queue_send - BUFFER 3 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 4 TO Q 1 - TOO_MANY"      );      RTEMS.MESSAGE_QUEUE_DELETE( SPTEST.QUEUE_ID( 1 ), STATUS );      TEST_SUPPORT.DIRECTIVE_FAILED(         STATUS,         "MESSAGE_QUEUE_DELETE SUCCESSFUL"      );      TEXT_IO.PUT_LINE(         "TA1 - message_queue_delete - Q 1 - SUCCESSFUL"      );      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 - 3 DEEP - SUCCESSFUL"      );      TEXT_IO.PUT_LINE(          "TA1 - task_start - start TA3 - SUCCESSFUL"      );      RTEMS.TASK_START(         SPTEST.TASK_ID( 3 ),         SPTEST.TASK_3'ACCESS,         0,         STATUS      );      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TA3" );      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.MESSAGE_QUEUE_DELETE( SPTEST.QUEUE_ID( 1 ), STATUS );      TEST_SUPPORT.DIRECTIVE_FAILED(         STATUS,         "MESSAGE_QUEUE_DELETE SUCCESSFUL"      );      TEXT_IO.PUT_LINE(         "TA1 - message_queue_delete - delete Q 1 - SUCCESSFUL"      );      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)" );   end SCREEN_8;--PAGE-- --  SCREEN_9--   procedure SCREEN_9   is      CONVERTED           : RTEMS.ADDRESS;      STATUS              : RTEMS.STATUS_CODES;      OLD_SERVICE_ROUTINE : RTEMS.ADDRESS;   begin--      RTEMS.INTERRUPT_CATCH( --         SPTEST.SERVICE_ROUTINE'ACCESS,--         500,--         OLD_SERVICE_ROUTINE,--         STATUS--      );--      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(--         STATUS,--         RTEMS.INVALID_NUMBER,--         "INTERRUPT_CATCH WITH INVALID VECTOR"--      );--      TEXT_IO.PUT_LINE( "TA1 - interrupt_catch - INVALID_NUMBER" );      TEXT_IO.PUT_LINE(         "TA1 - interrupt_catch - INVALID_NUMBER -- constraint error"      );      RTEMS.INTERRUPT_CATCH(          RTEMS.NULL_ADDRESS,         3,         OLD_SERVICE_ROUTINE,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_ADDRESS,         "INTERRUPT_CATCH WITH INVALID HANDLER"      );      TEXT_IO.PUT_LINE( "TA1 - interrupt_catch - INVALID_ADDRESS" );      RTEMS.SIGNAL_SEND( 100, RTEMS.SIGNAL_1, STATUS );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_ID,         "SIGNAL_SEND WITH ILLEGAL ID"      );      TEXT_IO.PUT_LINE( "TA1 - signal_send - INVALID_ID" );      RTEMS.SIGNAL_SEND( RTEMS.SELF, RTEMS.SIGNAL_16, STATUS );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.NOT_DEFINED,         "SIGNAL_SEND WITH NO HANDLER"      );      TEXT_IO.PUT_LINE( "TA1 - signal_send - NOT_DEFINED" );      RTEMS.PORT_CREATE(         0,         SPTEST.INTERNAL_PORT_AREA'ADDRESS,         SPTEST.EXTERNAL_PORT_AREA'ADDRESS,         SPTEST.INTERNAL_PORT_AREA'LENGTH,         SPTEST.JUNK_ID,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_NAME,         "PORT_CREATE WITH ILLEGAL NAME"      );      TEXT_IO.PUT_LINE( "TA1 - port_create - INVALID_NAME" );      RTEMS.PORT_CREATE(         SPTEST.PORT_NAME( 1 ),         SPTEST.INTERNAL_PORT_AREA( 1 )'ADDRESS,         SPTEST.EXTERNAL_PORT_AREA'ADDRESS,         SPTEST.INTERNAL_PORT_AREA'LENGTH,         SPTEST.JUNK_ID,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_ADDRESS,         "PORT_CREATE WITH ILLEGAL ADDRESS"      );      TEXT_IO.PUT_LINE( "TA1 - port_create - INVALID_ADDRESS" );      RTEMS.PORT_CREATE(         SPTEST.PORT_NAME( 1 ),         SPTEST.INTERNAL_PORT_AREA'ADDRESS,         SPTEST.EXTERNAL_PORT_AREA'ADDRESS,         SPTEST.INTERNAL_PORT_AREA'LENGTH,         SPTEST.JUNK_ID,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.TOO_MANY,         "PORT_CREATE OF TOO MANY"      );      TEXT_IO.PUT_LINE( "TA1 - port_create - TOO_MANY" );      RTEMS.PORT_DELETE( 0, STATUS );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_ID,         "PORT_DELETE WITH ILLEGAL ID"      );      TEXT_IO.PUT_LINE( "TA1 - port_delete - INVALID_ID" );      RTEMS.PORT_IDENT( 0, SPTEST.JUNK_ID, STATUS );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_NAME,         "PORT_IDENT WITH ILLEGAL NAME"      );      TEXT_IO.PUT_LINE( "TA1 - port_ident - INVALID_NAME" );      RTEMS.PORT_INTERNAL_TO_EXTERNAL(         100,         SPTEST.INTERNAL_PORT_AREA'ADDRESS,         CONVERTED,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_ID,         "PORT_INTERNAL_TO_EXTERNAL WITH ILLEGAL ID"      );      TEXT_IO.PUT_LINE(         "TA1 - port_internal_to_external - INVALID_ID"      );      RTEMS.PORT_EXTERNAL_TO_INTERNAL(         100,         SPTEST.EXTERNAL_PORT_AREA'ADDRESS,         CONVERTED,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_ID,         "PORT_EXTERNAL_TO_INTERNAL WITH ILLEGAL ID"      );      TEXT_IO.PUT_LINE(         "TA1 - port_external_to_internal - INVALID_ID"      );   end SCREEN_9;--PAGE-- --  SCREEN_10--   procedure SCREEN_10   is      STATUS : RTEMS.STATUS_CODES;   begin      RTEMS.RATE_MONOTONIC_CREATE( 0, SPTEST.JUNK_ID, STATUS );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_NAME,         "RATE_MONOTONIC_CREATE WITH ILLEGAL NAME"      );      TEXT_IO.PUT_LINE(         "TA1 - rate_monotonic_create - INVALID_NAME"      );      RTEMS.RATE_MONOTONIC_CREATE(         SPTEST.PERIOD_NAME( 1 ),         SPTEST.PERIOD_ID( 1 ),         STATUS      );      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "RATE_MONOTONIC_CREATE" );      TEXT_IO.PUT_LINE(         "TA1 - rate_monotonic_create - SUCCESSFUL"      );      RTEMS.RATE_MONOTONIC_CREATE(         SPTEST.PERIOD_NAME( 1 ),         SPTEST.JUNK_ID,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.TOO_MANY,         "RATE_MONOTONIC_CREATE FOR TOO MANY"      );      TEXT_IO.PUT_LINE( "TA1 - rate_monotonic_create - TOO_MANY" );      RTEMS.RATE_MONOTONIC_IDENT( 0, SPTEST.JUNK_ID, STATUS );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_NAME,         "RATE_MONOTONIC_IDENT WITH ILLEGAL NAME"      );      TEXT_IO.PUT_LINE(         "TA1 - rate_monotonic_ident - INVALID_NAME"      );      RTEMS.RATE_MONOTONIC_PERIOD( 100, 5, STATUS );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_ID,         "RATE_MONOTONIC_PERIOD WITH ILLEGAL ID"      );      TEXT_IO.PUT_LINE(         "TA1 - rate_monotonic_period - unknown INVALID_ID"      );      RTEMS.RATE_MONOTONIC_PERIOD( 16#10100#, 5, STATUS );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.INVALID_ID,         "RATE_MONOTONIC_PERIOD WITH ILLEGAL ID"      );      TEXT_IO.PUT_LINE(         "TA1 - rate_monotonic_period - local INVALID_ID"      );      RTEMS.RATE_MONOTONIC_PERIOD(         SPTEST.PERIOD_ID( 1 ),         RTEMS.PERIOD_STATUS,         STATUS      );      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(         STATUS,         RTEMS.NOT_DEFINED,         "RATE_MONOTONIC_PERIOD STATUS NOT DEFINED"      );      TEXT_IO.PUT_LINE(          "TA1 - rate_monotonic_period( STATUS ) - NOT_DEFINED"      );      RTEMS.RATE_MONOTONIC_PERIOD( SPTEST.PERIOD_ID( 1 ), 100, STATUS );      TEST_SUPPORT.DIRECTIVE_FAILED(         STATUS,         "RATE_MONOTONIC_PERIOD 100 TICKS"      );      TEXT_IO.PUT( "TA1 - rate_monotonic_period - 100 ticks - " );      TEXT_IO.PUT_LINE( "SUCCESSFUL" );      RTEMS.RATE_MONOTONIC_PERIOD(         SPTEST.PERIOD_ID( 1 ),         RTEMS.PERIOD_STATUS,         STATUS      );      TEST_SUPPORT.DIRECTIVE_FAILED(         STATUS,         "RATE_MONOTONIC_PERIOD STATUS"      );      TEXT_IO.PUT( "TA1 - rate_monotonic_period( STATUS ) - " );      TEXT_IO.PUT_LINE( "SUCCESSFUL" );      loop         RTEMS.RATE_MONOTONIC_PERIOD(            SPTEST.PERIOD_ID( 1 ),            RTEMS.PERIOD_STATUS,            STATUS         );         exit when RTEMS.ARE_STATUSES_EQUAL( STATUS, RTEMS.TIMEOUT );         TEST_SUPPORT.DIRECTIVE_FAILED(            STATUS,            "RATE_MONOTONIC_PERIOD STATUS WAITING FOR TIMEOUT"         );

⌨️ 快捷键说明

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