| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507 |
- #include <stdbool.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <ctype.h>
- #include "pnlset2bin.h"
- #define CustomerLOGO 1
- #define PanelSet_Header "PanelSet_Ascii_Version"
- #if 0
- static long filelength(FILE * pFile)
- {
- long ret;
- long oldpos;
- oldpos = ftell(pFile);
- fseek(pFile, 0, SEEK_END);
- ret = ftell(pFile);
- fseek(pFile, oldpos, SEEK_SET);
- return ret;
- }
- #endif
- uint StrToHexNumber(char* szText, uint* pNumber, uint nMax)
- {
- uint i,nValue= 0;
- i= 0;
- while( i<nMax )
- {
- if( szText[i] >='0' && szText[i]<= '9' )
- nValue= (nValue<<4) | (szText[i]-'0');
- else if( szText[i] >='a' && szText[i]<= 'f' )
- nValue= (nValue<<4) | (szText[i]-'a'+10);
- else if( szText[i] >='A' && szText[i]<= 'F' )
- nValue= (nValue<<4) | (szText[i]-'A'+10);
- else break;
- i++;
- }
- *pNumber= nValue;
- return i;
- }
- uint StrToDecimalNumber(char* szText, uint* pNumber, uint nMax)
- {
- uint i,nValue= 0;
- i= 0;
- while( i<nMax )
- {
- if( szText[i] >='0' && szText[i]<= '9' )
- nValue= (nValue*10) + (szText[i]-'0');
- else break;
- i++;
- }
- *pNumber= nValue;
- return i;
- }
- bool GetBit(const unsigned char pByte[], uint nBitIndex)
- {
- uint nQuot,nRem;
- nQuot= nBitIndex >> 3;
- nRem= nBitIndex & 0x7;
- return (pByte[nQuot] >> nRem) & 0x01;
- }
- uint GetBitData(const unsigned char pByte[], uint nBitIndex, uint nBitWidth)
- {
- uint i,nBit,nValue= 0;
- for(i=0; i<nBitWidth; i++)
- {
- nBit= GetBit(pByte, nBitIndex+i);
- nValue= (nBit<<i) | nValue;
- }
- return nValue;
- }
- void SetBit(unsigned char pByte[], uint nBitIndex, bool bValue)
- {
- uint nQuot,nRem;
- unsigned char nMask;
- nQuot= nBitIndex >> 3;
- nRem= nBitIndex & 0x7;
- nMask= (1 << nRem) & 0xff;
- if( bValue )
- {
- pByte[nQuot]|= nMask;
- }
- else
- {
- nMask= ~nMask;
- pByte[nQuot]&= nMask;
- }
- }
- void SetBitData(unsigned char pByte[], uint nBitIndex, uint nBitWidth, uint nData)
- {
- uint i;
- for(i=0; i<nBitWidth; i++)
- SetBit(pByte, nBitIndex+i, (nData>>i)&0x1);
- }
- void PrintUsage(void)
- {
- fprintf(stderr, "\n");
- fprintf(stderr, "pnlset2bin v0.01\n");
- fprintf(stderr, "Usage: pnlset2bin inputINIfile outputBINfile\n");
- fprintf(stderr, "Example: pnlset2bin panelset.ini panelset.bin\n");
- fprintf(stderr, "\n");
- }
- int cmN_getFileOneLineDataAscii(FILE *fpIn,char *pData, int maxLen)
- { //return is get len not add null
- int i;
- char line[maxLen];
-
- while(fgets(line, maxLen, fpIn)){
- if(strncmp(line, PanelSet_Header, strlen(PanelSet_Header)) == 0)
- break;
- }
- for(i=0; i<maxLen;i++)
- {
- if( i>= maxLen) //end size
- {
- return i; // not add null
- }
-
- if(line[i] == 0x0A )//line end ** OK
- {
- pData[i] = 0x00;
- return i;
- }
- if((isascii(line[i]))&&(!iscntrl(line[i])))
- {
- pData[i] = line[i];
- }
- else
- {
- pData[i] = 0x20;
- }
- }
- return 0; // fail
- }
- int cmN_getLineAsciiData_PanelSetVer2(char *pInData, char *pOutData, int Len)
- { //return is get len and add null
- int i, num, start;
- int headLen;
- headLen = (int)strlen(PANELSET_VERSION2_NAME_HEADER);
- if (!strncmp(PANELSET_VERSION2_NAME_HEADER,pInData, headLen))
- {
- num = 0;
- start = 0;
- for(i=headLen; i<Len;i++)
- {
- if(pInData[i] != 0x20)
- {
- start = i;
- break;
- }
- }
- if( (start == 0)||(i==Len) ) // empty give 0x20
- {
- pOutData[0] = 0x20;
- return 1;
- }
- for(i=start; i<Len;i++)
- {
- if((isascii(pInData[i]))&&(!iscntrl(pInData[i])))
- {
- pOutData[num] = pInData[i];
- }
- else
- {
- pOutData[num] = 0x20;
- }
- num ++;
- if(num >=PANELSET_VERSION2_NAME_MAX_LEN)
- {
- break;
- }
- }
- //move 0x20 at last
- for(i=(num - 1); i>= 0;i--)
- {
- if(pOutData[i] != 0x20)
- {
- if(i == 0)
- {
- return 1;//fix all is empty
- }
- else
- {
- return (i+1);
- }
- }
- }
- }
- else
- {
- return 0; // fail
- }
- return 0; // fail
- }
- #if 0
- DWORD ini2bin(char* pInFile, char *pOutFile)
- {
- FILE *InFile,*OutFile;
- DWORD isFill = TRUE, isAdd = TRUE; //for many VIP merge //add MMIO
- int i, len, tmp, mmioflag=0, optionflag=0;
- DWORD tempDW = 0;
- BRVIP_FLASH BrvipFlash;
- char ptr[0x100];
- unsigned int data,data1,data2,data3;
- unsigned long ULData[2000],ULSize;
- char pExist[PB_MAX_END];//for check only
- memset(pExist, 0, sizeof(char));
- InFile = fopen(pInFile,"r");
- if (InFile == NULL)
- {
- fprintf(stderr, "Can't open ini file\n");
- return FALSE;
- }
- if(isAdd == TRUE)
- {
- OutFile = fopen(pOutFile,"ab");
- }
- else
- {
- OutFile = fopen(pOutFile,"wb");
- }
- if (OutFile == NULL)
- {
- fclose(InFile);
- fprintf(stderr, "Can't open will write file\n");
- return FALSE;
- }
- int mergeToSize;//should "PANELSET SIZE" 2K, but boo t Rom give 8K So, Some where will add
- mergeToSize = PANELSET_SIZE; //--2k //; 0x2000=8k;//should "PANELSET SIZE" 2K, but boo t Rom give 8K So, Some where will add
- //---------- for isAdd fill to 8K
- if( (isFill == TRUE)&&(isAdd) )
- {
- DWORD fileLen, fillLen;
- fileLen = filelength(OutFile);
- if(fileLen % PANELSET_SIZE) //---by each size #1
- {
- if( PANELSET_SIZE > 0 )
- {
- int range = mergeToSize;// should "PANELSET SIZE" 2K, but boo t Rom give 8K So, Some where will add
- fillLen = range -(fileLen & (range-1));
- }
- else
- {
- fillLen = 0;
- }
- fseek( OutFile, 0, SEEK_END);
- for(i=0; i< fillLen ;i++)
- {
- fputc(0xFF,OutFile);
- }
- }
- //fclose(OutFile);
- }
- //----------
- //?? does need to init "BrvipFlash
- memset(&BrvipFlash, 0, sizeof(BRVIP_FLASH));//not init value is diff linux 0 windows CC
- //Reserve01 and Reserve02
- //----- ver =>
- tmp = 100;
- i = cmN_getFileOneLineDataAscii(InFile,ptr, tmp);
- len = cmN_getLineAsciiData_PanelSetVer2(ptr, ptr+tmp, i);
- memset(ptr, 0, PANELSET_VERSION2_NAME_MAX_LEN);
- memcpy(ptr , ptr+tmp, len);
- if(len == 0)
- {
- fclose(InFile);
- fclose(OutFile);
- fprintf(stderr, "Error ! \n First line must be PanelSet_Ascii_Version\n");
- return FALSE;
- }
- for(i=0; i< PANELSET_VERSION2_NAME_MAX_LEN;i++)
- {
- BrvipFlash.ScalerRegister.VersionOfAscii_20[i] = ptr[i];
- }
- //----- ver <=
- //start fill //source from Ics 172.18.252.142\sis1259\brvip\work\utility\utility.c+flash.h
- while (fscanf(InFile,"%s",ptr) != EOF) {
- if (!strcmp("[MMIO0]",ptr)) fgetpos(InFile, (fpos_t*)&mmioflag);
- if (0 != mmioflag && !optionflag)
- {
- if (0 == strstr(ptr, "OffsetLast0x14=")) continue;
- else
- {
- optionflag = 1;
- sscanf(ptr, "OffsetLast0x14=%d", (int*)&tempDW);
- }
- }
- if (EOF == fscanf(InFile," %x\n",&data)) break;
- if (!strcmp("PanelHorizontalEnd",ptr)) {
- BrvipFlash.PanelParameter.PanelHorizontalEnd = data;
- pExist[PB_PanelHorizontalEnd] = 1;
- } else if (!strcmp("PanelVerticalEnd",ptr)) {
- BrvipFlash.PanelParameter.PanelVerticalEnd = data;
- pExist[PB_PanelVerticalEnd] = 1;
- } else if (!strcmp("PanelHorizontalSyncStart",ptr)) {
- BrvipFlash.PanelParameter.PanelHorizontalSyncStart = (unsigned char)data;
- pExist[PB_PanelHorizontalSyncStart] = 1;
- } else if (!strcmp("PanelHorizontalSyncEnd",ptr)) {
- BrvipFlash.PanelParameter.PanelHorizontalSyncEnd = (unsigned char)data;
- pExist[PB_PanelHorizontalSyncEnd] = 1;
- } else if (!strcmp("PanelVerticalSyncStart",ptr)) {
- BrvipFlash.PanelParameter.PanelVerticalSyncStart = (unsigned char)data;
- pExist[PB_PanelVerticalSyncStart] = 1;
- } else if (!strcmp("PanelVerticalSyncEnd",ptr)) {
- BrvipFlash.PanelParameter.PanelVerticalSyncEnd = (unsigned char)data;
- pExist[PB_PanelVerticalSyncEnd] = 1;
- } else if (!strcmp("PanelVerticalMaxEnd",ptr)) {
- BrvipFlash.PanelParameter.PanelVerticalMaxEnd = (unsigned short)data;
- pExist[PB_PanelVerticalMaxEnd] = 1;
- } else if (!strcmp("PanelHorizontalDisplayStart",ptr)) {
- BrvipFlash.PanelParameter.PanelHorizontalDisplayStart = data;
- pExist[PB_PanelHorizontalDisplayStart] = 1;
- } else if (!strcmp("PanelVerticalDisplayStart",ptr)) {
- BrvipFlash.PanelParameter.PanelVerticalDisplayStart = data;
- pExist[PB_PanelVerticalDisplayStart] = 1;
- } else if (!strcmp("PanelHorizontalDisplayEnd",ptr)) {
- BrvipFlash.PanelParameter.PanelHorizontalDisplayEnd = data;
- pExist[PB_PanelHorizontalDisplayEnd] = 1;
- } else if (!strcmp("PanelVerticalDisplayEnd",ptr)) {
- BrvipFlash.PanelParameter.PanelVerticalDisplayEnd = data;
- pExist[PB_PanelVerticalDisplayEnd] = 1;
- } else if (!strcmp("PanelBlueOverScan",ptr)) {
- BrvipFlash.PanelParameter.PanelBlueOverScan = (unsigned char)data;
- pExist[PB_PanelBlueOverScan] = 1;
- } else if (!strcmp("PanelGreenOverScan",ptr)) {
- BrvipFlash.PanelParameter.PanelGreenOverScan = (unsigned char)data;
- pExist[PB_PanelGreenOverScan] = 1;
- } else if (!strcmp("PanelRedOverScan",ptr)) {
- BrvipFlash.PanelParameter.PanelRedOverScan = (unsigned char)data;
- pExist[PB_PanelRedOverScan] = 1;
- } else if (!strcmp("DpyHorizontalDisplayStart",ptr)) {
- BrvipFlash.DisplayPosition.DpyHorizontalDisplayStart = data;
- pExist[PB_DpyHorizontalDisplayStart] = 1;
- } else if (!strcmp("DpyVerticalDisplayStart",ptr)) {
- BrvipFlash.DisplayPosition.DpyVerticalDisplayStart = data;
- pExist[PB_DpyVerticalDisplayStart] = 1;
- } else if (!strcmp("DpyHorizontalDisplayEnd",ptr)) {
- BrvipFlash.DisplayPosition.DpyHorizontalDisplayEnd = data;
- pExist[PB_DpyHorizontalDisplayEnd] = 1;
- } else if (!strcmp("DpyVerticalDisplayEnd",ptr)) {
- BrvipFlash.DisplayPosition.DpyVerticalDisplayEnd = data;
- pExist[PB_DpyVerticalDisplayEnd] = 1;
- } else if (!strcmp("DpyOffset",ptr)) {
- BrvipFlash.DisplayPosition.DpyOffset = (unsigned char)data;
- pExist[PB_DpyOffset] = 1;
- } else if (!strcmp("DpySize",ptr)) {
- BrvipFlash.DisplayPosition.DpySize = (unsigned char)data;
- pExist[PB_DpySize] = 1;
- } else if (!strcmp("DpyLine",ptr)) {
- BrvipFlash.DisplayPosition.DpyLine = data;
- pExist[PB_DpyLine] = 1;
- } else if (!strcmp("Version",ptr)) {
- BrvipFlash.Version = data;
- pExist[PB_Version] = 1;
- } else if (!strcmp("DeviceID",ptr)) {
- BrvipFlash.DeviceID = (unsigned short)data;
- pExist[PB_DeviceID] = 1;
- } else if (!strcmp("VendorID",ptr)) {
- BrvipFlash.VendorID = (unsigned short)data;
- pExist[PB_VendorID] = 1;
- } else if (!strcmp("Dpy00",ptr)) {
- BrvipFlash.Dpy00 = data;
- pExist[PB_Dpy00] = 1;
- } else if (!strcmp("Dpy20",ptr)) {
- BrvipFlash.Dpy20 = data;
- pExist[PB_Dpy20] = 1;
- } else if (!strcmp("Before_MMIOAddress",ptr)) {
- BrvipFlash.Before_MMIOAddress = data;
- pExist[PB_Before_MMIOAddress] = 1;
- } else if (!strcmp("VIPAddress",ptr)) {
- BrvipFlash.VIPAddress = data;
- pExist[PB_VIPAddress] = 1;
- } else if (!strcmp("After_MMIOAddress",ptr)) {
- BrvipFlash.After_MMIOAddress = data;
- pExist[PB_After_MMIOAddress] = 1;
- } else if (!strcmp("SlrReset",ptr)) {;
- BrvipFlash.ScalerRegister.SlrReset = data;
- pExist[PB_SlrReset] = 1;
- } else if (!strcmp("SlrConfig",ptr)) {
- BrvipFlash.ScalerRegister.SlrConfig = data;
- pExist[PB_SlrConfig] = 1;
- } else if (!strcmp("SlrHorizontalFactor",ptr)) {
- BrvipFlash.ScalerRegister.SlrHorizontalFactor = data;
- pExist[PB_SlrHorizontalFactor] = 1;
- } else if (!strcmp("SlrVerticalFactor",ptr)) {
- BrvipFlash.ScalerRegister.SlrVerticalFactor = data;
- pExist[PB_SlrVerticalFactor] = 1;
- } else if (!strcmp("SlrVerticalDown",ptr)) {
- BrvipFlash.ScalerRegister.SlrVerticalDown = data;
- pExist[PB_SlrVerticalDown] = 1;
- }
- /* else if (!strcmp("SlrLeft",ptr)) {
- BrvipFlash.ScalerRegister.SlrLeft = data;
- pExist[PB_SlrLeft] = 1;
- } else if (!strcmp("SlrRight",ptr)) {
- BrvipFlash.ScalerRegister.SlrRight = data;
- pExist[PB_SlrRight] = 1;
- } else if (!strcmp("SlrLeft0",ptr)) {
- BrvipFlash.ScalerRegister.SlrLeft0 = data;
- pExist[PB_SlrLeft0] = 1;
- } else if (!strcmp("SlrRight0",ptr)) {
- BrvipFlash.ScalerRegister.SlrRight0 = data;
- pExist[PB_SlrRight0] = 1;
- } else if (!strcmp("SlrHorizontalFactor0",ptr)) {
- BrvipFlash.ScalerRegister.SlrHorizontalFactor0 = data;
- pExist[PB_SlrHorizontalFactor0] = 1;
- } */
- else if (!strcmp("SlrLine",ptr)) {
- BrvipFlash.ScalerRegister.SlrLine = data;
- pExist[PB_SlrLine] = 1;
- } else if (!strcmp("SlrInc",ptr)) {
- BrvipFlash.ScalerRegister.SlrInc = data;
- pExist[PB_SlrInc] = 1;
- } else if (!strcmp("Gpio_15",ptr)) {
- BrvipFlash.Gpio_15 = data;
- pExist[PB_Gpio_15] = 1;
- } else if (!strcmp("Gpio_16",ptr)) {
- BrvipFlash.Gpio_16 = data;
- pExist[PB_Gpio_16] = 1;
- }
- else if (!strcmp("PanelBackLight_GPIOPin",ptr)) {
- BrvipFlash.PanelBackLight_GPIOPin = (unsigned char)data;
- pExist[PB_PanelBackLight_GPIOPin] = 1;
- }
- else if (!strcmp("PanelPower_GPIOPin",ptr)) {
- BrvipFlash.PanelPower_GPIOPin = (unsigned char)data;
- pExist[PB_PanelPower_GPIOPin] = 1;
- }
- else if (!strcmp("PanelBackLight_ActiveValue",ptr)) {
- BrvipFlash.PanelBackLight_ActiveValue = (unsigned char)data;
- pExist[PB_PanelBackLight_ActiveValue] = 1;
- }
- else if (!strcmp("PanelPower_ActiveValue",ptr)) {
- BrvipFlash.PanelPower_ActiveValue = (unsigned char)data;
- pExist[PB_PanelPower_ActiveValue] = 1;
- }
- else if (!strcmp("LCDBackLightOrder",ptr)) {
- BrvipFlash.LCDBackLightOrder = (DWORD)data;
- pExist[PB_LCDBackLightOrder] = 1;
- }
- else if (!strcmp("LCDBackLight_OtherFrq",ptr)) {
- BrvipFlash.LCDBackLight_OtherFrq = (DWORD)data;
- pExist[PB_LCDBackLight_OtherFrq] = 1;
- }
- else if (!strcmp("LCDBackLightMap_00",ptr)) {
- BrvipFlash.LCDBackLightMap_00 = (DWORD)data;
- pExist[PB_LCDBackLightMap_00] = 1;
- }
- else if (!strcmp("LCDBackLightMap_01",ptr)) {
- BrvipFlash.LCDBackLightMap_01 = (DWORD)data;
- pExist[PB_LCDBackLightMap_01] = 1;
- }
- else if (!strcmp("LCDBackLightMap_02",ptr)) {
- BrvipFlash.LCDBackLightMap_02 = (DWORD)data;
- pExist[PB_LCDBackLightMap_02] = 1;
- }
- else if (!strcmp("LCDBackLightMap_03",ptr)) {
- BrvipFlash.LCDBackLightMap_03 = (DWORD)data;
- pExist[PB_LCDBackLightMap_03] = 1;
- }
- else if (!strcmp("LCDBackLightMap_04",ptr)) {
- BrvipFlash.LCDBackLightMap_04 = (DWORD)data;
- pExist[PB_LCDBackLightMap_04] = 1;
- }
- else if (!strcmp("LCDBackLightMap_05",ptr)) {
- BrvipFlash.LCDBackLightMap_05 = (DWORD)data;
- pExist[PB_LCDBackLightMap_05] = 1;
- }
- else if (!strcmp("LCDBackLightMap_06",ptr)) {
- BrvipFlash.LCDBackLightMap_06 = (DWORD)data;
- pExist[PB_LCDBackLightMap_06] = 1;
- }
- else if (!strcmp("LCDBackLightMap_07",ptr)) {
- BrvipFlash.LCDBackLightMap_07 = (DWORD)data;
- pExist[PB_LCDBackLightMap_07] = 1;
- }
- else if (!strcmp("LCDBackLightMap_08",ptr)) {
- BrvipFlash.LCDBackLightMap_08 = (DWORD)data;
- pExist[PB_LCDBackLightMap_08] = 1;
- }
- else if (!strcmp("LCDBackLightMap_09",ptr)) {
- BrvipFlash.LCDBackLightMap_09 = (DWORD)data;
- pExist[PB_LCDBackLightMap_09] = 1;
- }
- else if (!strcmp("LCDBackLightMap_10",ptr)) {
- BrvipFlash.LCDBackLightMap_10 = (DWORD)data;
- pExist[PB_LCDBackLightMap_10] = 1;
- }
- else if (!strcmp("LCDBackLightMap_11",ptr)) {
- BrvipFlash.LCDBackLightMap_11 = (DWORD)data;
- pExist[PB_LCDBackLightMap_11] = 1;
- }
- else if (!strcmp("LCDBackLightMap_12",ptr)) {
- BrvipFlash.LCDBackLightMap_12 = (DWORD)data;
- pExist[PB_LCDBackLightMap_12] = 1;
- }
- else if (!strcmp("LCDBackLightMap_13",ptr)) {
- BrvipFlash.LCDBackLightMap_13 = (DWORD)data;
- pExist[PB_LCDBackLightMap_13] = 1;
- }
- else if (!strcmp("LCDBackLightMap_14",ptr)) {
- BrvipFlash.LCDBackLightMap_14 = (DWORD)data;
- pExist[PB_LCDBackLightMap_14] = 1;
- }
- else if (!strcmp("LogoType",ptr)) {
- BrvipFlash.LogoType = (DWORD)data;
- pExist[PB_LogoType] = 1;
- }
- else if (!strcmp("LogoSize",ptr)) {
- BrvipFlash.LogoSize = (DWORD)data;
- pExist[PB_LogoSize] = 1;
- }
- else if (!strcmp("PanelBackLight_OffdelayTime",ptr)) {
- BrvipFlash.PanelBackLight_OffdelayTime = (DWORD)data;
- pExist[PB_PanelBackLight_OffdelayTime] = 1;
- }
- else if (!strcmp("PanelBackPower_OffdelayTime",ptr)) {
- BrvipFlash.PanelBackPower_OffdelayTime = (DWORD)data;
- pExist[PB_PanelBackPower_OffdelayTime] = 1;
- }
- }
- fseek(InFile, mmioflag, SEEK_SET);
- //BrvipFlash.Before_MMIOAddress = 0xbc0b0000+sizeof(BRVIP_FLASH); 07/03/02008 David.
- BrvipFlash.Before_MMIOAddress = BR_ADDR_VIP+sizeof(BRVIP_FLASH);
- BrvipFlash.After_MMIOAddress = BrvipFlash.Before_MMIOAddress;
- ULSize = 0;
- //fwrite(&BrvipFlash,sizeof(BRVIP_FLASH),1,OutFile);
- while (fscanf(InFile,"\n%x %x %x %x",&data,&data1,&data2,&data3) != EOF)
- {
- if ((data == 0xffffffff)||(data == 0x00000000))
- {
- break;
- }
- //fwrite(&data,4,1,OutFile);
- //fwrite(&data1,4,1,OutFile);
- //fwrite(&data2,4,1,OutFile);
- //fwrite(&data3,4,1,OutFile);
- //BrvipFlash.After_MMIOAddress += 0x10;
- ULData[ULSize] = data;
- ULData[ULSize+1] = data1;
- ULData[ULSize+2] = data2;
- ULData[ULSize+3] = data3;
- ULSize += 4;
- }
- data=0xffffffff;
- //fwrite(&data,4,1,OutFile);
- //fwrite(&data,4,1,OutFile);
- //fwrite(&data,4,1,OutFile);
- //fwrite(&data,4,1,OutFile);
- //BrvipFlash.After_MMIOAddress += 0x10;
- ULData[ULSize] = data;
- ULData[ULSize+1] = data;
- ULData[ULSize+2] = data;
- ULData[ULSize+3] = data;
- ULSize += 4;
- BrvipFlash.After_MMIOAddress += (ULSize*4);
- printf("Before_MMIOAddress %x\n",(unsigned int)BrvipFlash.Before_MMIOAddress);
- printf("ULSize %x\n",(unsigned int)ULSize);
- printf("After_MMIOAddress %x\n",(unsigned int)BrvipFlash.After_MMIOAddress);
- fwrite(&BrvipFlash,sizeof(BRVIP_FLASH),1,OutFile);
- fwrite(ULData,4*ULSize,1,OutFile);
- while (fscanf(InFile,"\n%x %x %x %x",&data,&data1,&data2,&data3) != EOF)
- {
- if ((data == 0xffffffff)||(data == 0x00000000))
- {
- break;
- }
- fwrite(&data,4,1,OutFile);
- fwrite(&data1,4,1,OutFile);
- fwrite(&data2,4,1,OutFile);
- fwrite(&data3,4,1,OutFile);
- }
- data=0xffffffff;
- fwrite(&data,4,1,OutFile);
- fwrite(&data,4,1,OutFile);
- fwrite(&data,4,1,OutFile);
- fwrite(&data,4,1,OutFile);
- #ifdef SET_338_VIP
- while (fscanf(InFile,"\n%x %x %x %x",&data,&data1,&data2,&data3) != EOF)
- {
- if ((data == 0xffffffff)||(data == 0x00000000))
- {
- break;
- }
- fwrite(&data,4,1,OutFile);
- fwrite(&data1,4,1,OutFile);
- fwrite(&data2,4,1,OutFile);
- fwrite(&data3,4,1,OutFile);
- }
- data=0xffffffff;
- fwrite(&data,4,1,OutFile);
- fwrite(&data,4,1,OutFile);
- fwrite(&data,4,1,OutFile);
- fwrite(&data,4,1,OutFile);
- #endif //SET_338_VIP
- fclose(InFile);
- //--------- Option
- if (optionflag)
- {
- if(PANELSET_SIZE != PANELSET_NOW_USE_FIX_SIZE)
- {
- fprintf(stderr, "Error! \nPanelSet Size change !\n Driver must update for this");
- fclose(OutFile);
- return FALSE;
- }
- DWORD fileLen, fillLen;
- fgetpos(OutFile,(fpos_t*)&fileLen);
- fileLen = fileLen % mergeToSize;
- if(fileLen >= (PANELSET_OPTION_D_OFFSET)) //0x7ec
- {
- fprintf(stderr, "Error! \nPanelSet Size change ! Over ox 7 e c\n Tool must update");
- fclose(OutFile);
- return FALSE;
- }
- fillLen = (PANELSET_OPTION_D_OFFSET - fileLen);
- if(PANELSET_OPTION_D_OFFSET < fileLen) //avoid
- {
- fillLen = 0;
- fprintf(stderr, "Error! \nPanelSet Error size \n Tool must update");
- }
- // OutFile = fopen(pOutFile,"ab");
- for(i=0; i< fillLen ;i++)
- {
- fputc(0xFF,OutFile);
- }
- fwrite(&tempDW,4,1,OutFile);
- }
- //---------
- fclose(OutFile);
- if(isFill == TRUE)
- {
- OutFile = fopen(pOutFile,"ab");
- if (OutFile == NULL)
- {
- fprintf(stderr, "Can't open will write2 file\n");
- return FALSE;
- }
- DWORD fileLen, fillLen;
- fileLen = filelength(OutFile);
- if(fileLen % PANELSET_SIZE) //---by each size #2
- {
- #ifdef FILL_MEM_BY_INI
- if( PANELSET_SIZE > 0 )
- {
- int range;
- if(isAdd)
- {
- range = mergeToSize;// should "PANELSET SIZE" 2K, but boo t Rom give 8K So, Some where will add
- }
- else
- {
- range = PANELSET_SIZE;// general case
- }
- fillLen = range -(fileLen & (range-1));
- }
- else
- fillLen = 0;
- #else
- fillLen = 0x1000 -(fileLen & 0x0fff);
- #endif //FILL_MEM_BY_INI
- fseek( OutFile, 0, SEEK_END);
- for(i=0; i< fillLen ;i++)
- {
- fputc(0xFF,OutFile);
- }
- }
- fclose(OutFile);
- }
- //check lost only
- for(i=0; i<PB_MAX_END ;i++)
- {
- if(pExist[i]!=1)
- {
- fprintf(stderr, "Error \n\n It must have lost data at No %d\n", i);
- return FALSE;
- }
- }
- return TRUE;
- }
- #endif
- #if 1
- char* fgetLine( char *s, int size, FILE *fpIn );
- /* return writed size, */
- int write_i2c_data_to_bin(FILE *fp, int fileoffset, char* output_mem, int mem_offset){
- // int i, length;
- char *line_buff, *outbuff, *ch_p;
- int tmp_data, outbuff_idx = 0,exit = 0;
-
- line_buff = malloc(256);
- if (line_buff == NULL)
- return -1;
-
- outbuff = malloc(1024);
- if (outbuff == NULL) {
- free(line_buff);
- return -1;
- }
-
- printf("i2c[%x]: \n", mem_offset );
- if (fseek(fp, fileoffset, SEEK_SET) < 0) {
- free(line_buff);
- free(outbuff);
- return -1;
- }
-
- //fgetLine(line_buff, 256, InFile);//bypasss [I2C]\n
- while(1){
- if(exit)
- break;
- if(fgetLine(line_buff, 256, fp) != (char *)NULL){
- //printf("i2c[%x]: %s\n", mem_offset,line_buff );
- ch_p = strtok (line_buff,", ");
- #if 0
- if(!strcmp("00",ch_p)){
- exit =1;
- }
- #endif
- while ((ch_p != NULL) && (exit == 0))
- {
- if(sscanf(ch_p, "%x", &tmp_data) <=0){
- exit =1;
- break;
- }
- //printf ("%x ",tmp_data);
- outbuff[outbuff_idx++] = (char)tmp_data;
- ch_p = strtok (NULL, ", ");
- }
- //printf ("\n");
- }
- }
- if(mem_offset + outbuff_idx > PANELSET_SIZE) {
- free(line_buff);
- free(outbuff);
- return -1;
- }
-
- memcpy(output_mem+mem_offset, outbuff, outbuff_idx);
- free(line_buff);
- free(outbuff);
- return outbuff_idx;
- }
- #endif
- /*
- return writed size if success
- else -1
- */
- int ini2binmem(char* pInFile, char *pOutData, int nBufSize)
- {
- FILE *InFile;
- int i, len, tmp, mmioflag=0; //, optionflag=0;
- int i2c0_fileoffset = 0, i2c1_fileoffset = 0;
- int writeOffset = 0;
- // DWORD tempDW = 0;
- BRVIP_FLASH BrvipFlash;
- char ptr[0x100];
- unsigned int data,data1,data2,data3;
- unsigned long ULData[2000],ULSize;
- char pExist[PB_MAX_END];//for check only
- memset(pExist, 0, sizeof(char));
- memset(pOutData, 0xFF, nBufSize);
- if (nBufSize < PANELSET_SIZE)
- {
- fprintf(stderr, "Out buffer is too small\n");
- return -1;
- }
- InFile = fopen(pInFile,"r");
- if (InFile == NULL)
- {
- fprintf(stderr, "Can't open ini file\n");
- return -1;
- }
- /*
- int mergeToSize;//should "PANELSET SIZE" 2K, but boo t Rom give 8K So, Some where will add
- mergeToSize = PANELSET_SIZE; //--2k //; 0x2000=8k;//should "PANELSET SIZE" 2K, but boo t Rom give 8K So, Some where will add
- */
- //?? does need to init "BrvipFlash
- memset(&BrvipFlash, 0, sizeof(BRVIP_FLASH));//not init value is diff linux 0 windows CC
- //Reserve01 and Reserve02
- //----- ver =>
- tmp = 100;
- i = cmN_getFileOneLineDataAscii(InFile,ptr, tmp);
- len = cmN_getLineAsciiData_PanelSetVer2(ptr, ptr+tmp, i);
- memset(ptr, 0, PANELSET_VERSION2_NAME_MAX_LEN);
- memcpy(ptr , ptr+tmp, len);
- if(len == 0)
- {
- fclose(InFile);
- fprintf(stderr, "Error ! \n First line must be PanelSet_Ascii_Version\n");
- return -1;
- }
- for(i=0; i< PANELSET_VERSION2_NAME_MAX_LEN;i++)
- {
- BrvipFlash.ScalerRegister.VersionOfAscii_20[i] = ptr[i];
- }
- //----- ver <=
- //start fill //source from Ics 172.18.252.142\sis1259\brvip\work\utility\utility.c+flash.h
- while (fscanf(InFile,"%s",ptr) != EOF) {
- if (!strcmp("[MMIO0]",ptr)) fgetpos(InFile, (fpos_t*)&mmioflag);
- if (!strcmp("[I2C0]",ptr)) fgetpos(InFile, (fpos_t*)&i2c0_fileoffset);
- if (!strcmp("[I2C1]",ptr)) fgetpos(InFile, (fpos_t*)&i2c1_fileoffset);
- #if 0 //gaia, 2013.05.02 ya! i don't know what is this..
- if (0 != mmioflag && !optionflag)
- {
- if (0 == strstr(ptr, "OffsetLast0x14=")) continue;
- else
- {
- optionflag = 1;
- sscanf(ptr, "OffsetLast0x14=%d", (int*)&tempDW);
- }
- }
- #endif
- if (EOF == fscanf(InFile," %x\n",&data)) break;
- if (!strcmp("PanelHorizontalEnd",ptr)) {
- BrvipFlash.PanelParameter.PanelHorizontalEnd = data;
- pExist[PB_PanelHorizontalEnd] = 1;
- } else if (!strcmp("PanelVerticalEnd",ptr)) {
- BrvipFlash.PanelParameter.PanelVerticalEnd = data;
- pExist[PB_PanelVerticalEnd] = 1;
- } else if (!strcmp("PanelHorizontalSyncStart",ptr)) {
- BrvipFlash.PanelParameter.PanelHorizontalSyncStart = (unsigned char)data;
- pExist[PB_PanelHorizontalSyncStart] = 1;
- } else if (!strcmp("PanelHorizontalSyncEnd",ptr)) {
- BrvipFlash.PanelParameter.PanelHorizontalSyncEnd = (unsigned char)data;
- pExist[PB_PanelHorizontalSyncEnd] = 1;
- } else if (!strcmp("PanelVerticalSyncStart",ptr)) {
- BrvipFlash.PanelParameter.PanelVerticalSyncStart = (unsigned char)data;
- pExist[PB_PanelVerticalSyncStart] = 1;
- } else if (!strcmp("PanelVerticalSyncEnd",ptr)) {
- BrvipFlash.PanelParameter.PanelVerticalSyncEnd = (unsigned char)data;
- pExist[PB_PanelVerticalSyncEnd] = 1;
- } else if (!strcmp("PanelVerticalMaxEnd",ptr)) {
- BrvipFlash.PanelParameter.PanelVerticalMaxEnd = (unsigned short)data;
- pExist[PB_PanelVerticalMaxEnd] = 1;
- } else if (!strcmp("PanelHorizontalDisplayStart",ptr)) {
- BrvipFlash.PanelParameter.PanelHorizontalDisplayStart = data;
- pExist[PB_PanelHorizontalDisplayStart] = 1;
- } else if (!strcmp("PanelVerticalDisplayStart",ptr)) {
- BrvipFlash.PanelParameter.PanelVerticalDisplayStart = data;
- pExist[PB_PanelVerticalDisplayStart] = 1;
- } else if (!strcmp("PanelHorizontalDisplayEnd",ptr)) {
- BrvipFlash.PanelParameter.PanelHorizontalDisplayEnd = data;
- pExist[PB_PanelHorizontalDisplayEnd] = 1;
- } else if (!strcmp("PanelVerticalDisplayEnd",ptr)) {
- BrvipFlash.PanelParameter.PanelVerticalDisplayEnd = data;
- pExist[PB_PanelVerticalDisplayEnd] = 1;
- } else if (!strcmp("PanelBlueOverScan",ptr)) {
- BrvipFlash.PanelParameter.PanelBlueOverScan = (unsigned char)data;
- pExist[PB_PanelBlueOverScan] = 1;
- } else if (!strcmp("PanelGreenOverScan",ptr)) {
- BrvipFlash.PanelParameter.PanelGreenOverScan = (unsigned char)data;
- pExist[PB_PanelGreenOverScan] = 1;
- } else if (!strcmp("PanelRedOverScan",ptr)) {
- BrvipFlash.PanelParameter.PanelRedOverScan = (unsigned char)data;
- pExist[PB_PanelRedOverScan] = 1;
- } else if (!strcmp("DpyHorizontalDisplayStart",ptr)) {
- BrvipFlash.DisplayPosition.DpyHorizontalDisplayStart = data;
- pExist[PB_DpyHorizontalDisplayStart] = 1;
- } else if (!strcmp("DpyVerticalDisplayStart",ptr)) {
- BrvipFlash.DisplayPosition.DpyVerticalDisplayStart = data;
- pExist[PB_DpyVerticalDisplayStart] = 1;
- } else if (!strcmp("DpyHorizontalDisplayEnd",ptr)) {
- BrvipFlash.DisplayPosition.DpyHorizontalDisplayEnd = data;
- pExist[PB_DpyHorizontalDisplayEnd] = 1;
- } else if (!strcmp("DpyVerticalDisplayEnd",ptr)) {
- BrvipFlash.DisplayPosition.DpyVerticalDisplayEnd = data;
- pExist[PB_DpyVerticalDisplayEnd] = 1;
- } else if (!strcmp("DpyOffset",ptr)) {
- BrvipFlash.DisplayPosition.DpyOffset = (unsigned short)data;
- pExist[PB_DpyOffset] = 1;
- } else if (!strcmp("DpySize",ptr)) {
- BrvipFlash.DisplayPosition.DpySize = (unsigned short)data;
- pExist[PB_DpySize] = 1;
- } else if (!strcmp("DpyLine",ptr)) {
- BrvipFlash.DisplayPosition.DpyLine = data;
- pExist[PB_DpyLine] = 1;
- } else if (!strcmp("Version",ptr)) {
- BrvipFlash.Version = data;
- pExist[PB_Version] = 1;
- } else if (!strcmp("DeviceID",ptr)) {
- BrvipFlash.DeviceID = (unsigned short)data;
- pExist[PB_DeviceID] = 1;
- } else if (!strcmp("VendorID",ptr)) {
- BrvipFlash.VendorID = (unsigned short)data;
- pExist[PB_VendorID] = 1;
- } else if (!strcmp("Dpy00",ptr)) {
- BrvipFlash.Dpy00 = data;
- pExist[PB_Dpy00] = 1;
- } else if (!strcmp("Dpy20",ptr)) {
- BrvipFlash.Dpy20 = data;
- pExist[PB_Dpy20] = 1;
- } else if (!strcmp("Before_MMIOAddress",ptr)) {
- BrvipFlash.Before_MMIOAddress = data;
- pExist[PB_Before_MMIOAddress] = 1;
- } else if (!strcmp("VIPAddress",ptr)) {
- BrvipFlash.VIPAddress = data;
- pExist[PB_VIPAddress] = 1;
- } else if (!strcmp("After_MMIOAddress",ptr)) {
- BrvipFlash.After_MMIOAddress = data;
- pExist[PB_After_MMIOAddress] = 1;
- } else if (!strcmp("SlrReset",ptr)) {;
- BrvipFlash.ScalerRegister.SlrReset = data;
- pExist[PB_SlrReset] = 1;
- } else if (!strcmp("SlrConfig",ptr)) {
- BrvipFlash.ScalerRegister.SlrConfig = data;
- pExist[PB_SlrConfig] = 1;
- } else if (!strcmp("SlrHorizontalFactor",ptr)) {
- BrvipFlash.ScalerRegister.SlrHorizontalFactor = data;
- pExist[PB_SlrHorizontalFactor] = 1;
- } else if (!strcmp("SlrVerticalFactor",ptr)) {
- BrvipFlash.ScalerRegister.SlrVerticalFactor = data;
- pExist[PB_SlrVerticalFactor] = 1;
- } else if (!strcmp("SlrVerticalDown",ptr)) {
- BrvipFlash.ScalerRegister.SlrVerticalDown = data;
- pExist[PB_SlrVerticalDown] = 1;
- }
- /* else if (!strcmp("SlrLeft",ptr)) {
- BrvipFlash.ScalerRegister.SlrLeft = data;
- pExist[PB_SlrLeft] = 1;
- } else if (!strcmp("SlrRight",ptr)) {
- BrvipFlash.ScalerRegister.SlrRight = data;
- pExist[PB_SlrRight] = 1;
- } else if (!strcmp("SlrLeft0",ptr)) {
- BrvipFlash.ScalerRegister.SlrLeft0 = data;
- pExist[PB_SlrLeft0] = 1;
- } else if (!strcmp("SlrRight0",ptr)) {
- BrvipFlash.ScalerRegister.SlrRight0 = data;
- pExist[PB_SlrRight0] = 1;
- } else if (!strcmp("SlrHorizontalFactor0",ptr)) {
- BrvipFlash.ScalerRegister.SlrHorizontalFactor0 = data;
- pExist[PB_SlrHorizontalFactor0] = 1;
- } */
- else if (!strcmp("SlrLine",ptr)) {
- BrvipFlash.ScalerRegister.SlrLine = data;
- pExist[PB_SlrLine] = 1;
- } else if (!strcmp("SlrInc",ptr)) {
- BrvipFlash.ScalerRegister.SlrInc = data;
- pExist[PB_SlrInc] = 1;
- }
- #if 0
- else if (!strcmp("Gpio_15",ptr)) {
- BrvipFlash.Gpio_15 = data;
- pExist[PB_Gpio_15] = 1;
- } else if (!strcmp("Gpio_16",ptr)) {
- BrvipFlash.Gpio_16 = data;
- pExist[PB_Gpio_16] = 1;
- }
- #else
- else if (!strcmp("PanelBackLight_GPIOmode",ptr)) {
- BrvipFlash.PanelBackLight_GPIOPin = (unsigned char)data;
- //pExist[PB_PanelBackLight_GPIOmode] = 1;
- }
- else if (!strcmp("PanelPower_GPIOmode",ptr)) {
- BrvipFlash.PanelPower_GPIOPin = (unsigned char)data;
- //pExist[PB_PanelPower_GPIOmode] = 1;
- }
- #endif
- else if (!strcmp("PanelBackLight_GPIOPin",ptr)) {
- BrvipFlash.PanelBackLight_GPIOPin = (unsigned char)data;
- pExist[PB_PanelBackLight_GPIOPin] = 1;
- }
- else if (!strcmp("PanelPower_GPIOPin",ptr)) {
- BrvipFlash.PanelPower_GPIOPin = (unsigned char)data;
- pExist[PB_PanelPower_GPIOPin] = 1;
- }
- else if (!strcmp("PanelBackLight_ActiveValue",ptr)) {
- BrvipFlash.PanelBackLight_ActiveValue = (unsigned char)data;
- pExist[PB_PanelBackLight_ActiveValue] = 1;
- }
- else if (!strcmp("PanelPower_ActiveValue",ptr)) {
- BrvipFlash.PanelPower_ActiveValue = (unsigned char)data;
- pExist[PB_PanelPower_ActiveValue] = 1;
- }
- else if (!strcmp("LCDBackLightOrder",ptr)) {
- BrvipFlash.LCDBackLightOrder = (DWORD)data;
- pExist[PB_LCDBackLightOrder] = 1;
- }
- else if (!strcmp("LCDBackLight_OtherFrq",ptr)) {
- BrvipFlash.LCDBackLight_OtherFrq = (DWORD)data;
- pExist[PB_LCDBackLight_OtherFrq] = 1;
- }
- else if (!strcmp("LCDBackLightMap_00",ptr)) {
- BrvipFlash.LCDBackLightMap_00 = (DWORD)data;
- pExist[PB_LCDBackLightMap_00] = 1;
- }
- else if (!strcmp("LCDBackLightMap_01",ptr)) {
- BrvipFlash.LCDBackLightMap_01 = (DWORD)data;
- pExist[PB_LCDBackLightMap_01] = 1;
- }
- else if (!strcmp("LCDBackLightMap_02",ptr)) {
- BrvipFlash.LCDBackLightMap_02 = (DWORD)data;
- pExist[PB_LCDBackLightMap_02] = 1;
- }
- else if (!strcmp("LCDBackLightMap_03",ptr)) {
- BrvipFlash.LCDBackLightMap_03 = (DWORD)data;
- pExist[PB_LCDBackLightMap_03] = 1;
- }
- else if (!strcmp("LCDBackLightMap_04",ptr)) {
- BrvipFlash.LCDBackLightMap_04 = (DWORD)data;
- pExist[PB_LCDBackLightMap_04] = 1;
- }
- else if (!strcmp("LCDBackLightMap_05",ptr)) {
- BrvipFlash.LCDBackLightMap_05 = (DWORD)data;
- pExist[PB_LCDBackLightMap_05] = 1;
- }
- else if (!strcmp("LCDBackLightMap_06",ptr)) {
- BrvipFlash.LCDBackLightMap_06 = (DWORD)data;
- pExist[PB_LCDBackLightMap_06] = 1;
- }
- else if (!strcmp("LCDBackLightMap_07",ptr)) {
- BrvipFlash.LCDBackLightMap_07 = (DWORD)data;
- pExist[PB_LCDBackLightMap_07] = 1;
- }
- else if (!strcmp("LCDBackLightMap_08",ptr)) {
- BrvipFlash.LCDBackLightMap_08 = (DWORD)data;
- pExist[PB_LCDBackLightMap_08] = 1;
- }
- else if (!strcmp("LCDBackLightMap_09",ptr)) {
- BrvipFlash.LCDBackLightMap_09 = (DWORD)data;
- pExist[PB_LCDBackLightMap_09] = 1;
- }
- else if (!strcmp("LCDBackLightMap_10",ptr)) {
- BrvipFlash.LCDBackLightMap_10 = (DWORD)data;
- pExist[PB_LCDBackLightMap_10] = 1;
- }
- else if (!strcmp("LCDBackLightMap_11",ptr)) {
- BrvipFlash.LCDBackLightMap_11 = (DWORD)data;
- pExist[PB_LCDBackLightMap_11] = 1;
- }
- else if (!strcmp("LCDBackLightMap_12",ptr)) {
- BrvipFlash.LCDBackLightMap_12 = (DWORD)data;
- pExist[PB_LCDBackLightMap_12] = 1;
- }
- else if (!strcmp("LCDBackLightMap_13",ptr)) {
- BrvipFlash.LCDBackLightMap_13 = (DWORD)data;
- pExist[PB_LCDBackLightMap_13] = 1;
- }
- else if (!strcmp("LCDBackLightMap_14",ptr)) {
- BrvipFlash.LCDBackLightMap_14 = (DWORD)data;
- pExist[PB_LCDBackLightMap_14] = 1;
- }
- else if (!strcmp("LogoType",ptr)) {
- BrvipFlash.LogoType = (DWORD)data;
- pExist[PB_LogoType] = 1;
- }
- else if (!strcmp("LogoSize",ptr)) {
- BrvipFlash.LogoSize = (DWORD)data;
- pExist[PB_LogoSize] = 1;
- }
- else if (!strcmp("PanelBackLight_OffdelayTime",ptr)) {
- BrvipFlash.PanelBackLight_OffdelayTime = (DWORD)data;
- pExist[PB_PanelBackLight_OffdelayTime] = 1;
- }
- else if (!strcmp("PanelBackPower_OffdelayTime",ptr)) {
- BrvipFlash.PanelBackPower_OffdelayTime = (DWORD)data;
- pExist[PB_PanelBackPower_OffdelayTime] = 1;
- }
- }
- fseek(InFile, mmioflag, SEEK_SET);
- //BrvipFlash.Before_MMIOAddress = 0xbc0b0000+sizeof(BRVIP_FLASH); 07/03/02008 David.
- BrvipFlash.Before_MMIOAddress = BR_ADDR_VIP+sizeof(BRVIP_FLASH);
- BrvipFlash.After_MMIOAddress = BrvipFlash.Before_MMIOAddress;
- ULSize = 0;
- //fwrite(&BrvipFlash,sizeof(BRVIP_FLASH),1,OutFile);
- while (fscanf(InFile,"\n%x %x %x %x",&data,&data1,&data2,&data3) != EOF)
- {
- if ((data == 0xffffffff)||(data == 0x00000000))
- {
- break;
- }
- //fwrite(&data,4,1,OutFile);
- //fwrite(&data1,4,1,OutFile);
- //fwrite(&data2,4,1,OutFile);
- //fwrite(&data3,4,1,OutFile);
- //BrvipFlash.After_MMIOAddress += 0x10;
- ULData[ULSize] = data;
- ULData[ULSize+1] = data1;
- ULData[ULSize+2] = data2;
- ULData[ULSize+3] = data3;
- ULSize += 4;
- }
- data=0xffffffff;
- //fwrite(&data,4,1,OutFile);
- //fwrite(&data,4,1,OutFile);
- //fwrite(&data,4,1,OutFile);
- //fwrite(&data,4,1,OutFile);
- //BrvipFlash.After_MMIOAddress += 0x10;
- ULData[ULSize] = data;
- ULData[ULSize+1] = data;
- ULData[ULSize+2] = data;
- ULData[ULSize+3] = data;
- ULSize += 4;
- BrvipFlash.After_MMIOAddress += (ULSize*4);
- printf("Before_MMIOAddress %x\n",(unsigned int)BrvipFlash.Before_MMIOAddress);
- printf("ULSize %x",(unsigned int)ULSize);
- printf("After_MMIOAddress %x\n",(unsigned int)BrvipFlash.After_MMIOAddress);
- //memcpy(pOutData+writeOffset, &BrvipFlash, sizeof(BRVIP_FLASH)); //write it later
- writeOffset += sizeof(BRVIP_FLASH);
- memcpy(pOutData+writeOffset, ULData, 4*ULSize);
- writeOffset += 4*ULSize;
- while (fscanf(InFile,"\n%x %x %x %x",&data,&data1,&data2,&data3) != EOF)
- {
- if ((data == 0xffffffff)||(data == 0x00000000))
- {
- break;
- }
- memcpy(pOutData+writeOffset, &data, 4);
- writeOffset += 4;
- memcpy(pOutData+writeOffset, &data1, 4);
- writeOffset += 4;
- memcpy(pOutData+writeOffset, &data2, 4);
- writeOffset += 4;
- memcpy(pOutData+writeOffset, &data3, 4);
- writeOffset += 4;
- }
- data=0xffffffff;
- memcpy(pOutData+writeOffset, &data, 4);
- writeOffset += 4;
- memcpy(pOutData+writeOffset, &data, 4);
- writeOffset += 4;
- memcpy(pOutData+writeOffset, &data, 4);
- writeOffset += 4;
- memcpy(pOutData+writeOffset, &data, 4);
- writeOffset += 4;
- #ifdef SET_338_VIP
- while (fscanf(InFile,"\n%x %x %x %x",&data,&data1,&data2,&data3) != EOF)
- {
- if ((data == 0xffffffff)||(data == 0x00000000))
- {
- break;
- }
- memcpy(pOutData+writeOffset, &data, 4);
- writeOffset += 4;
- memcpy(pOutData+writeOffset, &data1, 4);
- writeOffset += 4;
- memcpy(pOutData+writeOffset, &data2, 4);
- writeOffset += 4;
- memcpy(pOutData+writeOffset, &data3, 4);
- writeOffset += 4;
- }
- data=0xffffffff;
- memcpy(pOutData+writeOffset, &data, 4);
- writeOffset += 4;
- memcpy(pOutData+writeOffset, &data, 4);
- writeOffset += 4;
- memcpy(pOutData+writeOffset, &data, 4);
- writeOffset += 4;
- memcpy(pOutData+writeOffset, &data, 4);
- writeOffset += 4;
- #endif //SET_338_VIP
- #if 1
- if(i2c0_fileoffset){
- int tmp_write_size = write_i2c_data_to_bin(InFile, i2c0_fileoffset, pOutData, writeOffset);
- if(tmp_write_size > 0){
- BrvipFlash.I2C0_IndexAddress = (short)writeOffset;
- writeOffset += tmp_write_size;
- }
- }
- if(i2c1_fileoffset){
- int tmp_write_size = write_i2c_data_to_bin(InFile, i2c1_fileoffset, pOutData, writeOffset);
- if(tmp_write_size > 0){
- BrvipFlash.I2C1_IndexAddress = (short)writeOffset;
- writeOffset += tmp_write_size;
- }
- }
- #endif
- fclose(InFile);
- /* store brvip after save all struct data */
- memcpy(pOutData, &BrvipFlash, sizeof(BRVIP_FLASH));
- #if 0 //gaia, 2013.05.02 ya! i don't know what is this..
- //--------- Option
- if (optionflag)
- {
- if(PANELSET_SIZE != PANELSET_NOW_USE_FIX_SIZE)
- {
- fprintf(stderr, "Error! \nPanelSet Size change !\n Driver must update for this");
- return -1;
- }
- DWORD fileLen;
- fileLen = writeOffset % mergeToSize;
- if(fileLen >= (PANELSET_OPTION_D_OFFSET)) //0x7ec
- {
- fprintf(stderr, "Error! \nPanelSet Size change ! Over ox 7 e c\n Tool must update");
- return -1;
- }
- writeOffset = PANELSET_OPTION_D_OFFSET;
- memcpy(pOutData+writeOffset, &tempDW,4);
- }
- //---------
- //check lost only
- for(i=0; i<PB_MAX_END ;i++)
- {
- if(pExist[i]!=1)
- {
- fprintf(stderr, "Error \n\n It must have lost data at No %d\n", i);
- return -1;
- }
- }
- #endif
- return writeOffset;
- }
- int BMP2Bin(char *szFileIn, char *szFileOut)
- {
- unsigned char BMPFILEHEADER[14],BMPINFOSIZE[4],WIDTH[4],HEIGHT[4];
- FILE *fin,*fout;
- int numread,i,dataoffset;//fseekresult;
- int width,height;//,size;
- int outwidth,align_offset;
- int icolor;
- //int line_offset;
- int line_length_pad;
- unsigned char *READLINE, *ZERO;
- unsigned char MYWORD[2];
- int fin_index,fout_index;
- #ifdef CustomerLOGO
- unsigned char buf[8]={0x00};
- #endif
- READLINE = malloc(12288);
- if (READLINE == NULL)
- return 0;
- ZERO = malloc(12288);
- if (ZERO == NULL)
- {
- free(READLINE);
- return 0;
- }
-
- fout_index=0;
- for(i=0;i<12288;i++)
- {
- ZERO[i]=0;
- if((i%3)==0) ZERO[i]=0xff;
- }
- //line_offset=0;
- fin=fopen(szFileIn,"rb");
- fout=fopen(szFileOut,"wb");
- //foutARGB=fopen(argv[3],"w+");
- if (fin == NULL || fout == NULL)
- {
- if (fin) fclose(fin);
- if (fout) fclose(fout);
- free(READLINE);
- free(ZERO);
- fprintf(stderr, "Open file fail!!");
- return 0;
- }
- fseek( fin, 0, SEEK_SET);//fseekresult=fseek( fin, 0, SEEK_SET);
- numread = fread( BMPFILEHEADER, sizeof( char ), 14, fin );
- if(numread!=14)
- {
- fprintf(stderr, "Error:read file header error!!\n");
- fclose(fout);
- fclose(fin);
- free(READLINE);
- free(ZERO);
- return 0;
- }
- if((BMPFILEHEADER[0]!=0x42)||(BMPFILEHEADER[1]!=0x4d))
- {
- fprintf(stderr, "Error:Not BMP File!!");
- fclose(fout);
- fclose(fin);
- free(READLINE);
- free(ZERO);
- return 0;
- }
- //<=============================Process Header======================>
- //< Just capture what we need..... >
- //< DataOffSet: >
- //< Width: >
- //< Height: >
- //<=================================================================>
- //for(i=0;i<14;i++)
- // printf("0x%02x ",(char)BMPFILEHEADER[i]);
- //printf("\n");
- dataoffset=(((BMPFILEHEADER[13]<<8)+BMPFILEHEADER[12])<<16)+(BMPFILEHEADER[11]<<8)+BMPFILEHEADER[10];
- //printf("dataoffset=%d\n",dataoffset);
- fseek( fin, 14, SEEK_SET);//fseekresult=fseek( fin, 14, SEEK_SET);
- numread =fread( BMPINFOSIZE, sizeof( char ), 4, fin );
- if(numread!=4)
- {
- fprintf(stderr, "Error:read BMP Info Header error!!");
- fclose(fout);
- fclose(fin);
- free(READLINE);
- free(ZERO);
- return 0;
- }
- #if 0 //fgets( BMPINFOSIZE, 4, fin );
- size=(((BMPINFOSIZE[3]<<8)+BMPINFOSIZE[2])<<16)+(BMPINFOSIZE[1]<<8)+BMPINFOSIZE[0];
- #endif
- fseek( fin, 18, SEEK_SET);//fseekresult=fseek( fin, 18, SEEK_SET);
- numread=fread( WIDTH, sizeof( char ), 4, fin );
- if(numread!=4)
- {
- fprintf(stderr, "Error:read BMP Info Header error!!");
- fclose(fout);
- fclose(fin);
- free(READLINE);
- free(ZERO);
- return 0;
- }
- width=(((WIDTH[3]<<8)+WIDTH[2])<<16)+(WIDTH[1]<<8)+WIDTH[0];
- fseek( fin, 22, SEEK_SET);//fseekresult=fseek( fin, 22, SEEK_SET);
- numread=fread( HEIGHT, sizeof( char ), 4, fin );
- if(numread!=4)
- {
- fprintf(stderr, "Error:read BMP Info Header error!!");
- fclose(fout);
- fclose(fin);
- free(READLINE);
- free(ZERO);
- return 0;
- }
- height=(((HEIGHT[3]<<8)+HEIGHT[2])<<16)+(HEIGHT[1]<<8)+HEIGHT[0];
- printf("Input BMP width=%d,height=%d\n",width,height);
- fseek( fin, 28, SEEK_SET);//fseekresult=fseek( fin, 28, SEEK_SET);
- numread=fread( MYWORD, sizeof( char ), 2, fin );
- if(numread!=2)
- {
- fprintf(stderr, "Error:read BMP Info Header error!!");
- fclose(fout);
- fclose(fin);
- free(READLINE);
- free(ZERO);
- return 0;
- }
- icolor=(MYWORD[1]<<8)+MYWORD[0];
- printf("icolor=%d\n",icolor);
- //<======================== Read Data ================================>
- //< (GBR)(GBR)(GBR)...................................................>
- //< (RBG)(RBG)........................................................>
- //<===================================================================>
- outwidth=(((width*3)+255)/256)*256;
- //outwidth=line_offset*256;
- if((width*3)%4)
- line_length_pad=(4-((width*3)%4));
- else
- line_length_pad=0;
- printf("line_length_pad=%d\n",line_length_pad);
- fin_index=dataoffset+(height-1)*width*3+(height-1)*line_length_pad;
- align_offset=outwidth-width*3-line_length_pad;
- printf("align_offset=%d,outwidth=%d\n",align_offset,outwidth);
- // for(i=height-1;i>0;i--)
- for(i=0;i<height;i++)
- {
- //printf("line %d\n",i);
- //printf("offset(fin_index):0x%x\n",fin_index);
- fseek( fin, fin_index, SEEK_SET);//fseekresult=fseek( fin, fin_index, SEEK_SET);
- numread=fread( READLINE, sizeof( char ),(line_length_pad+(width*3)) , fin );
- if(numread!=line_length_pad+(width*3))
- {
- //printf("fseekresult=%d numread should be %d,but is %d\n",fseekresult,line_length_pad+(width*3),numread);
- fseek( fin, fin_index, SEEK_SET);//fseekresult=fseek( fin, fin_index, SEEK_SET);
- numread=fread( READLINE, sizeof( char ),( line_length_pad+(width*3)), fin );
- if(numread!=line_length_pad+(width*3))
- {
- if ( ferror( fin ) )
- printf( "rs:file Read error\n" );
- else
- printf("rs:not ferror\n");
- if ( feof( fin ) )
- printf( "rs:file end\n" );
- else
- printf("rs:not feof\n");
- fprintf(stderr, "Error:read RGB row data failed!");
- printf("numread should be %d,but is %d\n",line_length_pad+(width*3),numread);
- fclose(fout);
- fclose(fin);
- free(READLINE);
- free(ZERO);
- return 0;
- }
- }
- {
- int j;
- unsigned char G,B,R;
- //======Transfer GBR to RBG============
- for(j=0;j<width;j++)
- {
- //printf("j=%d,SRC(%02x,%02x,%02x)",j,READLINE[j*3],READLINE[j*3+1],READLINE[j*3+2]);
- int p;
- B=READLINE[j*3];
- G=READLINE[j*3+1];
- R=READLINE[j*3+2];
- READLINE[j*3]=R;
- READLINE[j*3+1]=B;
- READLINE[j*3+2]=G;
- //printf("j=%d,DES(%02x,%02x,%02x)\n",j,READLINE[j*3],READLINE[j*3+1],READLINE[j*3+2]);
- if(j==width-1)
- {
- for(p=0;p<line_length_pad;p++)
- {
- READLINE[j*3+3+p]=0;
- }
- }
- }
- }
- fseek( fout, fout_index, SEEK_SET);//fseekresult=fseek( fout, fout_index, SEEK_SET);
- fwrite(READLINE, sizeof( char ), line_length_pad+width*3, fout);
- fout_index+=line_length_pad+width*3;
- fseek( fout, fout_index, SEEK_SET);//fseekresult=fseek( fout, fout_index, SEEK_SET);
- fwrite(ZERO, sizeof( char ), align_offset, fout);
- //printf("write 0x%3x bytes",align_offset+width*3);
- fout_index+=align_offset;
- fin_index-=line_length_pad+width*3;
- //printf("fout_index: 0x%3x ,fin_index:%d=0x%08x\n",fout_index,fin_index,fin_index);
- }
- #ifdef CustomerLOGO
- fseek( fout, 0, SEEK_SET);//fseekresult=fseek( fout, fout_index, SEEK_SET);
- fwrite(WIDTH, sizeof( char ), 4, fout);
- fwrite(HEIGHT, sizeof( char ), 4, fout);
- fwrite(buf, sizeof( char ), 8, fout);
- #endif
- fclose(fout);
- fclose(fin);
- free(READLINE);
- free(ZERO);
- return 1;
- }
|