util.c

来自「μC/OS-II实验程序说明 软件版本:V1.0 日期:2005-05-」· C语言 代码 · 共 44 行

C
44
字号
#include "util.h"

unsigned int getpackedlong(void *lbuf)
{
	unsigned char *p_buf;
	unsigned int r_buf;
	
	p_buf = (unsigned char *)lbuf;
    r_buf = p_buf[0] + ((unsigned int)p_buf[1]<<8) + ((unsigned int)p_buf[2]<<16) + ((unsigned int)p_buf[3]<<24);
	
	return r_buf;
}

unsigned short csum(void *dp, unsigned short count)
{
    unsigned int total=0L;
    unsigned short n, *p, carries;

    n = count / 2;
    p = (unsigned short *)dp;
    while (n--)
        total += *p++;
    if (count & 1)
        total += (*(unsigned char *)p);
    while ((carries = (unsigned short)(total >> 16)) != 0)
        total = (total & 0xffffL) + carries;
    return((unsigned short)total);
}

unsigned short swapw(unsigned short w)
{	
	unsigned short s_w;
    s_w = ((w<<8)&0xff00) | ((w>>8)&0x00ff);
    return s_w;
}


unsigned int swapl(unsigned int lw)
{
	unsigned int s_lw;
    s_lw = ((lw<<24)&0xff000000) | ((lw<<8 )&0x00ff0000) | ((lw>>8 )&0x0000ff00) | ((lw>>24)&0x000000ff);
    return s_lw;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?