📄 readmacaddressfromflash.c
字号:
#include "vxWorks.h"
#include "stdio.h"
#include "types.h"
#include "iosLib.h"
#include "errnoLib.h"
#include "dosFsLib.h"
#include "time.h"
#include "ctype.h"
#define bool int
#define false 0
#define true 1
#define PARAMETER_BASE 0x50FC0000
#define CONFIG_SPACE_SIZE 0x1000
/*unsigned char flash_config_image[CONFIG_SPACE_SIZE];*/
unsigned char *flash_config_base = (unsigned char *)PARAMETER_BASE;
bool SearchStringInFlashConfigSpace(unsigned char *string, unsigned char *BeginOfMemory, unsigned int SizeOfMemory, unsigned int *offset );
unsigned int SizeOfString(unsigned char *string);
bool LookupParameterAccordingToKey(unsigned char *key, unsigned int *offset)
{
if(!SearchStringInFlashConfigSpace(key, flash_config_base, CONFIG_SPACE_SIZE,offset))
{
return false;
}
else
{
return true;
}
}
/*
* Function : Get the end pointer of string in memory.
*
* Return value : The pointer of string end, if the string can be searched in the memory.
* NULL, if the string can not searched in the memory.
*/
bool SearchStringInFlashConfigSpace
(unsigned char *string,
unsigned char *BeginOfMemory,
unsigned int SizeOfMemory,
unsigned int *offset
)
{
unsigned int st = 0;
unsigned char *ptr;
unsigned int i=0,j=0;
unsigned len = SizeOfString(string);
if(len == 0)
return false;
for(i=0;i<(CONFIG_SPACE_SIZE-len-1);i++)
{
ptr = (unsigned char *)( BeginOfMemory+i);
for(j=0;j<len;j++)
{
if(*(ptr+j) != *(string+j))
break;
}
if(j == len)
{
*offset = (i+len+1);
return true;
}
}
return false;
}
unsigned int SizeOfString(unsigned char *string)
{
unsigned int len=0;
unsigned char *ptr = string;
while(*ptr++)
len++;
return len;
}
int GetMac(unsigned char *key, unsigned char address[6])
{
unsigned int tmp, temp;
if(LookupParameterAccordingToKey(key, &tmp))
{
address[0] = *(flash_config_base + tmp);
address[1] = *(flash_config_base + tmp+1);
address[2] = *(flash_config_base + tmp+2);
address[3] = *(flash_config_base + tmp+3);
address[4] = *(flash_config_base + tmp+4);
address[5] = *(flash_config_base + tmp+5);
return 0;
}
else
return -1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -