📄 main.c.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 + -