NUC972平台学习笔记之Boot 启动过程


972平台终端Boot 启动流程

选择核心架构arm926,调用start.s 初始化ctr0后跳转对应main

arch/arm/cpu/arm926ejs/start.S
arch/arm/lib/crt0.S

然后跳转到对应的board_init,在board_init自定义添加液晶显示驱动和界面

board/nuvoton/nuc970/nuc970.c


#include 

#define	  LCD_CD		GPIO_PB15
#define	  LCD_RST		GPIO_PB14
#define	  EL_DEV		GPIO_PG4  //lcd 背光 
#define	ST75161_CTRL 	0//写命令
#define	ST75161_DATA 	1//写数据

struct spi_slave *slavelcd;
int spi_lcd_cmd_write(struct spi_slave *sa, const u8 *cmd, size_t cmd_len,const void *data, size_t data_len)
{
	unsigned long flags = SPI_XFER_BEGIN;
	int ret = 0;

	// if (data_len == 0)
	// 	flags |= SPI_XFER_END;
	gpio_request(LCD_CD, "LCD_CD");
	if (cmd_len)
	{
		gpio_direction_output(LCD_CD,ST75161_CTRL);

		ret = spi_xfer(sa, cmd_len * 8, cmd, NULL, flags);
		if (ret) 
				debug("SF: Failed to send read command (%zu bytes): %d\n",cmd_len, ret);
	}

	if (data_len)
	{
		gpio_direction_output(LCD_CD,ST75161_DATA);

		ret = spi_xfer(sa, data_len * 8, data, NULL, flags);
		if (ret)
			debug("SF: Failed to read %zu bytes of data: %d\n",
					data_len, ret);
	}

	gpio_free(LCD_CD);
	return ret;

}
void uc1608lcd_init_n(void){
	int ret;
	unsigned char initbuf[128],index = 0;
	slavelcd = spi_setup_slave(0,1,5000000,SPI_MODE_0|SPI_CS_HIGH);
	if (!slavelcd)
	{
		printf("SF: Failed to set up slave\n");
		return ;
	}

	ret = spi_claim_bus(slavelcd);
	if (ret) {
		printf("SF: Failed to claim SPI bus: %d\n", ret);
		spi_free_slave(slavelcd);
		return ;
	}
	gpio_request(LCD_CD, "LCD_CD");
	gpio_request(LCD_RST, "LCD_RST");
	gpio_request(EL_DEV, "EL_DEV");
	gpio_direction_output(LCD_CD,1);
	gpio_free(LCD_CD);
	gpio_direction_output(LCD_RST,0);
	udelay(1000);
	gpio_direction_output(LCD_RST,1);
	udelay(1000);

	initbuf[index++]=0xE2;
	initbuf[index++]=0xAE;	//display off 
	initbuf[index++]=0X27;	//Set Temperature Compensation (11-0.25%)
	initbuf[index++]=0X2B;	//Set Power Control (Interal VLCD;Panel loading definition>13nF)
	initbuf[index++]=0XEB;	//Set LCD Bias ratio:3/11B
	initbuf[index++]=0X81;	//Set gain and potentiometer Mode                             
	initbuf[index++]=0X76;	//Program Gain:01;VLCD=(CV0+Cpm*pm)*(1+(T-25)*CT%) 
	initbuf[index++]=0x40;	//*set scroll line LSB
	initbuf[index++]=0x50;	//*set scroll line MSB
	initbuf[index++]=0X89;	//Set RAM Address Control 
	initbuf[index++]=0x90;	//*set fixed lines (double-byte command)
	initbuf[index++]=0x00;	//*default 0
	initbuf[index++]=0xa4;	//*set all-pixel-on
	initbuf[index++]=0xa6;	//*set inverse display
	initbuf[index++]=0XC4;	//Set LCD Maping Control (MY=1, MX=0) 
	initbuf[index++]=0xc8;	//* set n-line inversion
	initbuf[index++]=0x1d;	//*default 1dh
	initbuf[index++]=0XDE;	//Set COM Scan Function 
	initbuf[index++]=0XC8;	//Set N-Line Inversion  
	initbuf[index++]=0X18;	//Set COM Scan Function 
	initbuf[index++]=0XA1;	//Set Line Rate   
//	initbuf[index++]=0XD6;	//Set Color Mode (64K)   
	initbuf[index++]=0XD5;	//设置数据位数为12位 RRRR-GGGG-BBBB
	initbuf[index++]=0XD1;	//Set Color Pattern (RGB)  
	initbuf[index++]=0xF1;	//*set com end (double-byte comman )
	initbuf[index++]=159;	//*default 159
	initbuf[index++]=0X84;	//Set Partial Display Off 
//-----------------
initbuf[index++] = 0xf4;
	initbuf[index++] = 0x25;
	initbuf[index++] = 0xf6;
	initbuf[index++] = 61;
	initbuf[index++] = 0xf5;
	initbuf[index++] = 160;
	initbuf[index++] = 0xf7;
	initbuf[index++] = 159;
//------------- 
	initbuf[index++]=0xAD;
	initbuf[index++]=0x00;
	spi_lcd_cmd_write(slavelcd,initbuf,index,NULL,0);
	gpio_direction_output(EL_DEV,1);
	
	printf("@@@@@@@@@@@@init uc1608 lcd ok len=%d\n",index);
}
void UC1608lcd_init_one(void){
	int ret;
	unsigned char flag[1],ii=0;
	printf("this is uc1608lcd init one\n");
gpio_direction_output(EL_DEV,1);
	slavelcd = spi_setup_slave(0,1,5000000,SPI_MODE_0|SPI_CS_HIGH);
	if (!slavelcd)
	{
		printf("SF: Failed to set up slave\n");
		return ;
	}

	ret = spi_claim_bus(slavelcd);
	if (ret) {
		printf("SF: Failed to claim SPI bus: %d\n", ret);
		spi_free_slave(slavelcd);
		return ;
	}
	gpio_request(LCD_CD, "LCD_CD");
	gpio_request(LCD_RST, "LCD_RST");
	gpio_request(EL_DEV, "EL_DEV");
	gpio_direction_output(LCD_CD,1);
	gpio_free(LCD_CD);
	gpio_direction_output(LCD_RST,0);
	udelay(100000);
	gpio_direction_output(LCD_RST,1);
	udelay(100000);
	udelay(100000);
	
	flag[0] = 0x25;//设置温度补偿系数-0.05%/C (0x24 0x25 0x26 0x27)
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
	flag[0] = 0x2b;	//内部DC/DC	
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
	flag[0] = 0xc4;	//LCD映像 MY=1 MX=0 LC0=0
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
	flag[0] = 0xa1;	//设置行扫描频率 FR=62.5Hz
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
	flag[0] = 0xd1;	//彩色数据格式 R-G-B
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
	flag[0] = 0xd5;	//设置数据位数为12位 RRRR-GGGG-BBBB

spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
	flag[0] = 0xc8;
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
//	initbuf[index++] = 0x00;//设置M信号为帧翻转
	flag[0] = 0x1f;//设置M信号为帧翻转
//	flag[0] = 0x00;//设置M信号为帧翻转
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
//	flag[0] = 0xf1;//
//spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
//	flag[0] = 159;//set duty1/160
//spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);

	flag[0] = 0xe9;	//设置偏压比 1/10
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
	flag[0] = 0xa6;	//正性显示
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
	flag[0] = 0xa4;	//正常显示
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
	flag[0] = 0x81;
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
	flag[0] = 176;//设置对比度bf
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
	flag[0] = 0xd8;	//设置扫描模式
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
	
//----------------------------------------------
	flag[0] = 0xf4;
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
	flag[0] = 0x25;
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
	flag[0] = 0xf6;
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
	flag[0] = 61;
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
	flag[0] = 0xf5;
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
	flag[0] = 160;
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
	flag[0] = 0xf7;
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
	flag[0] = 159;
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
flag[0] = 0xad;	//开显示
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
//***************************************************
gpio_direction_output(EL_DEV,1);
//while(1){
//spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
//	flag[0] = 0x81;
//spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
//	flag[0] = 0x55;//设置对比度bf
//udelay(20000);
//printf("uc1608lcd ii=%d\n",ii);
//}
gpio_direction_output(EL_DEV,1);
}
void UC1608lcd_init(void){
	int ret;
	unsigned char initbuf[128],index = 0;
	slavelcd = spi_setup_slave(0,1,2000000,SPI_MODE_0|SPI_CS_HIGH);
	if (!slavelcd)
	{
		printf("SF: Failed to set up slave\n");
		return ;
	}

	ret = spi_claim_bus(slavelcd);
	if (ret) {
		printf("SF: Failed to claim SPI bus: %d\n", ret);
		spi_free_slave(slavelcd);
		return ;
	}
	gpio_request(LCD_CD, "LCD_CD");
	gpio_request(LCD_RST, "LCD_RST");
	gpio_request(EL_DEV, "EL_DEV");
	gpio_direction_output(LCD_CD,1);
	gpio_free(LCD_CD);
	gpio_direction_output(LCD_RST,0);
	mdelay(10);
	gpio_direction_output(LCD_RST,1);
	mdelay(300);
//************************************************
	initbuf[index++] = 0x25;//设置温度补偿系数-0.05%/C (0x24 0x25 0x26 0x27)
	initbuf[index++] = 0x2b;	//内部DC/DC	
	initbuf[index++] = 0xc4;	//LCD映像 MY=1 MX=0 LC0=0
	initbuf[index++] = 0xa1;	//设置行扫描频率 FR=62.5Hz
	initbuf[index++] = 0xd1;	//彩色数据格式 R-G-B
	initbuf[index++] = 0xd5;	//设置数据位数为12位 RRRR-GGGG-BBBB
	initbuf[index++] = 0xc8;
	initbuf[index++] = 0x00;//设置M信号为帧翻转
//	initbuf[index++] = 0x1f;//设置M信号为帧翻转

//	initbuf[index++] = 0xf1;//
//	initbuf[index++] = 159;//set duty1/160

	initbuf[index++] = 0xe9;	//设置偏压比 1/10
	initbuf[index++] = 0xa6;	//正性显示
	initbuf[index++] = 0xa4;	//正常显示
	initbuf[index++] = 0x81;
	initbuf[index++] = 175;//设置对比度bf
	initbuf[index++] = 0xd8;	//设置扫描模式
//	initbuf[index++] = 0xad;	//开显示
//----------------------------------------------
	initbuf[index++] = 0xf4;
	initbuf[index++] = 0x25;
	initbuf[index++] = 0xf6;
	initbuf[index++] = 0x5a;
	initbuf[index++] = 0xf5;
	initbuf[index++] = 0;
	initbuf[index++] = 0xf7;
	initbuf[index++] = 0x9f;
//***************************************************
	initbuf[index++] = 0xad;	//开显示
	spi_lcd_cmd_write(slavelcd,initbuf,index,NULL,0);
	mdelay(10);
	gpio_direction_output(EL_DEV,1);
//	printf("==>init uc1608 lcd ok len=%d\n",index);
	mdelay(10);
}
#if 0
void ST75161lcd_init(void){
	int ret;
	unsigned char vop_num=0x29;
	unsigned char	xxx[20];
	slavelcd = spi_setup_slave(0,1,1600000,SPI_MODE_0|SPI_CS_HIGH);
	if (!slavelcd)
	{
		printf("SF: Failed to set up slave\n");
		return ;
	}

	ret = spi_claim_bus(slavelcd);
	if (ret) {
		printf("SF: Failed to claim SPI bus: %d\n", ret);
		spi_free_slave(slavelcd);
		return ;
	}
	gpio_request(LCD_CD, "LCD_CD");
	gpio_request(LCD_RST, "LCD_RST");
	gpio_request(EL_DEV, "EL_DEV");
	gpio_direction_output(LCD_CD,1);
	gpio_direction_output(LCD_RST,0);
	udelay(1000);
	gpio_direction_output(LCD_RST,1);
	xxx[0]=0x31;//EXT=1
	xxx[1]=0xd7;//Disable Auto Read
	spi_lcd_cmd_write(slavelcd,xxx,2,NULL,0);
	xxx[0]=0x9f;
	spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);
	xxx[0]=0xe0;
	spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);
	xxx[0]=0x00;
	spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);
	udelay(10000);
	xxx[0]=0xe3;
	spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);
	udelay(20000);
	xxx[0]=0xe1;// OTP Control Out
	xxx[1]=0x30;// EXT=0
	xxx[2]=0x94;// Sleep out
	xxx[3]=0xae;// Display off
	xxx[4]=0xd1;
	spi_lcd_cmd_write(slavelcd,xxx,5,NULL,0);
	udelay(50000);
	xxx[0]=0x20;
	spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);
	xxx[0]=0xb;
	spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);
	udelay(100000);
	xxx[0]=0x81;
	spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);
	xxx[0]=vop_num;
	spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);
	xxx[0]=4;
	spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);
	xxx[0]=0x31;
	xxx[1]=0x20;
	spi_lcd_cmd_write(slavelcd,xxx,2,NULL,0);
	xxx[0]=0x00;
    xxx[1]=0x00;
    xxx[2]=0x00;
    xxx[3]=0x17;   	//Light Gray Level Setting 
    xxx[4]=0x17;    	//Light Gray Level Setting 
    xxx[5]=0x17;    	//Light Gray Level Setting 
    xxx[6]=0x00;
    xxx[7]=0x00;
    xxx[8]=0x1d;     	//Dark Gray Level Setting 
    xxx[9]=0x00;
    xxx[10]=0x00;
    xxx[11]=0x1d;     	//Dark Gray Level Setting 
    xxx[12]=0x1d;    	//Dark Gray Level Setting 
    xxx[13]=0x1d;     	//Dark Gray Level Setting 
    xxx[14]=0x00;
    xxx[15]=0x00;
	spi_lcd_cmd_write(slavelcd,NULL,0,xxx,16);
	xxx[0] = 0x31;
	xxx[1] = 0x32;
	spi_lcd_cmd_write(slavelcd,xxx,2,NULL,0);
	xxx[0] = 0;
	xxx[1] = 1;
	xxx[2] = 3;
	spi_lcd_cmd_write(slavelcd,NULL,0,xxx,3);
	xxx[0] = 0x51;
	spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);// Booster Level x10
	xxx[0] = 0xfb;
	spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);
	xxx[0] = 0x30;
	spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);// EXT=0
	xxx[0] = 0xf0;
	spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);// Display Mode
	xxx[0] = 0x10;
	spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);// 10H=Monochrome Mode,11H=4Gray
	xxx[0] = 0xc;
	spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);
	xxx[0] = 0xca;
	spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);// Display Control
	xxx[0]= 0;
	xxx[1]= 0x9f;
	xxx[2]= 0;
	spi_lcd_cmd_write(slavelcd,NULL,0,xxx,3);
	xxx[0] = 0xbc;
	spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);// Data Scan Direction
	xxx[0] = 0x00;
	spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);
	xxx[0]=0xa6;
	xxx[1]=0x31;
	xxx[2]=0x40;
	xxx[3]=0xf0;
	spi_lcd_cmd_write(slavelcd,xxx,4,NULL,0);
	xxx[0]=2;
	xxx[1]=3;
	xxx[2]=0x12;
	xxx[3]=0x1c;
	spi_lcd_cmd_write(slavelcd,NULL,0,xxx,4);
	xxx[0] = 0xf2;
	spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);// Temperature Range
	xxx[0]=9;
	xxx[1]=0x14;
	xxx[2]=0x52;
	spi_lcd_cmd_write(slavelcd,NULL,0,xxx,3);
	xxx[0] = 0xf4;
	spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);// Temperature Gradient Compensation
	xxx[0]=0;
	xxx[1]=0;
	xxx[2]=0;
	xxx[3]=0;
	xxx[4]=0x10;
	xxx[5]=0x53;
	xxx[6]=0x56;
	xxx[7]=0x53;
	spi_lcd_cmd_write(slavelcd,NULL,0,xxx,8);
	xxx[0]=0x31;
	xxx[1]=0x40;
	xxx[2]=0x30;
	xxx[3]=0x15;
	spi_lcd_cmd_write(slavelcd,xxx,4,NULL,0);
	xxx[0] = 0x00;
	spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);//Starting column address
	xxx[0] = 0x9f;
	spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);//Ending column address
	xxx[0] = 0x75;
	spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);//Row Address Setting 
	xxx[0] = 0x00;
	spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);//Starting page address
	xxx[0] = 0x27;
	spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);//Ending page address
	xxx[0] = 0xaf;
	spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);
	gpio_direction_output(EL_DEV,1);
//	printf("@@@@@@@@@@@@init lcd ok\n");
}
#endif

unsigned char LCDBuffer1[3200]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x3C,0x80,0x83,0x03,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xE0,0x7F,0x80,0x03,0x07,0x00,0xE0,0x00,0x00,0x00,0x07,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x03,0xC0,0x01,0xC7,0xC0,0xE0,
0x30,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0xC0,
0xF9,0xFF,0xC1,0xFF,0x7F,0x00,0x18,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x78,0x00,0xE0,0x1C,0x07,0xC0,0x01,0x70,0xF8,0x3F,0x07,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x60,0x9E,0x07,0xC0,0x01,0x70,0x10,0x00,0xC7,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x3E,0x70,0x8E,0x09,0xC0,0x01,
0x70,0x00,0xE0,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0x07,0xF8,
0xC7,0x38,0xC0,0x01,0x70,0x00,0x30,0xE7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0xFF,0x03,0xB8,0x63,0xF0,0xC0,0xFF,0x7F,0xF8,0x7F,0xE7,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xF1,0x06,0x80,0xF1,0xFF,0xC0,0x01,0x70,0x80,0x03,0xE7,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x1C,0xC0,0xF0,0xDF,0xC0,0x01,
0x00,0x80,0x03,0xE7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x78,0xE0,
0xF0,0xDD,0xC0,0x07,0x30,0xC0,0x01,0xE7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xC0,0xFF,0xFF,0xF8,0xCF,0x1D,0xC0,0xFF,0x7F,0xC0,0x0E,0xE7,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xC0,0xFF,0xE0,0xF0,0xC0,0x1D,0xC0,0x0F,0x30,0xE0,0x1C,0xE3,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE4,0x60,0x30,0xC0,0x1D,0xC0,0x0F,
0x30,0x60,0x98,0xE3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xEE,0x0F,0x00,
0xD8,0x1D,0xC0,0x0F,0x30,0x30,0xB8,0xE3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xEF,0x3C,0xC0,0xCF,0x9D,0xE1,0x0E,0x30,0xF8,0xFF,0xE1,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0xE7,0x78,0xF8,0xE1,0x9C,0xE1,0x0E,0x30,0xF8,0xF0,0xE0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE1,0xF0,0x78,0xE0,0xDC,0x61,0x0E,
0x30,0x18,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFC,0xE0,0x10,
0x70,0xFC,0x71,0xFE,0x3F,0x00,0x70,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x38,0xF8,0xC0,0x00,0x3C,0xFC,0x31,0x0E,0x30,0x00,0x38,0x7C,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x0E,0x00,0x18,0x0E,0x30,0x00,0x0E,0x38,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x02,0x00,0x02,0x00,0x07,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC8,0x1F,
0x58,0x12,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x08,0x02,0x87,0x0A,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x1F,0x04,0x02,0x02,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xC4,0x1F,0xFE,0x0F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xEE,0x3F,
0x5F,0x10,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x08,0x00,0x44,0x10,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xC8,0x1F,0xCC,0x1F,0xFA,0x07,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x10,0x56,0x10,0x0A,0x04,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC8,0x1F,
0x46,0x10,0x0A,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x68,0x10,0xC5,0x1F,0x09,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xD8,0x1F,0x44,0x10,0x09,0xC4,0xC0,0xC0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x10,0x44,0x90,0xF8,0xC7,
0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x1C,
0x44,0x1C,0x08,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
void display_UC1608(void){
	unsigned char buffer[3200*4+160];
//	unsigned char buffer[13440];
	int i,ii,count = 0;
	unsigned char j;
	unsigned int tmp;
	buffer[0]=0x05;
	buffer[1]=0x12;
	buffer[2]=0x60;
	buffer[3]=0x70;
	spi_lcd_cmd_write(slavelcd,buffer,4,NULL,0);

	memset(buffer,0,sizeof(buffer));
	for(ii=0;ii<160;ii++){
		for(i=0;i<20;i++){
			tmp = 0;
			for(j=0;j<4;j++){
				if((LCDBuffer1[i+ii*20]>>(j*2))&0x01)
					tmp = tmp|(0x000000f0<<(j*8));
				if((LCDBuffer1[i+ii*20]>>(j*2))&0x02)	
					tmp = tmp|(0x0000000f<<(j*8));	
			}
			memcpy(&buffer[count],(unsigned char *)&tmp,4);
			count += 4;
		}
		count+=1;//add colum addr
	}
	spi_lcd_cmd_write(slavelcd,NULL,0,buffer,sizeof(buffer));
//	printf("@@@@@@@@@display uc1608 111\n");
}
#if 0
void display_ST75161(void)
{
	//int ColX,RowY,i;
	//unsigned char xx;
	unsigned char temp[160];
	
	temp[0]=0x30;
	spi_lcd_cmd_write(slavelcd,temp,1,NULL,0);
	temp[0]=0x15;
	spi_lcd_cmd_write(slavelcd,temp,1,NULL,0);//Column Address Setting 
	temp[0]=0x0;
	spi_lcd_cmd_write(slavelcd,NULL,0,temp,1);//Starting column address
	temp[0]=0x9f;
	spi_lcd_cmd_write(slavelcd,NULL,0,temp,1);//Ending column address
	temp[0]=0x75;
	spi_lcd_cmd_write(slavelcd,temp,1,NULL,0);//Row Address Setting 
	temp[0]=0x0;
	spi_lcd_cmd_write(slavelcd,NULL,0,temp,1);//Starting page address
	temp[0]=0x13;
	spi_lcd_cmd_write(slavelcd,NULL,0,temp,1);//Ending page address
	temp[0]=0x5c;
	spi_lcd_cmd_write(slavelcd,temp,1,NULL,0);
/*	for(RowY=0;RowY<20;RowY++){
		for(ColX=0;ColX<160;ColX++){
			xx=0;
			for(i=0;i<8;i++){
				if(LCDBuffer[ColX+(8*RowY+i)*160]==0xff)
					xx |=(1<

相关