This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
resources:tools-software:linuxdsp:docs:linux-kernel-and-drivers:mcapi:mcapi_introduction [26 Jul 2020 05:10] – [MCAPI Linux demos] Sunny Feng | resources:tools-software:linuxdsp:docs:linux-kernel-and-drivers:mcapi:mcapi_introduction [01 Sep 2020 11:37] (current) – jian chen | ||
---|---|---|---|
Line 5: | Line 5: | ||
This example involves two following parts: | This example involves two following parts: | ||
- | |||
* Baremetal: MCAPI Baremetal CCES projects run on SHARC 1 core and shrac 2 core | * Baremetal: MCAPI Baremetal CCES projects run on SHARC 1 core and shrac 2 core | ||
* Linux: Linux MCAPI demo examples run on ARM core | * Linux: Linux MCAPI demo examples run on ARM core | ||
There are 3 MCAPI inter-operability demos included in the libmcapi tests, currently we only support msg demo: | There are 3 MCAPI inter-operability demos included in the libmcapi tests, currently we only support msg demo: | ||
- | |||
* msg (unconnected message protocol) | * msg (unconnected message protocol) | ||
* sclchan (connected scalar channel protocol) – unsupported | * sclchan (connected scalar channel protocol) – unsupported | ||
* pktchan (connected packet channel protocol) | * pktchan (connected packet channel protocol) | ||
- | There are 2 ways to load the MCAPI baremetal project: | ||
- | For more information about " | ||
- | For more information about " | + | There are 2 ways to load the MCAPI baremetal project: |
+ | |||
+ | For more information about "**loaded by Remoteproc**", | ||
+ | For more information about "**loaded by ICE1000 in CCES**", please refer to '' | ||
===== MCAPI Baremetal test examples ===== | ===== MCAPI Baremetal test examples ===== | ||
- | You can get the MCAPI Baremetal test examples code after installing | + | The MCAPI example for ARM core (Running Linux) is included in the YOCTO, and you can get the MCAPI example for SHARC+ Cores from the gitbub [[https://bitbucket.analog.com/projects/ |
+ | |||
+ | The examples code in " | ||
===== MCAPI Linux demos ===== | ===== MCAPI Linux demos ===== | ||
- | After buildroot has been compiled, | + | The MCAPI example for ARM core (Running Linux) is included in the YOCTO through the package " |
- | Once the linux boot finished, one command for MCAPI demo test can be found in linux, you are able to use " | + | Once the linux boot finished, one command for MCAPI demo test can be found in linux, you are able to use "//**arm_sharc_msg_demo -h**//" to get more information about the command: |
< | < | ||
# arm_sharc_msg_demo -h | # arm_sharc_msg_demo -h | ||
Line 43: | Line 44: | ||
" | " | ||
- | Each mode means the different ways to do message transaction between two endpoints using different MCAPI APIs we supported(MCAPI APIs Support in Linux Add-in 1.2.0), and you can choose the way by " | + | Each mode means the different ways to do message transaction between two endpoints using different MCAPI APIs we supported, and you can choose the way by " |
^ Options ^ Descrition | ^ Options ^ Descrition | ||
- | | + | |
- | : |mode 0 |nonblocking | + | |
- | : |mode 1 |nonblocking send |mcapi_test() | + | :mode 0 |nonblocking |
- | : |mode 2 |nonblocking send |mcapi_wait() |nonblocking recv | + | :mode 1 |nonblocking send |
- | :|mode 3 |blocking send | |blocking recv | + | :mode 2 |nonblocking send |
- | ;|**-t, | + | :mode 3 |blocking send |blocking recv |
- | :|Timeout value is used to set the maximum wait time for wait and blocking function | + | ; |
- | ;|**-r, | + | :Timeout value is used to set the maximum wait time for wait and blocking function |
- | :|Round is the number of rounds you want to test, since the total number of check round in MCAPI baremetal test example | + | ; |
+ | :Round is the number of rounds you want to test, the default | ||
\\ | \\ | ||
- | ===== Performance of MCAPI ===== | + | ---- |
- | The test method of the performance data of MCAPI is to measure the time required of doing message transactions about 1000 rounds between 2 endpoints on ARM and SHARC, and one round includes sending and receiving one message for each endpoint, | + | **BACK TO** [[resources/ |
- | + | ||
- | ==== Dependencies ==== | + | |
- | + | ||
- | There are many influences in measuring the MCAPI performance: | + | |
- | + | ||
- | Different platform We' | + | |
- | System load We assume that the system load should be normal, | + | |
- | MCAPI operation mode | + | |
- | + | ||
- | + | ||
- | ==== Result ==== | + | |
- | + | ||
- | Below table is the interval time of 1000 rounds message transaction under different conditions: | + | |
- | + | ||
- | + | ||
- | + | ||
- | ^Board | + | |
- | |sc589-ezkit | + | |
- | |sc584-ezkit |188.72ms |180.95ms |176.29ms |145.65ms | + | |
- | |sc573-ezkit |191.28ms |184.99ms |178.85ms |147.92ms | + |