forked from Imagelibrary/rtems
349 lines
8.6 KiB
Markdown
349 lines
8.6 KiB
Markdown
Motorola MCF5329EVB
|
|
===================
|
|
|
|
Zoom + (LogicPD)
|
|
|
|
```
|
|
CPU: MCF5329, 240MHz
|
|
CORESRAM: 32K
|
|
FLASH: 2M
|
|
DRAM: 32M
|
|
```
|
|
This is a Motorola Zoom evaluation board that uses the MCF5329 Coldfire CPU on
|
|
a logicPD card. This board is running at 240MHz with DRAM clocking at 80MHz.
|
|
|
|
The bsp is configured for the MT46V16M16TG-75:F DRAM.
|
|
|
|
NOTES
|
|
-----
|
|
|
|
This BSP is based heavily off the 5235 BSP.
|
|
|
|
TODO
|
|
-----
|
|
|
|
Add other drivers for can, i2c, lcd (fb), qspi etc.
|
|
|
|
|
|
Interrupt map
|
|
-------------
|
|
```
|
|
+-----+
|
|
| |
|
|
+-----+
|
|
|LEVEL|
|
|
+-----+
|
|
| 7 |
|
|
+-----+
|
|
| 6 |
|
|
+-----+
|
|
| 5 |
|
|
+-----+
|
|
| 4 | FEC RX, FEC TX, PIT
|
|
+-----+
|
|
| 3 | UART 0, UART 1, UART 2
|
|
+-----+
|
|
| 2 |
|
|
+-----+
|
|
| 1 |
|
|
+-----+
|
|
```
|
|
|
|
Timing tests
|
|
------------
|
|
```
|
|
Timings
|
|
|
|
*** TIME TEST 1 ***
|
|
rtems_semaphore_create 11
|
|
rtems_semaphore_delete 9
|
|
rtems_semaphore_obtain: available 0
|
|
rtems_semaphore_obtain: not available -- NO_WAIT 0
|
|
rtems_semaphore_release: no waiting tasks 2
|
|
*** END OF TEST 1 ***
|
|
|
|
*** TIME TEST 2 ***
|
|
rtems_semaphore_obtain: not available -- caller blocks 14
|
|
*** END OF TEST 2 ***
|
|
|
|
*** TIME TEST 3 ***
|
|
rtems_semaphore_release: task readied -- preempts caller 11
|
|
*** END OF TEST 3 ***
|
|
|
|
*** TIME TEST 4 ***
|
|
rtems_task_restart: blocked task -- preempts caller 24
|
|
rtems_task_restart: ready task -- preempts caller 15
|
|
rtems_semaphore_release: task readied -- returns to caller 3
|
|
rtems_task_create 40
|
|
rtems_task_start 7
|
|
rtems_task_restart: suspended task -- returns to caller 8
|
|
rtems_task_delete: suspended task 18
|
|
rtems_task_restart: ready task -- returns to caller 9
|
|
rtems_task_restart: blocked task -- returns to caller 10
|
|
rtems_task_delete: blocked task 19
|
|
*** END OF TEST 4 ***
|
|
|
|
*** TIME TEST 5 ***
|
|
rtems_task_suspend: calling task 11
|
|
rtems_task_resume: task readied -- preempts caller 9
|
|
*** END OF TEST 5 ***
|
|
|
|
*** TIME TEST 6 ***
|
|
rtems_task_restart: calling task 4
|
|
rtems_task_suspend: returns to caller 2
|
|
rtems_task_resume: task readied -- returns to caller 2
|
|
rtems_task_delete: ready task 19
|
|
*** END OF TEST 6 ***
|
|
|
|
*** TIME TEST 7 ***
|
|
rtems_task_restart: suspended task -- preempts caller 15
|
|
*** END OF TEST 7 ***
|
|
|
|
*** TIME TEST 9 ***
|
|
rtems_message_queue_create 45
|
|
rtems_message_queue_send: no waiting tasks 2
|
|
rtems_message_queue_urgent: no waiting tasks 2
|
|
rtems_message_queue_receive: available 3
|
|
rtems_message_queue_flush: no messages flushed 1
|
|
rtems_message_queue_flush: messages flushed 1
|
|
rtems_message_queue_delete 12
|
|
*** END OF TEST 9 ***
|
|
|
|
*** TIME TEST 10 ***
|
|
rtems_message_queue_receive: not available -- NO_WAIT 1
|
|
rtems_message_queue_receive: not available -- caller blocks 14
|
|
*** END OF TEST 10 ***
|
|
|
|
*** TIME TEST 11 ***
|
|
rtems_message_queue_send: task readied -- preempts caller 13
|
|
*** END OF TEST 11 ***
|
|
|
|
*** TIME TEST 12 ***
|
|
rtems_message_queue_send: task readied -- returns to caller 5
|
|
*** END OF TEST 12 ***
|
|
|
|
*** TIME TEST 13 ***
|
|
rtems_message_queue_urgent: task readied -- preempts caller 13
|
|
*** END OF TEST 13 ***
|
|
|
|
*** TIME TEST 14 ***
|
|
rtems_message_queue_urgent: task readied -- returns to caller 5
|
|
*** END OF TEST 14 ***
|
|
|
|
*** TIME TEST 15 ***
|
|
rtems_event_receive: obtain current events 0
|
|
rtems_event_receive: not available -- NO_WAIT 1
|
|
rtems_event_receive: not available -- caller blocks 12
|
|
rtems_event_send: no task readied 1
|
|
rtems_event_receive: available 3
|
|
rtems_event_send: task readied -- returns to caller 4
|
|
*** END OF TEST 15 ***
|
|
|
|
*** TIME TEST 16 ***
|
|
rtems_event_send: task readied -- preempts caller 13
|
|
*** END OF TEST 16 ***
|
|
|
|
*** TIME TEST 17 ***
|
|
rtems_task_set_priority: preempts caller 13
|
|
*** END OF TEST 17 ***
|
|
|
|
*** TIME TEST 18 ***
|
|
rtems_task_delete: calling task 30
|
|
*** END OF TEST 18 ***
|
|
|
|
*** TIME TEST 19 ***
|
|
rtems_signal_catch 2
|
|
rtems_signal_send: returns to caller 5
|
|
rtems_signal_send: signal to self 11
|
|
exit ASR overhead: returns to calling task 6
|
|
exit ASR overhead: returns to preempting task 11
|
|
*** END OF TEST 19 ***
|
|
|
|
*** TIME TEST 20 ***
|
|
rtems_partition_create 15
|
|
rtems_region_create 20
|
|
rtems_partition_get_buffer: available 4
|
|
rtems_partition_get_buffer: not available 1
|
|
rtems_partition_return_buffer 4
|
|
rtems_partition_delete 6
|
|
rtems_region_get_segment: available 6
|
|
rtems_region_get_segment: not available -- NO_WAIT 5
|
|
rtems_region_return_segment: no waiting tasks 5
|
|
rtems_region_get_segment: not available -- caller blocks 29
|
|
rtems_region_return_segment: task readied -- preempts caller 29
|
|
rtems_region_return_segment: task readied -- returns to caller 11
|
|
rtems_region_delete 6
|
|
rtems_io_initialize 0
|
|
rtems_io_open 0
|
|
rtems_io_close 0
|
|
rtems_io_read 0
|
|
rtems_io_write 0
|
|
rtems_io_control 0
|
|
*** END OF TEST 20 ***
|
|
|
|
*** TIME TEST 21 ***
|
|
rtems_task_ident 4
|
|
rtems_message_queue_ident 3
|
|
rtems_semaphore_ident 4
|
|
rtems_partition_ident 3
|
|
rtems_region_ident 3
|
|
rtems_port_ident 3
|
|
rtems_timer_ident 3
|
|
rtems_rate_monotonic_ident 3
|
|
*** END OF TEST 21 ***
|
|
|
|
*** TIME TEST 22 ***
|
|
rtems_message_queue_broadcast: task readied -- returns to caller 16
|
|
rtems_message_queue_broadcast: no waiting tasks 2
|
|
rtems_message_queue_broadcast: task readied -- preempts caller 12
|
|
*** END OF TEST 22 ***
|
|
|
|
*** TIME TEST 23 ***
|
|
rtems_timer_create 2
|
|
rtems_timer_fire_after: inactive 2
|
|
rtems_timer_fire_after: active 1
|
|
rtems_timer_cancel: active 1
|
|
rtems_timer_cancel: inactive 1
|
|
rtems_timer_reset: inactive 2
|
|
rtems_timer_reset: active 2
|
|
rtems_timer_fire_when: inactive 2
|
|
rtems_timer_fire_when: active 2
|
|
rtems_timer_delete: active 2
|
|
rtems_timer_delete: inactive 2
|
|
rtems_task_wake_when 13
|
|
*** END OF TEST 23 ***
|
|
|
|
*** TIME TEST 24 ***
|
|
rtems_task_wake_after: yield -- returns to caller 0
|
|
rtems_task_wake_after: yields -- preempts caller 9
|
|
*** END OF TEST 24 ***
|
|
|
|
*** TIME TEST 25 ***
|
|
rtems_clock_tick 10
|
|
*** END OF TEST 25 ***
|
|
|
|
*** TIME TEST 26 ***
|
|
_ISR_Disable 1
|
|
_ISR_Flash 0
|
|
_ISR_Enable 0
|
|
_Thread_Disable_dispatch 0
|
|
_Thread_Enable_dispatch 1
|
|
_Thread_Set_state 4
|
|
_Thread_Disptach (NO FP) 11
|
|
context switch: no floating point contexts 5
|
|
context switch: self 0
|
|
context switch: to another task 1
|
|
fp context switch: restore 1st FP task 5
|
|
fp context switch: save idle, restore initialized 1
|
|
fp context switch: save idle, restore idle 6
|
|
fp context switch: save initialized, restore initialized 1
|
|
_Thread_Resume 5
|
|
_Thread_Unblock 3
|
|
_Thread_Ready 2
|
|
_Thread_Get 0
|
|
_Semaphore_Get 0
|
|
_Thread_Get: invalid id 0
|
|
*** END OF TEST 26 ***
|
|
|
|
*** TIME TEST 27 ***
|
|
interrupt entry overhead: returns to interrupted task 1
|
|
interrupt exit overhead: returns to interrupted task 1
|
|
interrupt entry overhead: returns to nested interrupt 0
|
|
interrupt exit overhead: returns to nested interrupt 0
|
|
interrupt entry overhead: returns to preempting task 1
|
|
interrupt exit overhead: returns to preempting task 9
|
|
*** END OF TEST 27 ***
|
|
|
|
*** TIME TEST 28 ***
|
|
rtems_port_create 5
|
|
rtems_port_external_to_internal 1
|
|
rtems_port_internal_to_external 1
|
|
rtems_port_delete 4
|
|
*** END OF TEST 28 ***
|
|
|
|
*** TIME TEST 29 ***
|
|
rtems_rate_monotonic_create 8
|
|
rtems_rate_monotonic_period: initiate period -- returns to caller 14
|
|
rtems_rate_monotonic_period: obtain status 3
|
|
rtems_rate_monotonic_cancel 6
|
|
rtems_rate_monotonic_delete: inactive 7
|
|
rtems_rate_monotonic_delete: active 3
|
|
rtems_rate_monotonic_period: conclude periods -- caller blocks 15
|
|
*** END OF TEST 29 ***
|
|
|
|
|
|
*** TIME TEST OVERHEAD ***
|
|
rtems_shutdown_executive 0
|
|
rtems_task_create 0
|
|
rtems_task_ident 0
|
|
rtems_task_start 0
|
|
rtems_task_restart 0
|
|
rtems_task_delete 0
|
|
rtems_task_suspend 0
|
|
rtems_task_resume 0
|
|
rtems_task_set_priority 0
|
|
rtems_task_mode 0
|
|
rtems_task_wake_when 0
|
|
rtems_task_wake_after 0
|
|
rtems_interrupt_catch 0
|
|
rtems_clock_get 0
|
|
rtems_clock_set 0
|
|
rtems_clock_tick 0
|
|
<pause>
|
|
rtems_timer_create 0
|
|
rtems_timer_delete 0
|
|
rtems_timer_ident 0
|
|
rtems_timer_fire_after 0
|
|
rtems_timer_fire_when 0
|
|
rtems_timer_reset 0
|
|
rtems_timer_cancel 0
|
|
rtems_semaphore_create 0
|
|
rtems_semaphore_delete 0
|
|
rtems_semaphore_ident 0
|
|
rtems_semaphore_obtain 0
|
|
rtems_semaphore_release 0
|
|
rtems_message_queue_create 0
|
|
rtems_message_queue_ident 0
|
|
rtems_message_queue_delete 0
|
|
rtems_message_queue_send 0
|
|
rtems_message_queue_urgent 0
|
|
rtems_message_queue_broadcast 0
|
|
rtems_message_queue_receive 0
|
|
rtems_message_queue_flush 0
|
|
<pause>
|
|
rtems_event_send 0
|
|
rtems_event_receive 0
|
|
rtems_signal_catch 0
|
|
rtems_signal_send 0
|
|
rtems_partition_create 0
|
|
rtems_partition_ident 0
|
|
rtems_partition_delete 0
|
|
rtems_partition_get_buffer 0
|
|
rtems_partition_return_buffer 0
|
|
rtems_region_create 0
|
|
rtems_region_ident 0
|
|
rtems_region_delete 0
|
|
rtems_region_get_segment 0
|
|
rtems_region_return_segment 0
|
|
rtems_port_create 0
|
|
rtems_port_ident 0
|
|
rtems_port_delete 0
|
|
rtems_port_external_to_internal 0
|
|
rtems_port_internal_to_external 0
|
|
<pause>
|
|
rtems_io_initialize 0
|
|
rtems_io_open 0
|
|
rtems_io_close 0
|
|
rtems_io_read 0
|
|
rtems_io_write 0
|
|
rtems_io_control 0
|
|
rtems_fatal_error_occurred 0
|
|
rtems_rate_monotonic_create 0
|
|
rtems_rate_monotonic_ident 0
|
|
rtems_rate_monotonic_delete 0
|
|
rtems_rate_monotonic_cancel 0
|
|
rtems_rate_monotonic_period 0
|
|
rtems_multiprocessing_announce 0
|
|
*** END OF TIME OVERHEAD ***
|
|
```
|