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

网站配色原理天堂网

网站配色原理,天堂网,台州有哪些做网站的公司,网站总类比较头疼的是rv1106 ubuntu镜像的分区表不是标准的gpt格式,镜像烧写后rootfs是6gb, sd 卡是32gb,想要使用更多空间,需要进行分区调整 最后效果请看: 操作步骤的尝试 (1)烧录sd卡 (2&#xf…

比较头疼的是rv1106 ubuntu镜像的分区表不是标准的gpt格式,镜像烧写后rootfs是6gb,

sd 卡是32gb,想要使用更多空间,需要进行分区调整

最后效果请看:

操作步骤的尝试

(1)烧录sd卡

(2)DG 打开SD卡发现问题,没有任何分区

(3)用DG找到rootfs分区,记录其前面一共有多少内容

(4)winhex备份rootfs之前的所有数据,大概800多MB

(5)将sd卡重建一下gpt分区表,只保留rootfs

(6)扩容rootfs到26GB,这个数值必须是26*1024*1024*1024字节

(7)重新将(4)中备份数据刷回sd卡的rootfs前面的位置,此时已经完成扩容,但需要调整rk私有分区表

(8)用hex工具查看一下env.img 

完全可以调整,从6G调整为26G

(9)上电,结果是进不去系统

(10)连接串口,发现如下错误

这样看,应该是修改的env.img 部分的crc校验和错了,

(11)从sdk代码搜索这条日志的代码

(12)将crc代码扒出来自己写一个crc校验工具

#include <stdio.h>
#include <string.h>
#include <new>using namespace std;typedef unsigned int uint32_t;
typedef unsigned char Bytef;
typedef unsigned char uint8_t;
typedef unsigned int uInt;#define cpu_to_le32(x) x
#define le32_to_cpu(x) xuint32_t htonl(uint32_t x)
{uint32_t r = 0;unsigned char* a = (unsigned char*)&x;unsigned char* b = (unsigned char*)&r;b[0] = a[3];b[1] = a[2];b[2] = a[1];b[3] = a[0];return r;
}/** This file is derived from crc32.c from the zlib-1.1.3 distribution* by Jean-loup Gailly and Mark Adler.*//* crc32.c -- compute the CRC-32 of a data stream* Copyright (C) 1995-1998 Mark Adler* For conditions of distribution and use, see copyright notice in zlib.h*/#ifdef USE_HOSTCC
#include <arpa/inet.h>
#else#endif#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)
#include <watchdog.h>
#endif#define local static
#define ZEXPORT	/* empty */#define tole(x) cpu_to_le32(x)#ifdef DYNAMIC_CRC_TABLElocal int crc_table_empty = 1;
local uint32_t crc_table[256];
local void make_crc_table OF((void));/*Generate a table for a byte-wise 32-bit CRC calculation on the polynomial:x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1.Polynomials over GF(2) are represented in binary, one bit per coefficient,with the lowest powers in the most significant bit.  Then adding polynomialsis just exclusive-or, and multiplying a polynomial by x is a right shift byone.  If we call the above polynomial p, and represent a byte as thepolynomial q, also with the lowest power in the most significant bit (so thebyte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p,where a mod b means the remainder after dividing a by b.This calculation is done using the shift-register method of multiplying andtaking the remainder.  The register is initialized to zero, and for eachincoming bit, x^32 is added mod p to the register if the bit is a one (wherex^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p byx (which is shifting right by one and adding x^32 mod p if the bit shiftedout is a one).  We start with the highest power (least significant bit) ofq and repeat for all eight bits of q.The table is simply the CRC of all possible eight bit values.  This is allthe information needed to generate CRC's on data a byte at a time for allcombinations of CRC register values and incoming bytes.
*/
local void make_crc_table()
{uint32_t c;int n, k;uLong poly;		/* polynomial exclusive-or pattern *//* terms of polynomial defining this crc (except x^32): */static const Byte p[] = { 0,1,2,4,5,7,8,10,11,12,16,22,23,26 };/* make exclusive-or pattern from polynomial (0xedb88320L) */poly = 0L;for (n = 0; n < sizeof(p) / sizeof(Byte); n++)poly |= 1L << (31 - p[n]);for (n = 0; n < 256; n++){c = (uLong)n;for (k = 0; k < 8; k++)c = c & 1 ? poly ^ (c >> 1) : c >> 1;crc_table[n] = tole(c);}crc_table_empty = 0;
}
#else/* ========================================================================* Table of CRC-32's of all single-byte values (made by make_crc_table)*/static  const uint32_t crc_table[256] = {
tole(0x00000000L), tole(0x77073096L), tole(0xee0e612cL), tole(0x990951baL),
tole(0x076dc419L), tole(0x706af48fL), tole(0xe963a535L), tole(0x9e6495a3L),
tole(0x0edb8832L), tole(0x79dcb8a4L), tole(0xe0d5e91eL), tole(0x97d2d988L),
tole(0x09b64c2bL), tole(0x7eb17cbdL), tole(0xe7b82d07L), tole(0x90bf1d91L),
tole(0x1db71064L), tole(0x6ab020f2L), tole(0xf3b97148L), tole(0x84be41deL),
tole(0x1adad47dL), tole(0x6ddde4ebL), tole(0xf4d4b551L), tole(0x83d385c7L),
tole(0x136c9856L), tole(0x646ba8c0L), tole(0xfd62f97aL), tole(0x8a65c9ecL),
tole(0x14015c4fL), tole(0x63066cd9L), tole(0xfa0f3d63L), tole(0x8d080df5L),
tole(0x3b6e20c8L), tole(0x4c69105eL), tole(0xd56041e4L), tole(0xa2677172L),
tole(0x3c03e4d1L), tole(0x4b04d447L), tole(0xd20d85fdL), tole(0xa50ab56bL),
tole(0x35b5a8faL), tole(0x42b2986cL), tole(0xdbbbc9d6L), tole(0xacbcf940L),
tole(0x32d86ce3L), tole(0x45df5c75L), tole(0xdcd60dcfL), tole(0xabd13d59L),
tole(0x26d930acL), tole(0x51de003aL), tole(0xc8d75180L), tole(0xbfd06116L),
tole(0x21b4f4b5L), tole(0x56b3c423L), tole(0xcfba9599L), tole(0xb8bda50fL),
tole(0x2802b89eL), tole(0x5f058808L), tole(0xc60cd9b2L), tole(0xb10be924L),
tole(0x2f6f7c87L), tole(0x58684c11L), tole(0xc1611dabL), tole(0xb6662d3dL),
tole(0x76dc4190L), tole(0x01db7106L), tole(0x98d220bcL), tole(0xefd5102aL),
tole(0x71b18589L), tole(0x06b6b51fL), tole(0x9fbfe4a5L), tole(0xe8b8d433L),
tole(0x7807c9a2L), tole(0x0f00f934L), tole(0x9609a88eL), tole(0xe10e9818L),
tole(0x7f6a0dbbL), tole(0x086d3d2dL), tole(0x91646c97L), tole(0xe6635c01L),
tole(0x6b6b51f4L), tole(0x1c6c6162L), tole(0x856530d8L), tole(0xf262004eL),
tole(0x6c0695edL), tole(0x1b01a57bL), tole(0x8208f4c1L), tole(0xf50fc457L),
tole(0x65b0d9c6L), tole(0x12b7e950L), tole(0x8bbeb8eaL), tole(0xfcb9887cL),
tole(0x62dd1ddfL), tole(0x15da2d49L), tole(0x8cd37cf3L), tole(0xfbd44c65L),
tole(0x4db26158L), tole(0x3ab551ceL), tole(0xa3bc0074L), tole(0xd4bb30e2L),
tole(0x4adfa541L), tole(0x3dd895d7L), tole(0xa4d1c46dL), tole(0xd3d6f4fbL),
tole(0x4369e96aL), tole(0x346ed9fcL), tole(0xad678846L), tole(0xda60b8d0L),
tole(0x44042d73L), tole(0x33031de5L), tole(0xaa0a4c5fL), tole(0xdd0d7cc9L),
tole(0x5005713cL), tole(0x270241aaL), tole(0xbe0b1010L), tole(0xc90c2086L),
tole(0x5768b525L), tole(0x206f85b3L), tole(0xb966d409L), tole(0xce61e49fL),
tole(0x5edef90eL), tole(0x29d9c998L), tole(0xb0d09822L), tole(0xc7d7a8b4L),
tole(0x59b33d17L), tole(0x2eb40d81L), tole(0xb7bd5c3bL), tole(0xc0ba6cadL),
tole(0xedb88320L), tole(0x9abfb3b6L), tole(0x03b6e20cL), tole(0x74b1d29aL),
tole(0xead54739L), tole(0x9dd277afL), tole(0x04db2615L), tole(0x73dc1683L),
tole(0xe3630b12L), tole(0x94643b84L), tole(0x0d6d6a3eL), tole(0x7a6a5aa8L),
tole(0xe40ecf0bL), tole(0x9309ff9dL), tole(0x0a00ae27L), tole(0x7d079eb1L),
tole(0xf00f9344L), tole(0x8708a3d2L), tole(0x1e01f268L), tole(0x6906c2feL),
tole(0xf762575dL), tole(0x806567cbL), tole(0x196c3671L), tole(0x6e6b06e7L),
tole(0xfed41b76L), tole(0x89d32be0L), tole(0x10da7a5aL), tole(0x67dd4accL),
tole(0xf9b9df6fL), tole(0x8ebeeff9L), tole(0x17b7be43L), tole(0x60b08ed5L),
tole(0xd6d6a3e8L), tole(0xa1d1937eL), tole(0x38d8c2c4L), tole(0x4fdff252L),
tole(0xd1bb67f1L), tole(0xa6bc5767L), tole(0x3fb506ddL), tole(0x48b2364bL),
tole(0xd80d2bdaL), tole(0xaf0a1b4cL), tole(0x36034af6L), tole(0x41047a60L),
tole(0xdf60efc3L), tole(0xa867df55L), tole(0x316e8eefL), tole(0x4669be79L),
tole(0xcb61b38cL), tole(0xbc66831aL), tole(0x256fd2a0L), tole(0x5268e236L),
tole(0xcc0c7795L), tole(0xbb0b4703L), tole(0x220216b9L), tole(0x5505262fL),
tole(0xc5ba3bbeL), tole(0xb2bd0b28L), tole(0x2bb45a92L), tole(0x5cb36a04L),
tole(0xc2d7ffa7L), tole(0xb5d0cf31L), tole(0x2cd99e8bL), tole(0x5bdeae1dL),
tole(0x9b64c2b0L), tole(0xec63f226L), tole(0x756aa39cL), tole(0x026d930aL),
tole(0x9c0906a9L), tole(0xeb0e363fL), tole(0x72076785L), tole(0x05005713L),
tole(0x95bf4a82L), tole(0xe2b87a14L), tole(0x7bb12baeL), tole(0x0cb61b38L),
tole(0x92d28e9bL), tole(0xe5d5be0dL), tole(0x7cdcefb7L), tole(0x0bdbdf21L),
tole(0x86d3d2d4L), tole(0xf1d4e242L), tole(0x68ddb3f8L), tole(0x1fda836eL),
tole(0x81be16cdL), tole(0xf6b9265bL), tole(0x6fb077e1L), tole(0x18b74777L),
tole(0x88085ae6L), tole(0xff0f6a70L), tole(0x66063bcaL), tole(0x11010b5cL),
tole(0x8f659effL), tole(0xf862ae69L), tole(0x616bffd3L), tole(0x166ccf45L),
tole(0xa00ae278L), tole(0xd70dd2eeL), tole(0x4e048354L), tole(0x3903b3c2L),
tole(0xa7672661L), tole(0xd06016f7L), tole(0x4969474dL), tole(0x3e6e77dbL),
tole(0xaed16a4aL), tole(0xd9d65adcL), tole(0x40df0b66L), tole(0x37d83bf0L),
tole(0xa9bcae53L), tole(0xdebb9ec5L), tole(0x47b2cf7fL), tole(0x30b5ffe9L),
tole(0xbdbdf21cL), tole(0xcabac28aL), tole(0x53b39330L), tole(0x24b4a3a6L),
tole(0xbad03605L), tole(0xcdd70693L), tole(0x54de5729L), tole(0x23d967bfL),
tole(0xb3667a2eL), tole(0xc4614ab8L), tole(0x5d681b02L), tole(0x2a6f2b94L),
tole(0xb40bbe37L), tole(0xc30c8ea1L), tole(0x5a05df1bL), tole(0x2d02ef8dL)
};
#endif#if 0
/* =========================================================================* This function can be used by asm versions of crc32()*/
const uint32_t * ZEXPORT get_crc_table()
{
#ifdef DYNAMIC_CRC_TABLEif (crc_table_empty) make_crc_table();
#endifreturn (const uint32_t *)crc_table;
}
#endif/* ========================================================================= */
# if __BYTE_ORDER == __LITTLE_ENDIAN
#  define DO_CRC(x) crc = tab[(crc ^ (x)) & 255] ^ (crc >> 8)
# else
#  define DO_CRC(x) crc = tab[((crc >> 24) ^ (x)) & 255] ^ (crc << 8)
# endif/* ========================================================================= *//* No ones complement version. JFFS2 (and other things ?)* don't use ones compliment in their CRC calculations.*/
uint32_t ZEXPORT crc32_no_comp(uint32_t crc, const Bytef *buf, uInt len)
{const uint32_t *tab = crc_table;const uint32_t *b = (const uint32_t *)buf;size_t rem_len;
#ifdef DYNAMIC_CRC_TABLEif (crc_table_empty)make_crc_table();
#endifcrc = cpu_to_le32(crc);/* Align it */if (((long)b) & 3 && len) {uint8_t *p = (uint8_t *)b;do {DO_CRC(*p++);} while ((--len) && ((long)p) & 3);b = (uint32_t *)p;}rem_len = len & 3;len = len >> 2;for (--b; len; --len) {/* load data 32 bits wide, xor data 32 bits wide. */crc ^= *++b; /* use pre increment for speed */DO_CRC(0);DO_CRC(0);DO_CRC(0);DO_CRC(0);}len = rem_len;/* And the last few bytes */if (len) {uint8_t *p = (uint8_t *)(b + 1) - 1;do {DO_CRC(*++p); /* use pre increment for speed */} while (--len);}return le32_to_cpu(crc);
}
#undef DO_CRCuint32_t ZEXPORT crc32(uint32_t crc, const Bytef *p, uInt len)
{return crc32_no_comp(crc ^ 0xffffffffL, p, len) ^ 0xffffffffL;
}/** Calculate the crc32 checksum triggering the watchdog every 'chunk_sz' bytes* of input.*/
uint32_t ZEXPORT crc32_wd(uint32_t crc,const unsigned char *buf,uInt len, uInt chunk_sz)
{
#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)const unsigned char *end, *curr;int chunk;curr = buf;end = buf + len;while (curr < end) {chunk = end - curr;if (chunk > chunk_sz)chunk = chunk_sz;crc = crc32(crc, curr, chunk);curr += chunk;WATCHDOG_RESET();}
#elsecrc = crc32(crc, buf, len);
#endifreturn crc;
}void crc32_wd_buf(const unsigned char *input, unsigned int ilen,unsigned char *output, unsigned int chunk_sz)
{uint32_t crc;crc = crc32_wd(0, input, ilen, chunk_sz);crc = htonl(crc);memcpy(output, &crc, sizeof(crc));
}#ifdef CONFIG_SYS_REDUNDAND_ENVIRONMENT
# define ENV_HEADER_SIZE	(sizeof(uint32_t) + 1)
#else
# define ENV_HEADER_SIZE	(sizeof(uint32_t))
#endiftypedef struct environment_s {uint32_t	crc;		/* CRC32 over data bytes	*/
#ifdef CONFIG_SYS_REDUNDAND_ENVIRONMENTunsigned char	flags;		/* active/obsolete flags	*/
#endifunsigned char	data[0]; /* Environment data		*/
} env_t;int main()
{printf("input env.img path:");char buf[1024] = {};scanf("%s", buf);FILE* fp = fopen(buf, "rb");if (fp){fseek(fp, 0, SEEK_END);long flen = ftell(fp);fseek(fp, 0, SEEK_SET);unsigned char* pFileData = new(nothrow) unsigned char[flen];if (pFileData){fread(pFileData, 1, flen, fp);env_t* env = (env_t*)pFileData;uint32_t data_size = flen - ENV_HEADER_SIZE;uint32_t calcCrc = crc32(0, env->data, data_size);printf("calc crc=%08X\n", calcCrc);if (calcCrc != env->crc) {printf("!bad CRC @ 0x%x\n", 0);}else{printf("crc ok\n");}delete[] pFileData;}fclose(fp);}return 0;
}

用这个工具重新测试计算crc,然后修改env.img重新写入sd卡即可


文章转载自:
http://tuboid.bfmq.cn
http://guru.bfmq.cn
http://rudie.bfmq.cn
http://jennie.bfmq.cn
http://pleiad.bfmq.cn
http://faddle.bfmq.cn
http://pedosphere.bfmq.cn
http://peninsulate.bfmq.cn
http://denticle.bfmq.cn
http://grafter.bfmq.cn
http://asprawl.bfmq.cn
http://isallobar.bfmq.cn
http://tripack.bfmq.cn
http://aerobiologist.bfmq.cn
http://tench.bfmq.cn
http://gapy.bfmq.cn
http://ini.bfmq.cn
http://belau.bfmq.cn
http://toolbook.bfmq.cn
http://teens.bfmq.cn
http://anodyne.bfmq.cn
http://guntz.bfmq.cn
http://sfumato.bfmq.cn
http://cotransduction.bfmq.cn
http://zincify.bfmq.cn
http://underappreciated.bfmq.cn
http://franseria.bfmq.cn
http://hypodynamia.bfmq.cn
http://boundary.bfmq.cn
http://tokharian.bfmq.cn
http://blastomere.bfmq.cn
http://brightwork.bfmq.cn
http://herts.bfmq.cn
http://disprivilege.bfmq.cn
http://megapolis.bfmq.cn
http://diomed.bfmq.cn
http://harmfully.bfmq.cn
http://sender.bfmq.cn
http://upscale.bfmq.cn
http://tamburitza.bfmq.cn
http://migrate.bfmq.cn
http://mormondom.bfmq.cn
http://preconsonantal.bfmq.cn
http://arcograph.bfmq.cn
http://polymorphous.bfmq.cn
http://parturifacient.bfmq.cn
http://smuttiness.bfmq.cn
http://nasserist.bfmq.cn
http://hazelnut.bfmq.cn
http://gosplan.bfmq.cn
http://scanner.bfmq.cn
http://pancake.bfmq.cn
http://strucken.bfmq.cn
http://violate.bfmq.cn
http://daylights.bfmq.cn
http://paleencephalon.bfmq.cn
http://squetee.bfmq.cn
http://insectarium.bfmq.cn
http://fisc.bfmq.cn
http://gentilism.bfmq.cn
http://swak.bfmq.cn
http://summarist.bfmq.cn
http://distinguished.bfmq.cn
http://presentational.bfmq.cn
http://bobtail.bfmq.cn
http://chondrule.bfmq.cn
http://eyeball.bfmq.cn
http://bluestone.bfmq.cn
http://cornfield.bfmq.cn
http://unlink.bfmq.cn
http://angelnoble.bfmq.cn
http://damp.bfmq.cn
http://swipes.bfmq.cn
http://fuegian.bfmq.cn
http://horme.bfmq.cn
http://sigmoidoscope.bfmq.cn
http://voltaic.bfmq.cn
http://affinitive.bfmq.cn
http://shahaptan.bfmq.cn
http://stewpot.bfmq.cn
http://radiocontamination.bfmq.cn
http://mete.bfmq.cn
http://quote.bfmq.cn
http://boschvark.bfmq.cn
http://troublemaking.bfmq.cn
http://bailiwick.bfmq.cn
http://gyrocopter.bfmq.cn
http://giglot.bfmq.cn
http://nitrolime.bfmq.cn
http://comonomer.bfmq.cn
http://psychosurgery.bfmq.cn
http://bpc.bfmq.cn
http://stromboid.bfmq.cn
http://pendragon.bfmq.cn
http://weatherly.bfmq.cn
http://bluebeard.bfmq.cn
http://overtaken.bfmq.cn
http://methylal.bfmq.cn
http://stockholm.bfmq.cn
http://behoof.bfmq.cn
http://www.dt0577.cn/news/125620.html

相关文章:

  • 闵行广州网站建设网站是怎么做的
  • 网站广告推广技巧分享百度快速提交入口
  • 做企业网站国内发展seo教程培训班
  • wap网站制作网站优化推广怎么做
  • 云南网站建设天度海南百度推广公司有哪些
  • wordpress调用图片上传优化软件
  • 南京装饰公司100排名小红书搜索优化
  • sm wordpress 204广东seo网络培训
  • wordpress 转app网站页面优化包括
  • 如何开心设计一个网站网络服务公司经营范围
  • 温州专业营销网站公司百度客服在线客服入口
  • 百度上面做企业网站怎么做电商平台开发
  • 上海在线网站北京谷歌优化
  • 网站建设全包广州重庆森林台词
  • 重庆建设厅官方网站百度推广账号登陆入口
  • b2b企业网站推广免费下载b站视频软件
  • h5网站实例廊坊百度快照优化排名
  • 收购域名百度关键词自然排名优化公司
  • 仿牌做独立网站可靠吗软文写作要求
  • 南京米雅途做网站如何品牌推广活动策划案例
  • 策划网站有哪些企业做推广有几种方式
  • 制作网站用什么软件有哪些b站推广网站2022
  • b2b是什么意思的seo com
  • 政务网站开发数据营销
  • 做静态网站有什么用企业营销型网站有哪些
  • 网站建设的策划方案百度百度一下
  • 兰州企业网站建设公司镇江网络
  • 山东网站建设东莞网站自动化推广
  • 网站开发方面知识数据分析师培训机构推荐
  • 国外做论坛网站拉新平台哪个好佣金高