/内存申请/
void os_memset(uint8_t *buf, uint8_t val, uint32_t len)
{
while(len--)
{
*buf++ = val;
}
}
/内存复制/
void os_memcpy(uint8_t *dst, uint8_t *src, uint32_t len)
{
uint8_t *p_dst= (uint8_t *)dst;
uint8_t *p_src= (uint8_t *)src;
while(len--)
{
*p_dst++ = *p_src++;
}
}
void os_memcpy32(uint32_t *dst, uint32_t *src, uint32_t len)
{
os_assert
uint32_t *p1=(uint32_t *)dst;
uint32_t *p2=(uint32_t *)src;
while (len)
{
*p1++ = *p2++;
if(len>=4)
len-=4;
else
len=0;
}
}
/*字符串比较*/
int os_strcmp(const uint8_t *str, const uint8_t *ptr)
{
while(*ptr!='\0')
{
if(*str!= *ptr) return 0;
++str;
++ptr;
}
if(*str=='\0')
return 1;
else
return 0;
}
/*在母字符串找子字符串*/
char os_strstr(char *str1, char *str2)
{
char *pstr1 = str1;
char *pstr2 = str2;
while(*str1 != '\0')
{
pstr1 = str1;
pstr2 = str2;
do{if(*pstr2 == '\0')return str1;}
while(*pstr1++ == *pstr2++);
str1++;
}
return NULL;
}
/*字符串复制*/
void os_strcpy(char *dst, char *src)
{
char *p_dst = dst;
while(*src != '\0') *p_dst++ = *src++;
}
/多次方/
int os_pow(uint32_t x,uint32_t y)
{
int result=1;
int i;
for(i=0;i<y;i++) result *= x;
return result;
}
/指定内存容量字符串复制/
char *os_strncpy(char *s, const char *t, unsigned int n)
{
char *p = s;
unsigned int i = 0;
if (!s) return s;
while (t && i < n)
{
*s++ = *t++;
i++;
}
if (!t)
{
do *s++ = '\0';
while (i++ < n);
}
return p;
}
/字符串拼接/
void os_strcat(char *dst, char *src)
{
char *p_dst = dst;
while(*p_dst != '\0')
{
p_dst++;
}
while(*src != '\0') *p_dst++ = *src++;
}
/字符数组比较/
char os_chararray_cmp(uint8_t *s1, uint8_t *s2, uint8_t len)
{
uint8 i;
for(i = 0; i < len; i ++)
if(s1[i] > s2[i]) return 1;
else if(s1[i] < s2[i]) return 2;
return 0;
}
/字符串占用空间/
int os_sizeof(const uint8_t *str)
{
int size=0;
while(*str != '\0')
{
size++;
str++;
}
return size;
}
/字符串长度/
int os_strlen(const uint8_t *str)
{
int len = 0;
while(str[len] != '\0') ++len;
return len;
}
/加减法函数/
int os_add_sub(bool flag,uint32_t a,uint32_t b)
{
if(!flag)
{
return a-b;
}
else
{
return a+b;
}
}
/特定数组里找值/
int *os_findvalue(int *start,int *end,int value)
{
while((start != end) && (*start != value)
++start;
return start;
}
int *os_maxvalue(uint32_t *p1,uint32_t *p2)
{
if(*p1 > *p2) return p1;
else return p2;
}
/数据交换函数/
void os_swap(uint32_t *p1,uint32_t *p2)
{
int temp;
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
/判断是否是16进制/
int os_isxdigit(uint8_t ch)
{
if((ch>='0' && ch<='9') || (ch>='a' && ch<='f') || (ch>='A' && ch<='F'))
return 1;
else
return 0;
}