📄 sptest.adb
字号:
RTEMS.CLOCK_SET( TIME, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_CLOCK, "CLOCK_SET WITH INVALID SECOND" ); TEXT_IO.PUT_LINE( " - INVALID_CLOCK" ); TIME := ( 1988, 2, 5, 8, 30, 45, TEST_SUPPORT.TICKS_PER_SECOND + 1 ); TEST_SUPPORT.PRINT_TIME( "TA1 - clock_set - ", TIME, "" ); RTEMS.CLOCK_SET( TIME, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_CLOCK, "CLOCK_SET WITH INVALID TICKS PER SECOND" ); TEXT_IO.PUT_LINE( " - INVALID_CLOCK" ); TIME := ( 1988, 2, 5, 8, 30, 45, 0 ); TEST_SUPPORT.PRINT_TIME( "TA1 - clock_set - ", TIME, "" ); RTEMS.CLOCK_SET( TIME, STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "CLOCK_SET SUCCESSFUL" ); TEXT_IO.PUT_LINE( " - SUCCESSFUL" );-- task_wake_when TIME := ( 1988, 2, 5, 8, 30, 48, TEST_SUPPORT.TICKS_PER_SECOND + 1 ); TEXT_IO.PUT( "TA1 - task_wake_when - TICK INVALID - " ); TEXT_IO.PUT_LINE( "sleep about 3 seconds" ); RTEMS.TASK_WAKE_WHEN( TIME, STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_WHEN WITH INVALID TICKS PER SECOND" ); TEXT_IO.PUT( "TA1 - task_wake_when - TICK INVALID - " ); TEXT_IO.PUT_LINE( "woke up SUCCESSFUL" ); TIME := ( 1961, 2, 5, 8, 30, 48, 0 ); TEST_SUPPORT.PRINT_TIME( "TA1 - task_wake_when - ", TIME, "" ); RTEMS.TASK_WAKE_WHEN( TIME, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_CLOCK, "TASK_WAKE_WHEN WITH INVALID YEAR" ); TEXT_IO.PUT_LINE( " - INVALID_CLOCK" ); TIME := ( 1988, 2, 5, 25, 30, 48, 0 ); TEST_SUPPORT.PRINT_TIME( "TA1 - task_wake_when - ", TIME, "" ); RTEMS.TASK_WAKE_WHEN( TIME, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_CLOCK, "TASK_WAKE_WHEN WITH INVALID HOUR" ); TEXT_IO.PUT_LINE( " - INVALID_CLOCK" ); RTEMS.CLOCK_GET( RTEMS.CLOCK_GET_TOD, TIME'ADDRESS, STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "CLOCK_GET SUCCESSFUL" ); TEST_SUPPORT.PRINT_TIME( "TA1 - current time - ", TIME, "" ); TEXT_IO.NEW_LINE; TIME.MONTH := 1; TEST_SUPPORT.PRINT_TIME( "TA1 - task_wake_when - ", TIME, "" ); RTEMS.TASK_WAKE_WHEN( TIME, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_CLOCK, "TASK_WAKE_WHEN BEFORE CURRENT TIME" ); TEXT_IO.PUT_LINE( " - INVALID_CLOCK" ); end SCREEN_2;--PAGE-- -- SCREEN_3-- procedure SCREEN_3 is TASK_NAME : RTEMS.NAME; STATUS : RTEMS.STATUS_CODES; begin TASK_NAME := 1; RTEMS.TASK_CREATE( 0, 1, 2048, RTEMS.DEFAULT_MODES, RTEMS.DEFAULT_ATTRIBUTES, SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_NAME, "TASK_CREATE WITH ILLEGAL NAME" ); TEXT_IO.PUT_LINE( "TA1 - task_create - INVALID_NAME" ); RTEMS.TASK_CREATE( TASK_NAME, 1, RTEMS.CONFIGURATION.WORK_SPACE_SIZE, RTEMS.DEFAULT_MODES, RTEMS.DEFAULT_ATTRIBUTES, SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.UNSATISFIED, "TASK_CREATE WITH A STACK SIZE LARGER THAN THE WORKSPACE" ); TEXT_IO.PUT_LINE( "TA1 - task_create - stack size - UNSATISFIED" ); RTEMS.TASK_CREATE( SPTEST.TASK_NAME( 2 ), 4, 2048, RTEMS.DEFAULT_MODES, RTEMS.DEFAULT_ATTRIBUTES, SPTEST.TASK_ID( 2 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA2" ); TEXT_IO.PUT_LINE( "TA1 - task_create - TA2 created - SUCCESSFUL" ); RTEMS.TASK_SUSPEND( SPTEST.TASK_ID( 2 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_SUSPEND OF TA2" ); TEXT_IO.PUT_LINE( "TA1 - task_suspend - suspend TA2 - SUCCESSFUL" ); RTEMS.TASK_SUSPEND( SPTEST.TASK_ID( 2 ), STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.ALREADY_SUSPENDED, "TASK_SUSPEND ON SUSPENDED TA2" ); TEXT_IO.PUT_LINE( "TA1 - task_suspend - suspend TA2 - ALREADY_SUSPENDED" ); RTEMS.TASK_RESUME( SPTEST.TASK_ID( 2 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_RESUME OF TA2" ); TEXT_IO.PUT_LINE( "TA1 - task_resume - TA2 resumed - SUCCESSFUL" ); RTEMS.TASK_CREATE( SPTEST.TASK_NAME( 3 ), 4, 2048, RTEMS.DEFAULT_MODES, RTEMS.DEFAULT_ATTRIBUTES, SPTEST.TASK_ID( 3 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA3" ); TEXT_IO.PUT_LINE( "TA1 - task_create - TA3 created - SUCCESSFUL" ); RTEMS.TASK_CREATE( SPTEST.TASK_NAME( 4 ), 4, 2048, RTEMS.DEFAULT_MODES, RTEMS.DEFAULT_ATTRIBUTES, SPTEST.TASK_ID( 4 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA4" ); TEXT_IO.PUT_LINE( "TA1 - task_create - 4 created - SUCCESSFUL" ); RTEMS.TASK_CREATE( SPTEST.TASK_NAME( 5 ), 4, 2048, RTEMS.DEFAULT_MODES, RTEMS.DEFAULT_ATTRIBUTES, SPTEST.TASK_ID( 5 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA5" ); TEXT_IO.PUT_LINE( "TA1 - task_create - 5 created - SUCCESSFUL" ); RTEMS.TASK_CREATE( SPTEST.TASK_NAME( 6 ), 4, 2048, RTEMS.DEFAULT_MODES, RTEMS.DEFAULT_ATTRIBUTES, SPTEST.TASK_ID( 6 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA6" ); TEXT_IO.PUT_LINE( "TA1 - task_create - 6 created - SUCCESSFUL" ); RTEMS.TASK_CREATE( SPTEST.TASK_NAME( 7 ), 4, 2048, RTEMS.DEFAULT_MODES, RTEMS.DEFAULT_ATTRIBUTES, SPTEST.TASK_ID( 7 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA7" ); TEXT_IO.PUT_LINE( "TA1 - task_create - 7 created - SUCCESSFUL" ); RTEMS.TASK_CREATE( SPTEST.TASK_NAME( 8 ), 4, 2048, RTEMS.DEFAULT_MODES, RTEMS.DEFAULT_ATTRIBUTES, SPTEST.TASK_ID( 8 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA8" ); TEXT_IO.PUT_LINE( "TA1 - task_create - 8 created - SUCCESSFUL" ); RTEMS.TASK_CREATE( SPTEST.TASK_NAME( 9 ), 4, 2048, RTEMS.DEFAULT_MODES, RTEMS.DEFAULT_ATTRIBUTES, SPTEST.TASK_ID( 9 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA9" ); TEXT_IO.PUT_LINE( "TA1 - task_create - 9 created - SUCCESSFUL" ); RTEMS.TASK_CREATE( SPTEST.TASK_NAME( 10 ), 4, 2048, RTEMS.DEFAULT_MODES, RTEMS.DEFAULT_ATTRIBUTES, SPTEST.TASK_ID( 10 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA10" ); TEXT_IO.PUT_LINE( "TA1 - task_create - 10 created - SUCCESSFUL" ); RTEMS.TASK_CREATE( TASK_NAME, 4, 2048, RTEMS.DEFAULT_MODES, RTEMS.DEFAULT_ATTRIBUTES, SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.TOO_MANY, "TASK_CREATE FOR TOO MANY TASKS" ); TEXT_IO.PUT_LINE( "TA1 - task_create - 11 - TOO_MANY" ); RTEMS.TASK_CREATE( TASK_NAME, 4, 2048, RTEMS.DEFAULT_MODES, RTEMS.GLOBAL, SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.MP_NOT_CONFIGURED, "TASK_CREATE OF GLOBAL TASK IN SINGLE CPU SYSTEM" ); TEXT_IO.PUT_LINE( "TA1 - task_create - MP_NOT_CONFIGURED" ); end SCREEN_3;--PAGE-- -- SCREEN_4-- procedure SCREEN_4 is EVENT_OUT : RTEMS.EVENT_SET; TIME : RTEMS.TIME_OF_DAY; STATUS : RTEMS.STATUS_CODES; begin RTEMS.EVENT_RECEIVE( RTEMS.EVENT_16, RTEMS.NO_WAIT, RTEMS.NO_TIMEOUT, EVENT_OUT, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.UNSATISFIED, "EVENT_RECEIVE UNSATISFIED (ALL)" ); TEXT_IO.PUT_LINE( "TA1 - event_receive - UNSATISFIED ( all conditions )" ); RTEMS.EVENT_RECEIVE( RTEMS.EVENT_16, RTEMS.NO_WAIT + RTEMS.EVENT_ANY, RTEMS.NO_TIMEOUT, EVENT_OUT, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.UNSATISFIED, "EVENT_RECEIVE UNSATISFIED (ANY)" ); TEXT_IO.PUT_LINE( "TA1 - event_receive - UNSATISFIED ( any conditions )" ); TEXT_IO.PUT_LINE( "TA1 - event_receive - timeout in 3 seconds" ); RTEMS.EVENT_RECEIVE( RTEMS.EVENT_16, RTEMS.DEFAULT_OPTIONS, 3 * TEST_SUPPORT.TICKS_PER_SECOND, EVENT_OUT, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.TIMEOUT, "EVENT_RECEIVE AFTER 3 SECOND TIMEOUT" ); TEXT_IO.PUT_LINE( "TA1 - event_receive - woke with TIMEOUT" ); RTEMS.EVENT_SEND( 100, RTEMS.EVENT_16, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_ID, "EVENT_SEND WITH ILLEGAL ID" ); TEXT_IO.PUT_LINE( "TA1 - event_send - INVALID_ID" ); TEXT_IO.PUT_LINE( "TA1 - task_wake_after - sleep 1 second - SUCCESSFUL" ); RTEMS.TASK_WAKE_AFTER( TEST_SUPPORT.TICKS_PER_SECOND, STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER (1 SECOND)" ); TIME := ( 1988, 2, 5, 8, 30, 45, 0 ); TEST_SUPPORT.PRINT_TIME( "TA1 - clock_set - ", TIME, "" ); RTEMS.CLOCK_SET( TIME, STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "CLOCK_SET SUCCESSFUL" ); TEXT_IO.PUT_LINE( " - SUCCESSFUL" ); end SCREEN_4;--PAGE-- -- SCREEN_5-- procedure SCREEN_5 is STATUS : RTEMS.STATUS_CODES; begin RTEMS.SEMAPHORE_CREATE( 0, 1, RTEMS.DEFAULT_ATTRIBUTES, RTEMS.NO_PRIORITY, SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_NAME, "SEMAPHORE_CREATE WITH ILLEGAL NAME" ); TEXT_IO.PUT_LINE( "TA1 - semaphore_create - INVALID_NAME" ); RTEMS.SEMAPHORE_CREATE( SPTEST.SEMAPHORE_NAME( 1 ), 1, RTEMS.DEFAULT_ATTRIBUTES, RTEMS.NO_PRIORITY, SPTEST.SEMAPHORE_ID( 1 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_CREATE SUCCESSFUL" ); TEXT_IO.PUT_LINE( "TA1 - semaphore_create - 1 - SUCCESSFUL" ); RTEMS.SEMAPHORE_CREATE( SPTEST.SEMAPHORE_NAME( 2 ), 1, RTEMS.BINARY_SEMAPHORE, RTEMS.NO_PRIORITY, SPTEST.SEMAPHORE_ID( 2 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_CREATE SUCCESSFUL" ); TEXT_IO.PUT_LINE( "TA1 - semaphore_create - 2 - SUCCESSFUL" ); loop RTEMS.SEMAPHORE_CREATE( SPTEST.SEMAPHORE_NAME( 3 ), 1, RTEMS.DEFAULT_ATTRIBUTES, RTEMS.NO_PRIORITY, SPTEST.JUNK_ID, STATUS ); exit when not RTEMS.ARE_STATUSES_EQUAL( STATUS, RTEMS.SUCCESSFUL ); end loop; TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.TOO_MANY, "SEMAPHORE_CREATE OF TOO MANY" ); TEXT_IO.PUT_LINE( "TA1 - semaphore_create - 3 - TOO_MANY" ); RTEMS.SEMAPHORE_CREATE( SPTEST.SEMAPHORE_NAME( 1 ), 1, RTEMS.INHERIT_PRIORITY + RTEMS.BINARY_SEMAPHORE + RTEMS.FIFO, RTEMS.NO_PRIORITY, SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -