正常运行后,串口可以看到多线程的调试信息:
*** ChibiOS/RT Test Suite
***
*** Compiled: Feb 23 2022 - 17:57:48
*** Platform: STM32F10x Performance Line Low Density
*** Test Board: Olimex STM32-P103
============================================================================
=== Test Sequence 1 (Information)
----------------------------------------------------------------------------
--- Test Case 1.1 (Port Info)
--- Architecture: ARMv7-M
--- Core Variant: Cortex-M3
--- Compiler: IAR
--- Port Info: Advanced kernel mode
--- Natural alignment: 4
--- Stack alignment: 8
--- Working area alignment: 8
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 1.2 (Kernel Info)
--- Product: ChibiOS/RT
--- Stable Flag: 1
--- Version String: 6.0.0
--- Major Number: 6
--- Minor Number: 0
--- Patch Number: 0
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 1.3 (Kernel Settings)
--- CH_CFG_ST_RESOLUTION: 16
--- CH_CFG_ST_FREQUENCY: 2000
--- CH_CFG_INTERVALS_SIZE: 32
--- CH_CFG_TIME_TYPES_SIZE: 32
--- CH_CFG_ST_TIMEDELTA: 2
--- CH_CFG_TIME_QUANTUM: 0
--- CH_CFG_MEMCORE_SIZE: 0
--- CH_CFG_NO_IDLE_THREAD: 0
--- CH_CFG_OPTIMIZE_SPEED: 1
--- CH_CFG_USE_TM: 1
--- CH_CFG_USE_REGISTRY: 1
--- CH_CFG_USE_WAITEXIT: 1
--- CH_CFG_USE_SEMAPHORES: 1
--- CH_CFG_USE_SEMAPHORES_PRIORITY: 0
--- CH_CFG_USE_MUTEXES: 1
--- CH_CFG_USE_MUTEXES_RECURSIVE: 0
--- CH_CFG_USE_CONDVARS: 1
--- CH_CFG_USE_CONDVARS_TIMEOUT: 1
--- CH_CFG_USE_EVENTS: 1
--- CH_CFG_USE_EVENTS_TIMEOUT: 1
--- CH_CFG_USE_MESSAGES: 1
--- CH_CFG_USE_MESSAGES_PRIORITY: 0
--- CH_CFG_USE_MAILBOXES: 1
--- CH_CFG_USE_MEMCORE: 1
--- CH_CFG_USE_HEAP: 1
--- CH_CFG_USE_MEMPOOLS: 1
--- CH_CFG_USE_OBJ_FIFOS: 1
--- CH_CFG_USE_DYNAMIC: 1
--- CH_CFG_USE_FACTORY: 1
--- CH_CFG_FACTORY_MAX_NAMES_LENGTH: 8
--- CH_CFG_FACTORY_OBJECTS_REGISTRY: 1
--- CH_CFG_FACTORY_GENERIC_BUFFERS: 1
--- CH_CFG_FACTORY_SEMAPHORES: 1
--- CH_CFG_FACTORY_MAILBOXES: 1
--- CH_CFG_FACTORY_OBJ_FIFOS: 1
--- CH_DBG_STATISTICS: 0
--- CH_DBG_SYSTEM_STATE_CHECK: 0
--- CH_DBG_ENABLE_CHECKS: 0
--- CH_DBG_ENABLE_ASSERTS: 0
--- CH_DBG_TRACE_MASK: 255
--- CH_DBG_TRACE_BUFFER_SIZE: 128
--- CH_DBG_ENABLE_STACK_CHECK: 0
--- CH_DBG_FILL_THREADS: 0
--- CH_DBG_THREADS_PROFILING: 0
--- Result: SUCCESS
============================================================================
=== Test Sequence 2 (System layer and port interface)
----------------------------------------------------------------------------
--- Test Case 2.1 (System integrity functionality)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 2.2 (Critical zones functionality)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 2.3 (Interrupts handling functionality)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 2.4 (System Tick Counter functionality)
--- Result: SUCCESS
============================================================================
=== Test Sequence 3 (Threads Functionality)
----------------------------------------------------------------------------
--- Test Case 3.1 (Thread Sleep functionality)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.2 (Ready List functionality, threads priority order)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.3 (Priority change test)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.4 (Priority change test with Priority Inheritance)
--- Result: SUCCESS
============================================================================
=== Test Sequence 4 (Suspend/Resume)
----------------------------------------------------------------------------
--- Test Case 4.1 (Suspend and Resume functionality)
--- Result: SUCCESS
============================================================================
=== Test Sequence 5 (Counter Semaphores)
----------------------------------------------------------------------------
--- Test Case 5.1 (Semaphore primitives, no state change)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 5.2 (Semaphore enqueuing test)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 5.3 (Semaphore timeout test)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 5.4 (Testing chSemAddCounterI() functionality)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 5.5 (Testing chSemWaitSignal() functionality)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 5.6 (Testing Binary Semaphores special case)
--- Result: SUCCESS
============================================================================
=== Test Sequence 6 (Mutexes, Condition Variables and Priority Inheritance)
----------------------------------------------------------------------------
--- Test Case 6.1 (Priority enqueuing test)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 6.2 (Priority return verification)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 6.3 (Repeated locks, non recursive scenario)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 6.4 (Condition Variable signal test)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 6.5 (Condition Variable broadcast test)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 6.6 (Condition Variable priority boost test)
--- Result: SUCCESS
============================================================================
=== Test Sequence 7 (Synchronous Messages)
----------------------------------------------------------------------------
--- Test Case 7.1 (Messages Server loop)
--- Result: SUCCESS
============================================================================
=== Test Sequence 8 (Event Sources and Event Flags)
----------------------------------------------------------------------------
--- Test Case 8.1 (Events registration)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 8.2 (Event Flags dispatching)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 8.3 (Events Flags wait using chEvtWaitOne())
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 8.4 (Events Flags wait using chEvtWaitAny())
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 8.5 (Events Flags wait using chEvtWaitAll())
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 8.6 (Events Flags wait timeouts)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 8.7 (Broadcasting using chEvtBroadcast())
--- Result: SUCCESS
============================================================================
=== Test Sequence 9 (Dynamic threads)
----------------------------------------------------------------------------
--- Test Case 9.1 (Threads creation from Memory Heap)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 9.2 (Threads creation from Memory Pool)
--- Result: SUCCESS
============================================================================
=== Test Sequence 10 (Benchmarks)
----------------------------------------------------------------------------
--- Test Case 10.1 (Messages performance #1)
--- Score : 102267 msgs/S, 204534 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.2 (Messages performance #2)
--- Score : 90221 msgs/S, 180442 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.3 (Messages performance #3)
--- Score : 90220 msgs/S, 180440 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.4 (Context Switch performance)
--- Score : 517960 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.5 (Threads performance, full cycle)
--- Score : 69899 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.6 (Threads performance, create/exit only)
--- Score : 93018 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.7 (Mass reschedule performance)
--- Score : 30953 reschedules/S, 185718 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.8 (Round-Robin voluntary reschedule)
--- Score : 224640 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.9 (Virtual Timers set/reset performance)
--- Score : 141814 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.10 (Semaphores wait/signal performance)
--- Score : 333316 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.11 (Mutexes lock/unlock performance)
--- Score : 252616 lock+unlock/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.12 (RAM Footprint)
--- System: 120 bytes
--- Thread: 68 bytes
--- Timer : 20 bytes
--- Semaph: 12 bytes
--- Mutex : 16 bytes
--- CondV.: 8 bytes
--- EventS: 4 bytes
--- EventL: 20 bytes
--- MailB.: 40 bytes
--- Result: SUCCESS
----------------------------------------------------------------------------
Final result: SUCCESS
*** ChibiOS OS Library Test Suite
***
*** Compiled: Feb 23 2022 - 17:57:48
*** Platform: STM32F10x Performance Line Low Density
*** Test Board: Olimex STM32-P103
============================================================================
=== Test Sequence 1 (Mailboxes)
----------------------------------------------------------------------------
--- Test Case 1.1 (Mailbox normal API, non-blocking tests)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 1.2 (Mailbox I-Class API, non-blocking tests)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 1.3 (Mailbox timeouts)
--- Result: SUCCESS
============================================================================
=== Test Sequence 2 (Pipes)
----------------------------------------------------------------------------
--- Test Case 2.1 (Pipes normal API, non-blocking tests)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 2.2 (Pipe timeouts)
--- Result: SUCCESS
============================================================================
=== Test Sequence 3 (Memory Pools)
----------------------------------------------------------------------------
--- Test Case 3.1 (Loading and emptying a memory pool)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.2 (Loading and emptying a guarded memory pool without waiting)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.3 (Guarded Memory Pools timeout)
--- Result: SUCCESS
============================================================================
=== Test Sequence 4 (Memory Heaps)
----------------------------------------------------------------------------
--- Test Case 4.1 (Allocation and fragmentation)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 4.2 (Default Heap)
--- Result: SUCCESS
============================================================================
=== Test Sequence 5 (Objects Factory)
----------------------------------------------------------------------------
--- Test Case 5.1 (Objects Registry)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 5.2 (Dynamic Buffers Factory)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 5.3 (Dynamic Semaphores Factory)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 5.4 (Dynamic Mailboxes Factory)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 5.5 (Dynamic Objects FIFOs Factory)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 5.6 (Dynamic Pipes Factory)
--- Result: SUCCESS
----------------------------------------------------------------------------