当前位置: 首页 > news >正文

怎样让google收录网站网站建设费计入 科目

怎样让google收录网站,网站建设费计入 科目,桐庐城乡建设局网站,应用软件设计过程这边文章讲述的是坏快检测功能 思路#xff1a; 1.第一次烧录固件会实现跳坏块#xff0c;但是后续使用会导致坏块的产生#xff1b; 于是我在uboot环境变量添加了两个变量来控制坏快 lb_badnum //坏块个数 lb_badoff //坏块所在位置 2.第一次开机会根据lb_badnum是否…这边文章讲述的是坏快检测功能 思路 1.第一次烧录固件会实现跳坏块但是后续使用会导致坏块的产生 于是我在uboot环境变量添加了两个变量来控制坏快 lb_badnum //坏块个数 lb_badoff //坏块所在位置 2.第一次开机会根据lb_badnum是否存在判断,如果不存在则保存上面坏块信息,跳过坏块功能 3.第二次开机之后会获取环境变量lb_badnum和lb_badoff; 3.1.然后检测实际坏块数,进行对比,如果有新增坏块, 则判断新坏块产生的所在分区; 3.2.然后判断所在分区坏块大小加上固件大小后是否超出划分的分区空间; 3.3.执行对应的分区还原; commit 0ae66e0a3d1366aa90b4661b86203345f4ae02bd (HEAD - master) Author: longmin 1938049502qq.com Date: Tue Dec 10 16:44:44 2024 0800add cmd_lbbad.c support bad block detection functiondiff --git a/boot/common/Kconfig b/boot/common/Kconfig index 516a279af..11cb2c30a 100755 --- a/boot/common/Kconfigb/boot/common/Kconfig-365,4 365,10 config XZconfig MZbool MZconfig SILENT_CONSOLE - bool SILENT_CONSOLE \ No newline at end of filebool SILENT_CONSOLEconfig CMD_LBBADbool LBBADhelpThis enables the command CONFIG_CMD_LBBAD power on detection of badblocks. \ No newline at end of file diff --git a/boot/common/Makefile b/boot/common/Makefile index 85ba0bffd..0d54285f5 100755 --- a/boot/common/Makefileb/boot/common/Makefile-344,4 344,5 endifobj-$(CONFIG_CMD_LBCHK) cmd_lbchk.oobj-$(CONFIG_CMD_LBFDT) cmd_lbfdt.o obj-$(CONFIG_CMD_LBBAD) cmd_lbbad.oobj-y cmd_sar.o diff --git a/boot/common/autoboot.c b/boot/common/autoboot.c index 60f7b2291..927dcd18a 100755 --- a/boot/common/autoboot.cb/boot/common/autoboot.c-585,6 585,10 void autoboot_command(const char *s)boot:debug(### main_loop: bootcmd\%s\\n, s ? s : UNDEFINED); #if defined (CONFIG_CMD_LBBAD)extern int run_lbbadblock(void);run_lbbadblock(); /* bad block inspection */ #endif#if defined (CONFIG_CMD_LBCHK) defined (LONBON_CHECK_RUNCMD)extern int run_lbcheck(int cmd);run_lbcheck(LONBON_CHECK_RUNCMD); diff --git a/boot/common/cmd_lbbad.c b/boot/common/cmd_lbbad.c new file mode 100755 index 000000000..5bfa4890c --- /dev/nullb/boot/common/cmd_lbbad.c-0,0 1,503 #include common.h^M #include command.h^M #include malloc.h^M #include nand.h^M #include u-boot/md5.h^M #include asm/io.h^M #include spi.h^M #include spi_flash.h^M #if (1 CONFIG_LONBON_LED) || (1 LONBON_CMD_CHECK_2BTN_FOR_RESTORE)^M #include ../drivers/mstar/gpio/infinity2m/gpio.h^M #include ../drivers/mstar/gpio/drvGPIO.h^M #endif^M ^M //#define LB_DEBUG^M ^M #ifdef LB_DEBUG^M #define LBCHK_DEBUG(msg...) printf(msg)^M #else^M #define LBCHK_DEBUG(msg...) do{}while(0)^M #endif^M ^M typedef int BOOL;^M ^M #ifndef FALSE^M #define FALSE 0^M #endif^M ^M #ifndef TRUE^M #define TRUE 1^M #endif^M ^M #ifdef CONFIG_YAFFS2^M extern void cmd_yaffs_devconfig(char *mp, int flash_dev, int start_block, int end_block);^M extern void cmd_yaffs_mount(char *mp);^M extern void cmd_yaffs_umount(char *mp);^M extern void cmd_yaffs_mread_file(char *fn, char *addr);^M #endif^M ^M #define BADBLOCK_MAX 200^M ^M extern int lb_nand_get_badblock_number(ulong *badblock_list);^M extern int lbcmd_get_imagename_by_cmd(char* imgname, unsigned char cmd);^M extern int lonbon_get_partitions(const char *part_name, uint *part_offset, uint *part_size);^M extern int lonbon_get_partitions_name(uint *off, char *part_name, uint *part_offset, uint *part_size);^M extern int lb_nand_flash_partition_baseAddr(const char *part_name, uint *part_offset, uint *part_size);^M ^M typedef struct {^Mint uboot;^Mint kernel;^Mint rootfs;^Mint backup;^Mint ro;^Mint rw;^Mint ipl;^Mint ipl_cust;^Mint logo;^Mint factory;^Mint lbcmd;^Mint lbflash;^Mint lbcfg;^Mint env;^Mint key_cust;^M } lb_bad_partition_t;^M ^M int lonbon_set_badnum(int number)^M {^Munsigned char badnum[2];^Mif(number 0) {^Mmemset(badnum,0,2);^Mbadnum[0] number 0x30;^Msetenv(lb_badnum, (const char *)badnum);^Mrun_command(saveenv, 0);^Mreturn 0;^M}^Mreturn -1;^M }^M ^M int lonbon_get_badnum(void)^M {^Mchar * lb_badnum getenv(lb_badnum);^Munsigned char badnum[2];^M ^Mif(lb_badnum) {^Mbadnum[0] *lb_badnum - 0x30;^Mprintf(old bad_block number %d\n,badnum[0]);^Mreturn badnum[0];^M}else{^Mprintf(%s lb_badnumnull\n, __func__);^Mreturn -1;^M}^Mreturn 0;^M }^M ^M int lonbon_number_exist(int all_number, ulong *badblock_list, ulong number){^Mint i;^Mfor(i0; i all_number; i)^M{^Mif(*(badblock_listi) number)^M{^Mreturn i;^M}^M}^Mreturn -1;^M }^M ^M int lonbon_new_badblock(int all_number, ulong *badblock_list, int env_number, ulong *old_badblock_list,ulong *add_badblock_list)^M {^Mint i, j, k 0;^Mbool flag;^Mfor (i0; i all_number; i){^Mflag false;^Mfor (j0; j all_number; j){^Mif( badblock_list[i] old_badblock_list[j] )^Mflag true;^M}^M ^Mif(flag false){^M*(add_badblock_list k) badblock_list[i];^Mk;^M}^M ^M}^M ^Mreturn 0;^M }^M ^M ^M int lonbon_get_bad_offset(int all_number, ulong *badblock_list, int number)^M {^Mint i;^Mchar *lb_badoff getenv(lb_badoff);^Mchar badb_offset[1024] {0};^Mulong old_badb_list[all_number];^Mulong *old_badblock_list old_badb_list[0];^Mulong add_badb_list[all_number];^Mulong *add_badblock_list add_badb_list[0];^Mchar *lb_bad_off;^Mulong num;^M ^Mif(all_number 0){^Mprintf(%s not badblock_list\n, __func__);^Mreturn 0;^M}^M ^Mif(lb_badoff){^Mstrcpy(badb_offset,lb_badoff);^Mlb_bad_off strtok(badb_offset, -);^Mnum simple_strtol(lb_bad_off, NULL, 16);^Mold_badb_list[0] num;^Mfor(i1; i all_number;i ){^Mlb_bad_off strtok(NULL ,-);^Mnum simple_strtol(lb_bad_off, NULL, 16);^Mold_badb_list[i] num;^M}^M}^M/* determine the partition location of the new bad block */^Mlonbon_new_badblock(all_number, badblock_list, number, old_badblock_list, add_badblock_list);^Mfor(i0; i all_number; i){^M*(badblock_list i) 0;^M}^Mfor(i0; inumber;i){^M*(badblock_list i) add_badb_list[i];^M}^M ^Mreturn 1;^M }^M ^M int lonbon_set_bad_offset(int number, ulong *badblock_list)^M {^Mint i;^Mchar commandline[10] {0};^Mchar badb_addr[1024] {0};^Mif(number 0) {^Mif(number 0) {^Mfor(i0;inumber;i){^Msprintf(commandline,%08lx-, *(badblock_listi));^Mstrcat(badb_addr,commandline);^M}^M}^Mprintf(lonbon_set_bad_offset badblock_list:%s\n,badb_addr);^Msetenv(lb_badoff, (const char *)badb_addr);^Mrun_command(saveenv, 0);^Mreturn number;^M}^Mreturn 0;^M }^M ^M int lonbon_set_partitions(lb_bad_partition_t *lb_part, char *part_name)^M {^M//printf(%s %s \n,__func__,part_name);^Mif(strcmp(part_name, UBOOT0) 0||strcmp(part_name, UBOOT1) 0){^Mlb_part-uboot 1;^M}else if(strcmp(part_name, rootfs) 0){^Mlb_part-rootfs 1;^M}else if(strcmp(part_name, KERNEL) 0||strcmp(part_name, RECOVERY) 0){^Mlb_part-kernel 1;^M}else if(strcmp(part_name, backup) 0){^Mlb_part-backup 1;^M}else if(strcmp(part_name, ro) 0){^Mlb_part-ro 1;^M}else if(strcmp(part_name, rw) 0){^Mlb_part-rw 1;^M}else if(strcmp(part_name, IPL0) 0||strcmp(part_name, IPL1) 0){^Mlb_part-ipl 1;^M}else if(strcmp(part_name, IPL_CUST0) 0||strcmp(part_name, IPL_CUST1) 0){^Mlb_part-ipl_cust 1;^M}else if(strcmp(part_name, LOGO) 0){^Mlb_part-logo 1;^M}else if(strcmp(part_name, factory) 0){^Mlb_part-factory 1;^M}else if(strcmp(part_name, lbcmd) 0){^Mlb_part-lbcmd 1;;^M}else if(strcmp(part_name, lbflash) 0||strcmp(part_name, lbflash2) 0){^Mlb_part-lbflash 1;^M}else if(strcmp(part_name, lbcfg) 0||strcmp(part_name, lbcfg2) 0){^Mlb_part-lbcfg 1;^M}else if(strcmp(part_name, ENV) 0||strcmp(part_name, ENV1) 0){^Mlb_part-env 1;^M}else if(strcmp(part_name, KEY_CUST) 0){^Mlb_part-key_cust 1;^M}else{^Mreturn -1;^M}^M ^Mreturn 0;^M }^M ^M void lonbon_printf_bad(int num){^M ^Mswitch (num)^M{^Mcase 0: printf(\n);^Mprintf(##############################################################################\n);^Mprintf(##############################################################################\n);^Mprintf(############################ bad block list:##################################\n);^Mbreak;^Mcase 1: printf(\nstart all bad block list:\n);^Mbreak;^Mcase 2: printf(\n);^Mprintf(add bad block:\n);^Mprintf(\n);^Mbreak;^Mcase 3: printf(\n);^Mprintf(##############################################################################\n);^Mprintf(##############################################################################\n);^Mprintf(\n);^Mbreak;^M}^M ^M }^M ^M uint lonbon_get_pattition_firmware_size(char *fileName){^Mchar *mntpoint /factory;^Muint part_offset;^Muint part_size;^Mint start_block;^Mint end_block;^M ^Mchar filename[100] {0};^Munsigned long addr 0x21000000;^Mlb_nand_flash_partition_baseAddr(factory, part_offset, part_size);^Mif(!part_offset || !part_size) {^Mprintf(#ERROR: No factory partition is found\n);^Mreturn -1;^M}^M ^Mstart_block part_offset/(128*1024); /* Nand flash block size is 128 KB */^Mend_block (part_offsetpart_size)/(128*1024)-1;^M ^Mcmd_yaffs_devconfig(mntpoint,0,start_block,end_block);^Mcmd_yaffs_mount(mntpoint);^Msprintf(filename, %s/%s, mntpoint, fileName);^Mcmd_yaffs_mread_file(filename, (char *)addr);^Mchar *str_env getenv(filesize);^Mulong filesize simple_strtoul(str_env, NULL, 16);^Msize_t blocksize nand_info[0].erasesize;^Mulong wsize(filesize/blocksize1)*blocksize;^Mcmd_yaffs_umount(mntpoint);^Mprintf(longbon filename%s str_env%s filesize%lx wsize%lx \n,filename,str_env,filesize,wsize);^Mreturn wsize;^M ^M }^M ^M int lonbon_pattition_firmware_size(unsigned char cmd, char *part_name, int bad_number)^M {^Mchar firmware_name[32] {0};^Mchar *firmware_part_name firmware_name[0];^Muint part_offset, part_size;^Mulong firmware_size, firmware_size_bad;^Msize_t blocksize nand_info[0].erasesize;^M ^M/* get firmware name */^Mlbcmd_get_imagename_by_cmd(firmware_part_name, cmd);^M/* get firmware size */^Mfirmware_size lonbon_get_pattition_firmware_size(firmware_part_name);^M/* the size after adding the bad block */^Mfirmware_size_bad firmware_size ( blocksize * bad_number);^M/* get partitions total size */^Mlonbon_get_partitions(part_name, part_offset, part_size);^M ^M/* partitions total size firmware size add bad block size */^Mif( part_size firmware_size_bad)^M{^Mprintf(\nlonbon %s is OK! part_size%x firmware_size_bad%lx \n,__func__,part_size,firmware_size_bad);^Mreturn 1;^M}^Melse {^Mprintf(\nlonbon %s error!! part_size%x firmware_size_bad%lx \n,__func__,part_size,firmware_size_bad);^Mreturn -1;^M}^Mreturn 0;^M }^M ^M void lonbon_printf_bad_block(lb_bad_partition_t *lb_bad_partition, int number, ulong *bad_list, int new_number, ulong *new_bad_list){^M ^Mint i, ret, flags 0;^Mchar write[20] { };^Mchar *write_t write[0];^Mchar part_name[10] {0};^Mchar *part_name_t part_name[0];^Mulong *badblock_list bad_list;^Mchar commandline[30] {0};^Muint lbflash_offset 0,lbflash_size 0;^M ^Mif(new_number 0){^Mlonbon_printf_bad(1);^M}^Mfor(i0; i number; i){^Mmemset(part_name,0,sizeof(part_name));^Mlonbon_get_partitions_name((uint *) *(badblock_listi), part_name_t, lbflash_offset, lbflash_size);^Mprintf(bad[%d]0x%08lx name%s off0x%08x size0x%08x end0x%08x \n,^Mi, *(badblock_listi), part_name_t, lbflash_offset, lbflash_size ,(lbflash_offset lbflash_size -1) );^M}^Mif(new_number 0){^Mlonbon_printf_bad(2);^Mfor(i0; i new_number; i){^Mprintf( 0x%08lx \n, *(new_bad_list i));^M}^M}^Mif(lb_bad_partition-factory 0){^Mprintf(\n warn factory partition are bad blocks !!!\n\n);^M}^Mif(lb_bad_partition-uboot 0){^Mprintf(\n warn uboot partition are bad blocks !!!\n\n);^Mret lonbon_pattition_firmware_size(1,uboot,lb_bad_partition-uboot);^Mif(ret 0){^Mstrcat(write,1 );^Mflags;^M}else{^Mprintf(\n%s error!!!uboot insufficient partition space !!!\n,__func__ );^M}^M}^Mif(lb_bad_partition-kernel 0){^Mprintf(\n warn kernel partition are bad blocks !!!\n\n);^Mret lonbon_pattition_firmware_size(2,kernel,lb_bad_partition-kernel);^Mif(ret 0){^Mstrcat(write,2 );^Mflags;^M}else{^Mprintf(\n%s error!!!kernel insufficient partition space !!!\n,__func__ );^M}^M}^Mif(lb_bad_partition-rootfs 0){^Mprintf(\n warn rootfs partition are bad blocks !!!\n\n);^Mret lonbon_pattition_firmware_size(3,rootfs,lb_bad_partition-rootfs);^Mif(ret 0){^Mstrcat(write,3 );^Mflags;^M}else{^Mprintf(\n%s error!!!rootfs insufficient partition space !!!\n,__func__ );^M}^M}^Mif(lb_bad_partition-backup 0){^Mprintf(\n warn backup partition are bad blocks !!!\n\n);^M}^Mif(lb_bad_partition-ro 0){^Mprintf(\n warn ro partition are bad blocks !!!\n\n);^M}^Mif(lb_bad_partition-rw 0){^Mprintf(\n warn rw partition are bad blocks !!!\n\n);^M}^Mif(lb_bad_partition-ipl 0){^Mprintf(\n warn ipl partition are bad blocks !!!\n\n);^Mret lonbon_pattition_firmware_size(6,ipl,lb_bad_partition-ipl);^Mif(ret 0){^Mstrcat(write,6 );^Mflags;^M}else{^Mprintf(\n%s error!!!ipl insufficient partition space !!!\n,__func__ );^M}^M}^Mif(lb_bad_partition-ipl_cust 0){^Mprintf(\n warn ipl_cust partition are bad blocks !!!\n\n);^Mret lonbon_pattition_firmware_size(7,ipl,lb_bad_partition-ipl_cust);^Mif(ret 0){^Mstrcat(write,7 );^Mflags;^M}else{^Mprintf(\n%s error!!!ipl_cust insufficient partition space !!!\n,__func__ );^M}^M}^Mif(lb_bad_partition-logo 0){^Mprintf(\n warn logo partition are bad blocks !!!\n\n);^Mret lonbon_pattition_firmware_size(8,logo,lb_bad_partition-logo);^Mif(ret 0){^M//run_command(lbupgrade write 8, 0);^Mstrcat(write,8 );^Mflags;^M}else{^Mprintf(\n%s error!!!logo insufficient partition space !!!\n,__func__ );^M}^M}^M ^Mif (flags 0){^Msprintf(commandline,lbupgrade write %s, write_t);^Mprintf(\nlonbon %s run_command: %s !!!\n, __func__ , commandline);^Mrun_command(commandline, 0);^M}^M ^Mlonbon_printf_bad(3);^M ^M }^M ^M /* bad block inspection */^M int run_lbbadblock(void) ^M {^Mlb_bad_partition_t lb_bad_partition {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};^Mlb_bad_partition_t *lb_bad_partition_r lb_bad_partition;^Mint ret, i;^Mchar part_name[10] {0};^Mchar *part_name_t part_name[0];^Muint lbflash_offset 0,lbflash_size 0;^Mulong badblock_list[BADBLOCK_MAX];^Mulong *list_badblock badblock_list[0];^Mint badblock_number , lb_badnum;^Mbool new_badblock false;^M ^Mlonbon_printf_bad(0);^Mmemset(badblock_list,0,sizeof(badblock_list));^Mbadblock_number lb_nand_get_badblock_number(list_badblock);^Mulong bad_list[badblock_number];^Mulong *bad_list_t bad_list[0];^M ^Mfor( i 0; i badblock_number; i){^Mbad_list[i] badblock_list[i];^M}^M ^Mif(badblock_number 0){^Mprintf(error! get badblock number failed! :%d\n,badblock_number);^Mreturn badblock_number;^M}else{^Mprintf(bad badblock number: %d\n,badblock_number);^M}^M ^Mlb_badnum lonbon_get_badnum();/* get lb_badnum */^Mif(lb_badnum 0){ /* the first burning is not processed */^M ^Mret lonbon_set_badnum(badblock_number);/* directly save the number of burned blocks */^Mif(ret 0){^Mprintf(error %s badblock_numbernull\n,__func__);^M}^Mprintf(lonbon %s init badblock\n,__func__);^Mret lonbon_set_bad_offset(badblock_number, list_badblock);/* save bad block address*/^Mlonbon_printf_bad(3);^Mreturn 0;^M ^M}else{ /* after the second boot, go here */^Mif(badblock_number lb_badnum){ /* equal means there are no bad blocks */^Mprintf(lonbon %s not new badblock\n,__func__);^M ^M}else{ /* unequal means there are bad blocks */^Mprintf(%s new badblock number %d\n,__func__, badblock_number - lb_badnum);^Mret lonbon_set_badnum(badblock_number);^Mif(ret 0){^Mprintf(error %s badblock_numbernull\n,__func__);^M}else{^Mnew_badblock true; /* mark the newly added bad block symbol */^M}^M}^M}^M ^Mif(new_badblock true ){/* there are new bad blocks added */^M/* Get env bad block address */^Mret lonbon_get_bad_offset(badblock_number, list_badblock ,badblock_number - lb_badnum);^M ^Mfor(i0; i badblock_number - lb_badnum; i){^Mmemset(part_name,0,sizeof(part_name));^Mlonbon_get_partitions_name((uint *) badblock_list[i], part_name_t, lbflash_offset, lbflash_size);^Mret lonbon_set_partitions(lb_bad_partition_r, part_name_t);^M}^Mprintf(%s new_badblocktrue\n,__func__);^M ^M}^M ^Mlonbon_printf_bad_block(lb_bad_partition_r, badblock_number, bad_list_t, badblock_number - lb_badnum, list_badblock);^M ^Mif(new_badblock true){/* if a new bad block is added, restart and enter restore mode */^Mret lonbon_set_bad_offset(badblock_number, bad_list_t);/* save bad block address */^Mnew_badblock false;^Mrun_command(reset, 0);^M}^Mreturn 0;^M }^M diff --git a/boot/common/cmd_mtdparts.c b/boot/common/cmd_mtdparts.c index f6940a6f2..172750152 100755 --- a/boot/common/cmd_mtdparts.cb/boot/common/cmd_mtdparts.c-1331,6 1331,63 int lonbon_get_partitions(const char *part_name, uint *part_offset, uint *part_s}return -1;}int lonbon_strcpy_name(char *part_name,char *name) {char str[10];int len,i;strcpy(str,name);len strlen(str);for(i0; i len; i){*(part_namei) str[i];}return 0; } /** * obtain the partition name of the address by passing it through. */int lonbon_get_partitions_name(uint *off, char *part_name, uint *part_offset, uint *part_size) {struct list_head *dentry, *pentry;struct part_info *part;struct mtd_device *dev;int part_num;uint *part_offset_closure;if (!part_name) {printf(the part name is empty\n);//return -1;}if (list_empty(devices)) {printf(the partitions list is empty\n);return -1;}if (mtdparts_init() ! 0)return -1;list_for_each(dentry, devices) {dev list_entry(dentry, struct mtd_device, link);part_num 0;list_for_each(pentry, dev-parts) {part list_entry(pentry, struct part_info, link);//printf(%2d:%s 0x%08llx 0x%08llx\n,part_num, part-name, part-size,part-offset);part_offset_closure part-offset part-size;if(part_offset_closure off){lonbon_strcpy_name(part_name,part-name);*part_offset part-offset;*part_size part-size;return 0;}part_num;}}return -1; } #endif/*** Format and print out a partition list for each device from global device diff --git a/boot/common/cmd_nand.c b/boot/common/cmd_nand.c index 64b0bd26b..022696de3 100755 --- a/boot/common/cmd_nand.cb/boot/common/cmd_nand.c-718,10 718,14 static int do_nand(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])nand nand_info[dev];if (strcmp(cmd, bad) 0) { - printf(\nDevice %d bad blocks:\n, dev);int j 0;//printf(\nDevice %d bad blocks:\n, dev);for (off 0; off nand-size; off nand-erasesize) - if (nand_block_isbad(nand, off))if (nand_block_isbad(nand, off)){printf( %08llx\n, (unsigned long long)off);j;}printf(bad number %d blocks:\n, j);return 0;} -1466,6 1470,31 static int lb_nand_erase(uint start_addr, uint part_size, uint length)return 0;} #define BADBLOCK_MAX 200 int lb_nand_get_badblock_number(ulong *badblock_list) {int j 0;ulong off,badblock_addr[BADBLOCK_MAX];nand_info_t *nand nand_info[0];char commandline[16];char badb_addr[1024];memset(badblock_addr,0,sizeof(badblock_addr));memset(commandline,0,sizeof(commandline));memset(badb_addr,0,sizeof(badb_addr));printf(\n);for (off 0; off nand-size; off nand-erasesize)if (nand_block_isbad(nand, off)){//printf(lonbon bad blocks %08llx\n, (unsigned long long)off);badblock_addr[j] off;j;}printf(\n);for(int i 0; i j; i){//printf(\nlonbon %08lx\n, badblock_addr[i]);badblock_list[i] badblock_addr[i];}return j; }int lb_nand_flash_partition_baseAddr(const char *part_name, uint *part_offset, uint *part_size){-1492,7 1521,7 int lb_nand_flash_partition_read(const char *part_name,char* buff,const int lengreturn -1;}- retlb_nand_read(lbflash_offset,lbflash_size, lengthlbflash_size?lbflash_size:len,(void *) buff);ret lb_nand_read(lbflash_offset,lbflash_size, lengthlbflash_size?lbflash_size:len,(void *) buff);//_print_hex_string(buff,length); //TEST ONLYreturn ret;} diff --git a/boot/include/configs/infinity2m.h b/boot/include/configs/infinity2m.h index c5d5d8ea1..19a44747b 100755 --- a/boot/include/configs/infinity2m.hb/boot/include/configs/infinity2m.h-39,6 39,7 #define LONBONVOIP#ifdef LONBONVOIP#define CONFIG_CMD_LBCHK #define CONFIG_CMD_LBBAD#define CONFIG_LB_MD5#define CONFIG_IDENT_STRING LonBon Technology #define LONBONVOIP_REALM voip.lonbon.com 第一次开机 第二次开机 第N次开机后产生新坏块
http://www.hkea.cn/news/14331016/

相关文章:

  • 直接用ip做网站建设厅安全员证
  • 做水处理药剂的公司网站wordpress 手动安装主题
  • 小程序网站怎么做网站建设费税收分类
  • 苏州专业建设网站大学 两学一做专题网站
  • 南宁网站设计制作公司dw网页制作教程完整版
  • 牛商网 做的p2p网站网页制作设计思路
  • 个人做视频网站视频储存网站建设公司怎么做好
  • 湖北省市政工程建设官方网站安阳网站建设设计
  • 视频素材交易网站建设大连网站外包
  • 新乡网络网站建设Wordpress is快递 接口
  • 营销网站导航栏常见在那个上面做网站都能搜到
  • 网站模板 单页龙凤网站建设云聚达
  • 网站开发网页加载缓慢查询数据库慢用flash做网站超链接
  • 简述网站技术解决方案建外贸网站比较好的公司
  • 专业做房地产网站建设建设网站花费
  • 推荐的网站wordpress相关
  • 网站备案表格下载网站建设公司财务预算
  • 广州技术网站建设wordpress 修改程序文件
  • 潍坊知名网站建设价格低凡科建设网站别人能进去么
  • 建筑师网站有哪些移动互联网开发报告总结
  • 湖州建设局网站 项目验收流程做去自己的网站首页
  • 安顺建设局网站公司网站建设合同要交印花税吗
  • 济宁专业做优化的网站哈尔滨网站制作公司价格
  • 男的女的做那个的视频网站淘宝seo 优化软件
  • 网站开发一般会用到什么语言网站模板 静态模版
  • 个人网站制作wordpress网架公司排名
  • 高职专业建设管理网站创可贴在线设计平台
  • 医药公司网站建设公司简介模板英语
  • 木门网站模板宁波网络建站公司
  • wordpress建站做ppt模板网站有哪些内容