📄 isomodem.c
字号:
"S025000000200123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEFBA\x0d\x0a"
"S025000000400123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF9A\x0d\x0a"
"S32500004B5926434849303031850DABE4140E28C3F677B40CB0F4140EA0C56C6C00FF000C90B2\x0d\x0a"
"S32500004B79014A0C01E7CC0C28C3F677CC0C5EF9CC0CA0C5176700FF0002B01080150A42001B\x0d\x0a"
"S32500004B990E00130F64000301000000000041DC022003320000001E010A0700002C00FF2F60\x0d\x0a"
"S32500004BB9FF1FFF0F03020A0041000A0041000414007800100058020219005A0019005A002D\x0d\x0a"
"S32500004BD9030000000000000000010000000000000000010A0041000A00410004140078008B\x0d\x0a"
"S32500004BF9B40058020219005A0019005A00030000000000000000010000000000000000019B\x0d\x0a"
"S32500004C196400005A5A4700000000004B2C0100000000000014000500000500780000000008\x0d\x0a"
"S32500004C390000000000201C010007004600008311401B00000800060208020701FF5A080158\x0d\x0a"
"S32500004C59FF010901FF060A01FE0E0B32FF551BFF00491CFF00081D0564325B010F0A5C0A65\x0d\x0a"
"S32500004C790F0AFF0000000000000000000000000000000000000000000000000000FFFFFF00\x0d\x0a"
"S30700004C99FFFF15\x0d\x0a"
"S70500000000FA\x0d\x0a"
"S32500004C9B4444444C394E4444444444444C8E4E4444444444444444444C754F4444444CE820\x0d\x0a"
"S32500004CBB4E4C2C4F4C574F4444444444444444444444444444444444444444444444444428\x0d\x0a"
"S32500004CDB444444444444444444444444444444444444444444444444444444444444444433\x0d\x0a"
"S32500004CFB4444444444444444444444444444444444444444444CCC4F4C194E4CAA4D44441A\x0d\x0a"
"S32500004D1B444C544E4CEF4E4444444444444444444444444444444444444444444444444413\x0d\x0a"
"S32500004D3B44444444444444444444444444444444444444444444444444444CDF4E44444425\x0d\x0a"
"S32500004D5B4444444444444444444444444444444444444C834D4444444444444444444CF4AA\x0d\x0a"
"S30C00004D7B4D4CF44DE12C3014\x0d\x0a"
"S70500000000FA\x0d\x0a"
"S32500004D8200E2B4140105F25714800A831603DBCF831700984D448316000000F2A500100427\x0d\x0a"
"S32500004DA23403DBCF3403E0CFADC614C953D014831401668F831500CC4D8316024882831760\x0d\x0a"
"S32500004DC200D24D20D84D20834F44A91C3401688FC92134024A82ADC614C9F9D0148314038D\x0d\x0a"
"S32500004DE20C868315031686831203368E8313033B8E6083140104AC831500094E83160120D3\x0d\x0a"
"S32500004E02AC831700114E44A9FFA0FF340108ACA9FFA0FF340124ACAD1046C944D00A8310A8\x0d\x0a"
"S32500004E2202727B8311002B4E448308027B7B4300B74F443403E05E8318025A698319002188\x0d\x0a"
"S32500004E424F83120344428313034642430333B54C754FADCA14C92FD016831003455C83114A\x0d\x0a"
"S32500004E62008C4E831203615C8313008C4E801BADCA14C9A1D0148310000000E2B414010ACF\x0d\x0a"
"S32500004E828310037F5E831100354E806B8310035922831100994E44C901D01FD240600DD2BB\x0d\x0a"
"S32500004EA220600DC240600DC220600DD240600DD220600D8310000000800A83100364228305\x0d\x0a"
"S32500004EC21100CA4E340359228308035ACCADB3144304644E83100000003403642248A2058F\x0d\x0a"
"S32500004EE24300F1B46844AD2B1443044146AD2E142906F00237A544AD2E142904F020A5B2A9\x0d\x0a"
"S32500004F02C980D01AA021A200B20B47A90943041248A016A200B20A47A9884304124844C06B\x0d\x0a"
"S32500004F2235D002A0256B34025B69831003CE6C831100374F44831003FA6D831100454F34B1\x0d\x0a"
"S32500004F4203DE6C8310000000E2391420043403FA6D3403FD6DF26C14010AA180C954D00448\x0d\x0a"
"S32500004F62C2200E1444C201824DE20E142004D201824D60C2200E14E2824D0104D2200E1457\x0d\x0a"
"S32500004F8244AD2E48C901F008C902F004C904D023E25D14101EE26A148019ADDE482901D01A\x0d\x0a"
"S32500004FA212ADE448CD2648B00AC2806A14C2205D14A701600193887AB9C74F5A93C848A9E3\x0d\x0a"
"S32500004FC25648ADB64FC378800568831003C124831100DA4F20674F44904FB2CA44B2504519\x0d\x0a"
"S32500004FE2830803B92A4300B74F90043403C324F255141041A200B144290FC901F01FC90818\x0d\x0a"
"S32500005002F01BC909F017C90AF00CF2551401078310032826800C831003A12580058310038B\x0d\x0a"
"S325000050224C258311003E50800C204150C9FFF0050AAA203B503403C6247C9F506C4600DA64\x0d\x0a"
"S325000050425AA54048A54148A54248A54348B29E42B25043A000AD6B468540AD6C468541A1D4\x0d\x0a"
"S3250000506242C9FFF025AAE642D002E643B140D142D005CA10F78015C8E642D002E643A1422F\x0d\x0a"
"S32500005082D0F6E642D002E64380D5A0FF688543688542688541688540987AFA60FF43032A96\x0d\x0a"
"S325000050A205A200B27F40B24D41B140430358B3E8E00390F5800020BF5034038626831003D6\x0d\x0a"
"S31B000050C2C124831100DA4F602D5056000A00009F50FF0000000005\x0d\x0a"
"S70500000000FA\x0d\x0a"
"S30E00004A3BA9008D17463403D722A9\x0d\x0a"
"S70500004A3B75\x0d\x0a"
"[PATCH_END]\x0d\x0a"
"[PATCH_CHECKSUM=]\x0d\x0a"
"[PATCH_VER=E12C30]\x0d\x0a"
"[INITSDLC_BEGIN]\x0d\x0a"
"[INITSDLC_END]\x0d\x0a"
"[INITASYS_BEGIN]\x0d\x0a"
"[INITASYS_END]\x0d\x0a"
"[ELSE_BEGIN]\x0d\x0a"
"[ELSE_END]\x0d\x0a"
;
char cx_qdzh_patch_info[]=
"[TYPE=1]\x0d\x0a"
"[PATCH_BEGIN]\x0d\x0a"
"S32500003000A9008D1746830200200D3080FB4303C901B0577C163066306B308030853080309B\x0d\x0a"
"S3250000302090308030B4308030B4308030B430803007318030A4305E3065306530B94B308531\x0d\x0a"
"S3250000304040B94C3085414303F9AC604D300D0A52414D204C6F6164204572726F7200A00006\x0d\x0a"
"S32500003060203C30A22260C953F03760C390C930F0301419C933F02A1419C937F024A22060E5\x0d\x0a"
"S3250000308020B831801C20B831C3A314B3C3B3801120B831043AC000F004C080D0E0C3C3C314\x0d\x0a"
"S325000030A080E8E86020B831043AC31AC9FFD0CEC3297C183120B831043A0488048804880430\x0d\x0a"
"S325000030C08804880488048804880438E016D0D2830D000016F30BF02CF309F0C5F30CF0C13D\x0d\x0a"
"S325000030E092080000164E00166E02166E0116AD01168D160CAD02168D170C7B0CB494C2082A\x0d\x0a"
"S325000031001F0C809DA21C6020B831043A98A39DCACA14FBD00214326056311E315731A20009\x0d\x0a"
"S32500003120F30CD016830C000016F4CDC33DF027A31CA39888D0F960A26560F21B0C80F88301\x0d\x0a"
"S325000031400C000016F4CDC33DA31C8D800CA31C8D810C8888D0F260F308F008F30CD0094395\x0d\x0a"
"S32500003160006631A20060C37892080000164E00166E02166E01164E00166E02166E0116A93E\x0d\x0a"
"S32500003180008D740C8D750CA9D08D720CA9128D730CA9408D740CA9008D750CAD01168D7253\x0d\x0a"
"S325000031A00CAD02168D730CA9808D740CA9008D750CC2081F0CA2006004330433043304336C\x0d\x0a"
"S31F000031C038E9309011C90A900AE9119009C906B005890A041360DBA2206072\x0d\x0a"
"S70500003000CA\x0d\x0a"
"S025000000000123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEFDA\x0d\x0a"
"S025000000200123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEFBA\x0d\x0a"
"S025000000400123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF9A\x0d\x0a"
"S32500004B5926434849303031850DABE4140E28C3F677B40CB0F4140EA0C56C6C00FF000C90B2\x0d\x0a"
"S32500004B79014A0C01E7CC0C28C3F677CC0C5EF9CC0CA0C5176700FF0002B01080150A42001B\x0d\x0a"
"S32500004B990E00130F64000301000000000041DC022003320000001E010A0700002C00FF2F60\x0d\x0a"
"S32500004BB9FF1FFF0F03020A0041000A0041000414007800100058020219005A0019005A002D\x0d\x0a"
"S32500004BD9030000000000000000010000000000000000010A0041000A00410004140078008B\x0d\x0a"
"S32500004BF9B40058020219005A0019005A00030000000000000000010000000000000000019B\x0d\x0a"
"S32500004C196400005A5A4700000000004B2C0100000000000014000500000500780000000008\x0d\x0a"
"S32500004C390000000000201C010007004600008311401B00000800060208020701FF5A080158\x0d\x0a"
"S32500004C59FF010901FF060A01FE0E0B32FF551BFF00491CFF00001D0564325B010F0A5C0A6D\x0d\x0a"
"S32500004C790F0AFF0000000000000000000000000000000000000000000000000000FFFFFF00\x0d\x0a"
"S30700004C99FFFF15\x0d\x0a"
"S70500000000FA\x0d\x0a"
"S32500004C9B4444444C394E4444444444444CA54E4444444444444444444C8C4F4444444CFFDB\x0d\x0a"
"S32500004CBB4E4C434F4C6E4F44444444444444444444444444444444444444444444444444FA\x0d\x0a"
"S32500004CDB444444444444444444444444444444444444444444444444444444444444444433\x0d\x0a"
"S32500004CFB4444444444444444444444444444444444444444444CE34F4C194E4CAA4D444403\x0d\x0a"
"S32500004D1B444C544E4C064F44444444444444444444444444444444444444444444444444FB\x0d\x0a"
"S32500004D3B44444444444444444444444444444444444444444444444444444CF64E4444440E\x0d\x0a"
"S32500004D5B4444444444444444444444444444444444444C834D4444444444444444444CF4AA\x0d\x0a"
"S30C00004D7B4D4CF44DE12C3212\x0d\x0a"
"S70500000000FA\x0d\x0a"
"S32500004D8200E2B4140105F25714800A831603DBCF831700984D448316000000F2A500100427\x0d\x0a"
"S32500004DA23403DBCF3403E0CFADC614C953D014831401668F831500CC4D8316024882831760\x0d\x0a"
"S32500004DC200D24D20D84D209A4F44A91C3401688FC92134024A82ADC614C9F9D01483140376\x0d\x0a"
"S32500004DE20C868315031686831203368E8313033B8E6083140104AC831500094E83160120D3\x0d\x0a"
"S32500004E02AC831700114E44A9FFA0FF340108ACA9FFA0FF340124ACAD1046C944D00A8310A8\x0d\x0a"
"S32500004E2202727B8311002B4E448308027B7B4300CE4F443403E05E8318025A69831900385A\x0d\x0a"
"S32500004E424F83120344428313034642430333B54C8C4FADCA14C92FD016831003455C831133\x0d\x0a"
"S32500004E6200964E831203615C831300964E8025ADCA14C9A1D01E831403B25F831500984EC6\x0d\x0a"
"S32500004E828310000000E2B414010A8310037F5E831100354E8078F2AB0040043403B75F34DE\x0d\x0a"
"S32500004EA203FB5F8310035922831100B04E44C901D01FD240600DD220600DC240600DC220BE\x0d\x0a"
"S32500004EC2600DD240600DD220600D8310000000800A8310036422831100E14E34035922834E\x0d\x0a"
"S32500004EE208035ACCADB3144304644E83100000003403642248A2054300F1B46844AD2B144D\x0d\x0a"
"S32500004F0243044146AD2E142906F00237A544AD2E142904F020A5B2C980D01AA021A200B2C0\x0d\x0a"
"S32500004F220B47A90943041248A016A200B20A47A9884304124844C035D002A0256B34025BCB\x0d\x0a"
"S32500004F4269831003CE6C8311004E4F44831003FA6D8311005C4F3403DE6C8310000000E269\x0d\x0a"
"S32500004F62391420043403FA6D3403FD6DF26C14010AA180C954D004C2200E1444C201824D10\x0d\x0a"
"S32500004F82E20E142004D201824D60C2200E14E2824D0104D2200E1444AD2E48C901F008C91F\x0d\x0a"
"S32500004FA202F004C904D023E25D14101EE26A148019ADDE482901D012ADE448CD2648B00A0C\x0d\x0a"
"S32500004FC2C2806A14C2205D14A701600193887AB9DE4F5A93C848A95648ADCD4FC378800565\x0d\x0a"
"S32500004FE268831003C124831100F14F207E4F44904FB2E144B25045830803B92A4300CE4FF3\x0d\x0a"
"S3250000500290043403C324F255141041A200B144290FC901F01FC908F01BC909F017C90AF00A\x0d\x0a"
"S325000050220CF2551401078310032826800C831003A12580058310034C258311005550800CDC\x0d\x0a"
"S32500005042205850C9FFF0050AAA2052503403C6247CB6506C4600DA5AA54048A54148A54282\x0d\x0a"
"S3250000506248A54348B2B542B25043A000AD6B468540AD6C468541A142C9FFF025AAE642D078\x0d\x0a"
"S3250000508202E643B140D142D005CA10F78015C8E642D002E643A142D0F6E642D002E6438067\x0d\x0a"
"S325000050A2D5A0FF688543688542688541688540987AFA60FF43032A05A200B27F40B24D4187\x0d\x0a"
"S325000050C2B140430358B3E8E00390F5800020D65034038626831003C124831100F14F602DB1\x0d\x0a"
"S312000050E25056000A0000B650FF0000000006\x0d\x0a"
"S70500000000FA\x0d\x0a"
"S30E00004A3BA9008D17463403D722A9\x0d\x0a"
"S70500004A3B75\x0d\x0a"
"[PATCH_END]\x0d\x0a"
"[PATCH_CHECKSUM=]\x0d\x0a"
"[PATCH_VER=E12C32]\x0d\x0a"
"[INITSDLC_BEGIN]\x0d\x0a"
"[INITSDLC_END]\x0d\x0a"
"[INITASYS_BEGIN]\x0d\x0a"
"[INITASYS_END]\x0d\x0a"
"[ELSE_BEGIN]\x0d\x0a"
"[ELSE_END]\x0d\x0a"
;
char si_default_patch_info[]=
"[TYPE=3]\x0d\x0a"
"[PATCH_BEGIN]\x0d\x0a"
"AT:PIB\x0d\x0a"
"AT:Pf800,7b5d,fc77,7b5f,fc6c,7b59,fc6e,7b5b\x0d\x0a"
"AT:Pf807,fc6f,7b55,fc33,7b57,fc3d,7b51,fc3f\x0d\x0a"
"AT:Pf80e,7b53,fc27,7b4d,fc0e,7b4f,fc0d,7b49\x0d\x0a"
"AT:Pf815,fc09\x0d\x0a"
"AT:Pf821,fc9b,48d,7673,fc91,fcb7,7667,4fa,496\x0d\x0a"
"AT:Pf829,6921,4f7,3d3,88da,8901,24c9,4e2,3c8\x0d\x0a"
"AT:Pf831,fc49,14ef,480,4ed,e42,6bba,7352,7140\x0d\x0a"
"AT:Pf839,4ba0,34f5,4f2,2c4,6e3d,6338,44e2,4ef\x0d\x0a"
"AT:Pf841,490,3ba,94ef,99,4eb,7d10,48e,430,93d7\x0d\x0a"
"AT:Pf84a,417,496,4f2,6945,493,3b7,88a6,897d\x0d\x0a"
"AT:Pf852,24a5,49e,42c,1488,4e5,48e,e2f,6bd5\x0d\x0a"
"AT:Pf85a,733f,7123,4bc5,4e2,483,3a7,fc1b,fc19\x0d\x0a"
"AT:Pf862,b8bf,b606,770c,c6ea,f5bb,8a5a,cc0\x0d\x0a"
"AT:Pf869,c574,4a7,8cc3,7b31,a5a3,c5ba,b66,7b2d\x0d\x0a"
"AT:Pf871,a65a,8cb1,7b2e,4eab,c6ca,b8e9,6bd8\x0d\x0a"
"AT:Pf878,baae,f1ac,fc2b,b8e4,89a1,b8e2,65a6\x0d\x0a"
"AT:Pf87f,4a4,895d,f25c,fcd3,b81c,8959,b81a\x0d\x0a"
"AT:Pf886,b649,fccb,c6ea,b816,7bd7,8d73,c632\x0d\x0a"
"AT:Pf88d,ae42,c6ec,7bd2,8d68,695b,68a9,69c4\x0d\x0a"
"AT:Pf894,7797,690a,772d,6e9d,6e92,69e8,fc0b\x0d\x0a"
"AT:Pf89b,6e91,6ba5,6e97,6ba7,1b31,c7d,41c,47b\x0d\x0a"
"AT:Pf8a3,c577,66f9,7bf8,f755,c573,66f5,7bf4\x0d\x0a"
"AT:Pf8aa,f772,c578,66cf,55f0,e373,bb6b,c6d8\x0d\x0a"
"AT:Pf8b1,ab,4f97,7bee,bb70,6b0b,f1e3,c8ea,ba64\x0d\x0a"
"AT:Pf8b9,9407,7ae7,d78e,7be1,fc95,f563,7be2\x0d\x0a"
"AT:Pf8c0,2ac,7a9c,3193,8997,8989,c61,c5eb,319\x0d\x0a"
"AT:Pf8c8,c5d5,4414,8c6e,c6f,c5e1,c413,8c6a\x0d\x0a"
"AT:Pf8cf,92,7b8d,bac5\x0d\x0a"
"AT:P411,42,50,0,9f0e,2\x0d\x0a"
"AT:P411,42,50,1,9eb0,1\x0d\x0a"
"AT:P411,42,50,2,45fd,1\x0d\x0a"
"AT:P411,42,50,3,8712,2\x0d\x0a"
"AT:P411,42,50,4,ece8,1\x0d\x0a"
"AT:P411,42,50,5,ed03,1\x0d\x0a"
"AT:P411,42,50,6,b916,1\x0d\x0a"
"AT:P411,42,50,7,ccdf,1\x0d\x0a"
"AT:P411,42,50,8,8dbc,4\x0d\x0a"
"AT:P411,42,50,9,9f4d,2\x0d\x0a"
"AT:P411,42,50,a,d54a,2\x0d\x0a"
"AT:PIB0\x0d\x0a"
"[PATCH_END]\x0d\x0a"
"[PATCH_CHECKSUM=6743]\x0d\x0a"
"[PATCH_VER=46]\x0d\x0a"
"[INITSDLC_BEGIN]\x0d\x0a"
"[INITSDLC_END]\x0d\x0a"
"[INITASYS_BEGIN]\x0d\x0a"
"[INITASYS_END]\x0d\x0a"
"[ELSE_BEGIN]\x0d\x0a"
"[ELSE_END]\x0d\x0a"
;
uchar EI_PatchInit(void)
{
E_pfs_FILE_INFO FileInfo;
int Error;
uint uiNum;
char *pdata;
PfsFileHandle hFileHandle;
EM_modem_patch *gptIMPROFILE;
gptIMPROFILE = &EG_patch_Info;
memset(gptIMPROFILE,0x00,sizeof(EM_modem_patch));
// 获取文件信息
Error = EA_iFileSearch("/System/MODEM_PATCH.PAT", 1, &FileInfo, & uiNum);
if (Error != EM_pfs_SUCCESS)
{
uprintf("search modem.pat fail,ret=%d\r\n", Error);
return EM_ERROR;
}
if(uiNum==0)
{
/* patch file not exist,use default patch info */
switch(EG_modem_STS.modem)
{
case EM_MODEM_CX:
/* attention: Name len <=22 */
memcpy(gptIMPROFILE->m_cDispName,"CX default Patch",strlen("CX default Patch"));
uprintf("use cx default patch\r\n");
return(EI_PatchSet(&EG_patch_Info,cx_default_patch_info));
case EM_MODEM_SI:
/* attention: Name len <=22 */
memcpy(gptIMPROFILE->m_cDispName,"SI default Patch",strlen("CX default Patch"));
uprintf("use si default patch\r\n");
return(EI_PatchSet(&EG_patch_Info,si_default_patch_info));
default:
uprintf("FATAL ERROR:%s\r\n",__FUNCTION__);
return EM_ERROR;
}
}
// 打开文件
hFileHandle = EA_pfs_hFileOpen("/System/MODEM_PATCH.PAT", NULL,EM_pfs_MODE_READ, &Error);
if (Error != EM_SUCCESS)
{
uprintf("open modem.pat fail,ret=%d\r\n", Error);
return EM_ERROR;
}
// 设置显示名
memcpy(gptIMPROFILE->m_cDispName,FileInfo.acDisplay,22);
uprintf("PROFILE name:%s\r\n",gptIMPROFILE->m_cDispName);
uprintf("PROFILE data len=%d\r\n",FileInfo.uiFileLength-256);
//定位
EA_pfs_iFileSeek(256, 0, hFileHandle);
if (Error != EM_pfs_SUCCESS) // 读取失败
{
uprintf("文件定位失败,原因%d", Error);
EA_pfs_iFileClose(hFileHandle);
return EM_ERROR;
}
/* alloc local memory */
pdata = EA_pvMalloc(FileInfo.uiFileLength+1);
if(pdata==EM_NULL)
{
return EM_ERROR;
}
memset(pdata,0,FileInfo.uiFileLength+1);
// 读文件数据
EA_pfs_iFileRead(pdata, FileInfo.uiFileLength-256, 1, hFileHandle, &Error);
if (Error != EM_pfs_SUCCESS) // 读取失败
{
uprintf("读文件失败,原因%d", Error);
EA_pfs_iFileClose(hFileHandle);
goto err_out1;
}
// 关闭文件,保存文件信息
Error = EA_pfs_iFileClose(hFileHandle);
if (Error != EM_SUCCESS)
{
uprintf("关闭文件失败,原因是%d", Error);
goto err_out1;
}
EI_PatchSet(&EG_patch_Info,pdata);
EA_vFree(pdata);
return EM_SUCCESS;
err_out1:
EA_vFree(pdata);
return EM_ERROR;
}
uchar EI_PatchSet(EM_modem_patch *gptIMPROFILE,char *patch)
{
char *p1,*p2,*pdata;
uint len=0;
if(gptIMPROFILE->ucProfileUse==1)
{
uprintf("release last patch info\r\n");
/* AT+PATCH命令调用重新设置patch */
if(gptIMPROFILE->m_pcPatch!=NULL)
EA_vFree(gptIMPROFILE->m_pcPatch);
if(gptIMPROFILE->m_pcInitSdlc!=NULL)
EA_vFree(gptIMPROFILE->m_pcInitSdlc);
if(gptIMPROFILE->m_pcInitAsys!=NULL)
EA_vFree(gptIMPROFILE->m_pcInitAsys);
if(gptIMPROFILE->m_pcProfileElse!=NULL)
EA_vFree(gptIMPROFILE->m_pcProfileElse);
}
memset(gptIMPROFILE,0x00,sizeof(EM_modem_patch));
/* 注意,此处必须做一次拷贝,因为设置过程中会改变原来的串 */
len = strlen(patch);
pdata = EA_pvMalloc(len+1);
if(pdata==NULL)
return EM_ERROR;
memcpy(pdata,patch,len);
//TRACE_CONTENTS(100,pdata);
/* dev type */
p1=strstr(pdata,"[TYPE=");
p2=strstr(pdata,"]\x0d\x0a");
if(p1==NU_NULL||p2==NU_NULL)
goto err_out1;
*p2=0x00;
gptIMPROFILE->ucDevType = atoi(p1+strlen("[TYPE="));
p2+=strlen("]\x0d\x0a");
if(EI_ProfileType(gptIMPROFILE->ucDevType)!=EM_SUCCESS)
{
goto err_out1;
}
uprintf("Profile type=%d\r\n",gptIMPROFILE->ucDevType);
/* patch */
p1=strstr(p2,"[PATCH_BEGIN]\x0d\x0a");
p2=strstr(p2,"[PATCH_END]\x0d\x0a");
if(p1==NU_NULL||p2==NU_NULL)
goto err_out1;
p1+=strlen("[PATCH_BEGIN]\x0d\x0a");
uprintf("[PATCH: p1=%x,p2=%x]\r\n",p1-pdata,p2-pdata);
len = (uint)(p2-p1);
gptIMPROFILE->uiPatchLen = len;
gptIMPROFILE->m_pcPatch = EA_pvMalloc(len+1);
if(gptIMPROFILE->m_pcPatch==EM_NULL)
{
goto err_out1;
}
memset(gptIMPROFILE->m_pcPatch,0x00,len+1);
memcpy(gptIMPROFILE->m_pcPatch,p1,len);
p2+=strlen("[PATCH_END]\x0d\x0a");
/* patch checksum */
p1=strstr(p2,"[PATCH_CHECKSUM=");
p2=strstr(p2,"]\x0d\x0a");
if(p1==NU_NULL||p2==NU_NULL)
goto err_out1;
p1+=strlen("[PATCH_CHECKSUM=");
uprintf("[PATCH_CHECKSUM: p1=%x,p2=%x]\r\n",p1-pdata,p2-pdata);
if(p2-p1>MAX_PATCH_CKM_LEN)
goto err_out1;
memcpy(gptIMPROFILE->m_cPatchCkm,p1,p2-p1);
p2+=strlen("]\x0d\x0a");
/* patch ver */
p1=strstr(p2,"[PATCH_VER=");
p2=strstr(p2,"]\x0d\x0a");
if(p1==NU_NULL||p2==NU_NULL)
goto err_out1;
p1+=strlen("[PATCH_VER=");
uprintf("[PATCH_VER: p1=%x,p2=%x]\r\n",p1-pdata,p2-pdata);
if(p2-p1>MAX_PATCH_VER_LEN)
goto err_out1;
memcpy(gptIMPROFILE->m_cPatchVer,p1,p2-p1);
p2+=strlen("]\x0d\x0a");
/* initsdlc */
p1=strstr(p2,"[INITSDLC_BEGIN]\x0d\x0a");
p2=strstr(p2,"[INITSDLC_END]\x0d\x0a");
if(p1==NU_NULL||p2==NU_NULL)
goto err_out1;
p1+=strlen("[INITSDLC_BEGIN]\x0d\x0a"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -