打开英文网站字体不对做宴会有哪些素材网站

张小明 2026/3/2 23:27:24
打开英文网站字体不对,做宴会有哪些素材网站,石家庄做网站电话,茶叶网站程序看到虚拟优盘进行拖拽升级后#xff0c;我也进行了几天测试尝试#xff0c;终于还是找到了方法#xff0c;能够在手机也能升级。模拟优盘主要是向电脑发送DBR表#xff0c;DBR(DOS Boot Record)#xff1a;磁盘操作系统引导记录#xff0c;DBR是每个逻辑分区的一个引导记…看到虚拟优盘进行拖拽升级后我也进行了几天测试尝试终于还是找到了方法能够在手机也能升级。模拟优盘主要是向电脑发送DBR表DBR(DOS Boot Record)磁盘操作系统引导记录DBR是每个逻辑分区的一个引导记录里面记录了该分区的众多重要信息以及引导代码所以十分重要。在U盘系统中必须有DBRDBR占据逻辑分区的0扇区大小通常为512字节DBR各个部分的含义见《圈圈教你玩USB》搜到了好多篇文章很顺利电脑也显示了优盘图标和容量。复制uint8_tDBR[512] // DOS 引导记录{0xEB,0x3C,0x90,// 跳转指令0x4d,0x53,0x44,0x4f,0x53,0x35,0x2e,0x30,// 文件系统版本信息0x00,0x02,// 扇区字节数0x08,// 每簇扇区数0x01,0x00,// 保留扇区数0x02,// 该分区的 FAT 副本数0xe0,0x00,// 根目录项数0x00,0x50,// 小扇区数0xf0,// 媒体描述符0x08,0x00,// 每 FAT 扇区数0x20,0x00,// 每道扇区数0x40,0x00,// 磁头数0x00,0x00,0x00,0x00,// 隐藏扇区数0x00,0x50,0x00,0x00,// 大扇区数0x80,// 磁盘驱动器参数80 表示硬盘0x00,// 保留0x29,// 扩展引导标记0x29 表示后三个区可用0x88,0x09,0x71,0x20,// 标卷序列号0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,// 磁盘标卷0x46,0x41,0x54,0x31,0x32,0x20,0x20,0x20,// 文件系统类型信息// 更多引导代码填充0[62...509] 0x00,0x55,0xaa,};每扇区字节数是512可以计算每次要读取的扇区号然后根据DBR表来上传内容。电脑可以识别可是手机总是提示需要格式化。测试了很多方法无论怎么修改上传的DBR表FAT表手机都无法识别。在测试官方的例程里面使用内部FLASH空间模拟的U盘可以识别也可以存入数据就想是不是把两种结合一下呢。首先更改磁盘的大小把读取的空间改大与写入的空间写入空间为开始地址0x08030000结束地址为0x08037800总空间大小为30K,读取的空间地址为200K经测试手机和电脑都可以读取和写入。首次启动还是需要用电脑格式化有点麻烦直接做成固件写入也不方便启动时直接把DBR等数组写入指定位置吧复制// 初始化根目录IFlash_Prog_512(IFLASH_UDISK_START_ADDR,(uint32_t*)DBR);IFlash_Prog_512(IFLASH_UDISK_START_ADDR0x800,(uint32_t*)FAT);IFlash_Prog_512(IFLASH_UDISK_START_ADDR0xC00,(uint32_t*)FAT);EEprom_Write_u8Array(IFLASH_UDISK_START_ADDR0x1000, BL_FAT_root_dir,sizeof(BL_FAT_root_dir) /4);烧写好程序后,不用格式化也有U盘出来了如何判断是否是写入的bin文件呢方法一般是采用后缀名的方法来判断确定是bin文件后再写入指定的地址如何判断结束有点麻烦主要是根据写入的地址是否小于数据区的地址来判断不是太好最终还是采用文件头的方法来判断是否是需要的固件写入了。文件使用的是RTT OTA的固件打包程序支持AES256的加密文件头格式如下复制chartype[4];/* RBL 字符头 */uint16_tfota_algo;/* 算法配置: 表示是否加密或者使用了压缩算法 */uint8_tfm_time[6];/* 原始 bin 文件的时间戳, 6 位时间戳, 使用了 4 字节, 包含年月日信息 */charapp_part_name[16];/* app 执行分区名 */chardownload_version[24];/* 固件代码版本号 */charcurrent_version[24];/* 这个域在 rbl 文件生成时都是一样的我用于表示 app分区当前运行固件的版本号判断是否固件需要升级 */uint32_tcode_crc;/* 代码的 CRC32 校验值, 它是的打包后的校验值, 即 rbl 文件 96 字节后的数据 */uint32_thash_val;/* hash校验值 */uint32_traw_size;/* 原始代码的大小 */uint32_tcom_size;/* 打包代码的大小 */uint32_thead_crc;/* rbl 文件头的 CRC32 校验值即 rbl 文件的前 96 字节 */在UDISK_Down_OnePack写入函数中读取前96字节先判断是否为RBL头计算crc32如果正确则开始写入固件备份区并开始记录长度长度大于打包代码的大小则认为是写入完成了,开始校验文件的CRC如果正确则使用AES256解密再写入程序区。复制voidUDISK_Down_OnePack(uint8_t*pbuf,uint16_tpacklen){uint32_taddress;uint32_tsec_start_addr;staticuint32_tBIN_LENG 0;//BIN文件长度if(UDISK_Sec_Pack_Count 0x00){address (uint32_t)UDISK_Cur_Sec_Lba * DEF_UDISK_SECTOR_SIZE;sec_start_addr (address / DEF_FLASH_SECTOR_SIZE) * DEF_FLASH_SECTOR_SIZE;}memcpy(UDisk_Down_Buffer (uint32_t)UDISK_Sec_Pack_Count * UDISK_Pack_Size, pbuf, UDISK_Pack_Size);UDISK_Sec_Pack_Count;UDISK_Transfer_DataLen - UDISK_Pack_Size;if(UDISK_Sec_Pack_Count (DEF_UDISK_SECTOR_SIZE / UDISK_Pack_Size)){address (uint32_t)UDISK_Cur_Sec_Lba * DEF_UDISK_SECTOR_SIZE;sec_start_addr (address / DEF_FLASH_SECTOR_SIZE) * DEF_FLASH_SECTOR_SIZE;if(Flag_bin0)//判断是否是文件头{IFlash_Prog_512(IFLASH_UDISK_START_ADDR sec_start_addr, (uint32_t*)UDisk_Down_Buffer);memcpy(OTA_part.data[0], UDisk_Down_Buffer,96);//先判断文件头RBL// 检查文件标志是否正确if(memcmp(OTA_part.data, FILE_FLAG,strlen(FILE_FLAG))){// printf(文件标志错误\r\n);}else{// printf(文件标志正确计算CRC\r\n);rt_fota_crc_init();uint32_tCRCValue rt_fota_crc((uint8_t*)OTA_part.data,92);if(CRCValue ! OTA_part.fota_part_head.head_crc){// printf(文件头CRC校验失败\r\n);}else{printf(文件头 %s\r\n, OTA_part.data);printf(版本号 %s\r\n, OTA_part.fota_part_head.download_version);printf(名称 %s\r\n, OTA_part.fota_part_head.app_part_name);printf(代码大小 %d\r\n, OTA_part.fota_part_head.raw_size);printf(打包大小 %d\r\n, OTA_part.fota_part_head.com_size);printf(hash_val %x\r\n, OTA_part.fota_part_head.hash_val);printf(CRC32_code %x\r\n, OTA_part.fota_part_head.code_crc);printf(CRC32_head %x\r\n, OTA_part.fota_part_head.head_crc);IAP_EEPROM_ERASE_108k(BACKUP_IMAGE_START_ADD);printf(接收文件头正确开始写入文件\r\n);Flag_bin 1;BIN_start_addrsec_start_addr;// 初始化BIN文件起始地址BIN_LENG512;// 初始化BIN文件长度}}}if(Flag_bin 1)// 开始写入文件{uint32_tstart_addrsec_start_addr- BIN_start_addr;if(sec_start_addr BIN_start_addr ){if(start_addr BACKUP_IMAGE_MAX_SIZE){IAP_EEPROM_WRITE_512(BACKUP_IMAGE_START_ADD start_addr, (uint32_t*)UDisk_Down_Buffer);}else{printf(文件过大\r\n);Flag_bin 0;// 重置Flag_bin}}BIN_LENG 512;if(BIN_LENG OTA_part.fota_part_head.com_sizeBIN_INF_LEN512)//BIN文件写入完成{Flag_bin_count 0;Flag_bin 0;printf(文件写入完成开始校验\r\n);}}if(UDISK_Transfer_DataLen 0x00){Udisk_Transfer_Status ~DEF_UDISK_BLUCK_DOWN_FLAG;UDISK_Up_CSW();}UDISK_Sec_Pack_Count 0x00;UDISK_Cur_Sec_Lba;}}开始校验文件的CRC复制rt_fota_crc_init();// 初始化CRC计算器body_crc 0xffffffff;// 初始化CRC值// 总大小uint32_ttotal_size OTA_part.fota_part_head.com_size;// 起始地址uint32_tstart_addr BACKUP_IMAGE_START_ADD 96;// 已处理字节数uint32_toffset 0;// 每次读取的数据长度uint32_tchunk_size;while(offset total_size) {chunk_size (total_size - offset) FLASH_PAGE_SIZE ? FLASH_PAGE_SIZE : (total_size - offset);IAP_EEPROM_READ(start_addr offset, (u8 *)pBuf, chunk_size);body_crc rt_fota_step_crc(body_crc, pBuf, chunk_size);offset chunk_size;}body_crc body_crc ^0xffffffff;printf(body_crc:%08x\r\n, body_crc);printf(code_crc:%08x\r\n, OTA_part.fota_part_head.code_crc);// 将文件头的CRC值与计算得到的CRC值进行比较if(body_crc OTA_part.fota_part_head.code_crc){// 打印校验和正确的信息printf(CRC32 is right!\r\n);}解密写入程序区复制// 定义并初始化局部变量// 密钥uint8_tKEY[32];// 偏移量uint8_tIV[16];structAES_ctxctx;AES_init_ctx_iv(ctx, KEY, IV);u16 i, j;u32 *pBuf;u32 flashAddr;u32 updataBuff[READ_DATA_LEN /4];// 设置缓冲区指针pBuf updataBuff;// 循环复制数据这样可以确保即使 com_size 不能被 READ_DATA_LEN 整除循环次数也会多一次从而覆盖所有数据。for(i 0; i ((OTA_part.fota_part_head.com_size READ_DATA_LEN -1) / READ_DATA_LEN);i)// i (BACKUP_IMAGE_MAX_SIZE / READ_DATA_LEN){// 计算当前循环对应的闪存地址flashAddr i * READ_DATA_LEN;// 从用户闪存区读取数据到缓冲区IAP_EEPROM_READ((flashAddr BACKUP_IMAGE_START_ADDBIN_INF_LEN), (u8 *)pBuf, READ_DATA_LEN);数据写入完后就可以跳转了。由于只有小米的手机,经测试可以升级固件.。---------------------作者kissdb链接https://bbs.21ic.com/icview-3467214-1-1.html来源21ic.com此文章已获得原创/原创奖标签著作权归21ic所有任何人未经允许禁止转载。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

菜鸟网站建设承德建设企业网站

如何实现电商运营的智能化管理机制 关键词:电商运营、智能化管理、机器学习、数据驱动、自动化决策、个性化推荐、供应链优化 摘要:本文深入探讨了电商运营智能化管理的实现机制,从基础概念到核心技术,再到实际应用场景。文章首先介绍了电商运营智能化的背景和必要性,然后…

张小明 2026/1/10 14:44:46 网站建设

网站整体迁移该怎么做建设厅网站的投诉可以哪里查

Android视频录制框架深度解析:基于FFmpeg的开源解决方案实战指南 【免费下载链接】WeiXinRecordedDemo 仿微信视频拍摄UI, 基于ffmpeg的视频录制编辑 项目地址: https://gitcode.com/gh_mirrors/we/WeiXinRecordedDemo 技术背景与移动端视频开发痛点 在移动…

张小明 2025/12/29 16:53:51 网站建设

东莞市做阀门的网站wordpress自动填写表格

LangFlow能否用于电商产品描述批量生成?运营提效案例 在电商平台,每天都有成千上万的新品上架。每一件商品都需要一段精心打磨的描述——既要突出卖点,又要符合品牌调性,还得兼顾SEO关键词布局。传统做法是靠文案团队一条条撰写&a…

张小明 2025/12/24 22:53:12 网站建设

中小企业网站规划方案长沙企业网站建立

利用for循环和continue、break等关键字编写一个发放工资的程序。 要求:给1~20名员工发放工资,依次发放。随机生成员工的绩效分,绩效范围是1~10,绩效低于5不发工资,大于等于5发放1万元。公司账户余额10万元&…

张小明 2025/12/23 17:15:24 网站建设

杨伟丽 郑州做网站企业信息门户

还在为WPF应用的"复古"界面而烦恼吗?看着自己辛辛苦苦开发的功能被用户吐槽界面过时,是不是感觉很无奈?别担心,今天我要分享一个让WPF应用瞬间脱胎换骨的技巧——ModernWpf,这个开源工具能在短时间内让你的应…

张小明 2026/1/4 6:58:51 网站建设