⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c.svn-base

📁 realtek的8186芯片ADSL路由AP源代码
💻 SVN-BASE
字号:
#include "board.h"
//#include "uart.h"

extern unsigned char _binArrayStart[];
extern unsigned char _binArrayEnd;
unsigned int decompress_file(unsigned long Source, unsigned long Dest, unsigned long Length);
unsigned char *uncompressedStart = LOADER3_START;

/* compilier will be happy.. */
#ifndef memcpy
void memcpy(dest, source, len)
    unsigned char* dest;
    const unsigned char* source;
    unsigned int  len;
{
    if (len == 0) return;
    do {
        *dest++ = *source++; /* ??? to be unrolled */
    } while (--len != 0);
}
#endif

#ifndef memcmp
int memcmp(s1, s2, len)
    const unsigned char* s1;
    const unsigned char* s2;
    unsigned int  len;
{
    unsigned int j;

    for (j = 0; j < len; j++) {
        if (s1[j] != s2[j]) return 2*(s1[j] > s2[j])-1;
    }
    return 0;
}
#endif

#ifndef memset
void memset(dest, val, len)
    unsigned char* dest;
    int val;
    unsigned int  len;
{
    if (len == 0) return;
    do {
        *dest++ = val;  /* ??? to be unrolled */
    } while (--len != 0);
}
#endif


void C_Entry( void )
{
	int ret;
	unsigned int comprLen;
	int uncompressedLength;
	
	/* initialize UART for debug message*/	
    //initUart( 115200 );

	//puts("Start to decompress!\n\r");
	/* infate RAM file */
	comprLen = (unsigned int)&_binArrayEnd - (unsigned int)_binArrayStart;
	//ret = uncompress(uncompressedStart, &uncompressedLength, _binArrayStart, comprLen);
	//ret = decompress_file(_binArrayStart, uncompressedStart, comprLen);
	ret = uncompressLZMA(uncompressedStart, &uncompressedLength, _binArrayStart, comprLen);
	if(!ret)
	{
	void (*appStart)(void);
		//puts("jump to decompressed program!\n\r");
		/* jump to decompressed program */
		appStart = (void*)uncompressedStart;
		appStart();
	}
	else
	{
		/* error and hang */
		//puts("Decompress Loader Error!\n\r");
		while(1);
	}
}

⌨️ 快捷键说明

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