#include <nitro/os/common/systemCall.h>
SVC_CpuCopy( srcp, destp, size, bit );
SVC_CpuCopyArray( srcp, destp, bit );
SVC_CpuCopyFast( srcp, destp, size );
SVC_CpuCopyArrayFast( srcp, destp );
(These are macros.)
srcp | source address |
destp | destination address |
size | number of bytes transferred |
bit | Transmit bit width (16 or 32) |
None.
Uses the CPU to perform memory copy Because these are macros, if srcp and destp are pointers, the type will not be limited. The size
is in u32
format. Only 16 or 32 bits can be specified.
The difference from MI_CpuCopy*()
is that because SVC_CpuCopy*()
operates with system ROM, it operates with half the frequency of operating with cache or TCM. However, if cache is valid, there is no difference with the loop, and the difference will be the generation of overhead for calling SVC function. The methods of specifying argument are different each other. If it is possible to describe with either function, it would be better to use MI_CpuCopy*()
instead of SVC_CpuCopy*()
if there is no particular reason to use this.
SVC_CpuCopy()
copies size
bytes of data from the address shown by srcp
to the address designated by destp
. When the transmit bit is set to 16, you must align srcp
and destp
to a 2-byte boundary; when the transmit bit is 32, you must align srcp
and destp
to a 4-byte boundary.
SVC_CpuCopyArray()
is SVC_CpuCopy()
with transmit size set to sizeof( srcp )
. In other words, it is the same as:
SVC_CpuCopy( srcp, destp, sizeof( srcp ), bit )
.
SVC_CpuCopyFast()
quickly copies size
bytes of data from the address shown by srcp
to the address shown by destp
. The writing size must be a multiple of 4. It quickly writes in units of 32 bytes and the remainder is in units of 4 bytes. You must align srcp
and destp
to a 4-byte boundary.
SVC_CpuCopyArrayFast()
is SVC_CpuCopyFast()
with the transmit size set to sizeof( srcp )
. In other words, it is the same as:
SVC_CpuCopyFast( srcp, destp, sizeof(srcp) )
.
Calls system call.
MI_CpuCopy*
, MI_DmaCopy*
, SVC_CpuClear*
07/20/2004 Changed the condition for the transfer size of SVC_CpuClearFast()
from a multiple of 32 bytes to a multiple of 4 bytes.
03/29/2004 Indicated that system call is used.
01/18/2004 Initial Version