util.c 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. #include "util.h"
  2. #include "comdef.h"
  3. //#include "stdio.h"
  4. #include "encoding.h"
  5. //unsigned int funcpll_432 = 0;
  6. //unsigned int osc_clk = 0;
  7. /*===========================================================================
  8. FUNCTION: sys_memcpy
  9. DESCRIPTION:
  10. copy one block memory to another position
  11. INPUT PARAMETER:
  12. void *p_des: destination address
  13. const void * p_src: source address
  14. unsigned long size: length of memory to copy (unit is byte)
  15. OUTPUT PARAMETER:
  16. RETURN VALUE:
  17. ===========================================================================*/
  18. extern unsigned int test_flag;
  19. void * sys_memcpy(void *p_des,const void * p_src,unsigned long size)
  20. {
  21. char *tmp = p_des;
  22. const char *s = p_src;
  23. while (size--)
  24. *tmp++ = *s++;
  25. return p_des;
  26. }
  27. int sys_memcmp(const void * cs,const void * ct,unsigned int count)
  28. {
  29. const unsigned char *su1, *su2;
  30. int res = 0;
  31. for( su1 = cs, su2 = ct; 0 < count; ++su1, ++su2, count--)
  32. if ((res = *su1 - *su2) != 0)
  33. break;
  34. return res;
  35. }
  36. void * _memcpy(void * dest,const void *src,unsigned int count)
  37. {
  38. char *tmp = (char *) dest;
  39. const char *s = (char *) src;
  40. while (count--)
  41. *tmp++ = *s++;
  42. return dest;
  43. }
  44. /*===========================================================================
  45. FUNCTION: sys_memcpy_32
  46. DESCRIPTION:
  47. copy one block memory to another position
  48. caller guarantee the src/des address are DWORD allign
  49. INPUT PARAMETER:
  50. void *p_des: destination address
  51. const void * p_src: source address
  52. unsigned long size: length of memory to copy (unit is DWORD)
  53. OUTPUT PARAMETER:
  54. RETURN VALUE:
  55. ===========================================================================*/
  56. void sys_memcpy_32(void *p_des,const void * p_src,unsigned long size)
  57. {
  58. unsigned long i;
  59. for (i=0;i<size;i++)
  60. *((unsigned long*)p_des+i) = *((unsigned long*)p_src+i);
  61. }
  62. /*===========================================================================
  63. FUNCTION: sys_memset
  64. DESCRIPTION:
  65. fill memory with specifed value
  66. INPUT PARAMETER:
  67. void *p_des: destination address
  68. int c: value to set
  69. unsigned long size: length of memory
  70. OUTPUT PARAMETER:
  71. RETURN VALUE:
  72. ===========================================================================*/
  73. void sys_memset(void *p_des,unsigned char c,unsigned long size)
  74. {
  75. unsigned long i;
  76. for (i=0;i<size;i++)
  77. *((char*)p_des+i) = c;
  78. }
  79. /*===========================================================================
  80. FUNCTION: sys_memset32
  81. DESCRIPTION:
  82. fill memory with specifed value
  83. INPUT PARAMETER:
  84. void *p_des: destination address
  85. int c: value to set
  86. unsigned long size: length of memory in word(32bit)
  87. OUTPUT PARAMETER:
  88. RETURN VALUE:
  89. ===========================================================================*/
  90. void sys_memset32(void *p_des,int c,unsigned long size)
  91. {
  92. unsigned long i;
  93. for(i=0; i< size; i++)
  94. ((unsigned long*)p_des)[i] = c;
  95. }