怎么怎样加快u盘传输速度boot的u盘升级速度

小技巧教你如何使用u盘提升电脑速度_u启动
& &&1、将u盘插入电脑的usb插口,随后打开&计算机&,右键点击u盘,在右边的菜单选项中点击&属性&。
& &&2、在u盘的属性窗口下选择&ReadyBoost&选项,选择&使用这个设备&就可以开启ReadyBoost功能,一般情况下系统会在下方自动给出建议空间的大小,我们也可以依据自己的需求选择数值的大小,后点击&确定&按钮即可。如下图所示:
& &&3、完成上述的操作后,ReadyBoost就已经开启了。如果你觉得不再需要使用此项功能的时候,只要将选项改成&不使用这个设备&进行取消即可。
机械师f57是一款采用蓝天独家模具,是机械师的首款私模本,今天就为大家分享机械师f57使用u盘装系...
u启动win 7pe系统维护工具箱_6.3版是为更方便用户快捷维护系统而推出的专业工具软件,其中包括系统维...
随着计算机时代的飞速发展,现在有很多电脑装机都不会使用光驱了,一般都使用u盘装系统,最近有...
现在我们在买的电脑一般都是win10或者是win8系统,有很多用户都不知道怎么安装win7系统,今天就教大...
我们都很清楚在win10系统底部任务栏中,有一个搜索web和windows的搜索框。有些用户想要关闭这个功能当...
U启动使用教程
U盘工具下载推荐
BIOS设置教程推荐
热门常见问题
当前位置: >
小技巧教你如何使用u盘提升电脑速度查看: 1281|回复: 14
【已解决】Hi3516实现uboot自动升级(U盘),如何加入led指示?
本帖最后由 goodman 于
12:04 编辑
1.如果U盘不拔出,怎么防止重复升级
2.在Uboot升级或启动时如何加入正常启动、正在升级、升级成功、升级失败的LED指示。
麻烦了解这一块的前辈给我一些指点,谢谢!
补充内容 ( 09:00):
问题已解决
1、防止重复升级,可以在升级文件的name上做文章,加入型号,版本号,并且在uboot环境变量中加上当前的型号,版本号,升级的时候读取环境变量的型号和版本号进行对比,再决定是否升级。
如:../bin/pc/mkimage -A arm -T filesystem -C none -n &hi-ly96_0008& -d rootfs_hik.jffs2 rootfs复制代码
hi-ly96_0008 包含cpu型号,产品型号,版本号。其他的升级文件都可以照着此方法来做。
2、uboot下直接操作led的io,来控制灯。
我在include/configs/hi3516a.h文件中添加一个宏定义:& && & char *p = getenv(&firmware&);
& & & & if (p == NULL)
& && &&&return 0;
& & g_auversion = strdup(p);
& & & & if (g_auversion == NULL)
& && &&&return 0;复制代码
setenv(&firmware&, image_get_name(hdr));复制代码
& & char *versd = strrchr(image_get_name(hdr), '_');
& & char *vercur = strrchr(g_auversion, '_');
& & if(versd == NULL || vercur == NULL)
& & {
& && &&&printf(&check version error:%s|||%s\n&, g_auversion, image_get_name(hdr));
& && &&&return -1;
& & }
& & printf(&versd-&%s|vercur-&%s\n&, versd+1, vercur+1);
& & if(strncmp(g_auversion, image_get_name(hdr), strlen(g_auversion) - strlen(vercur)))
& & {
& && &&&printf(&model number error:%s|||%s\n&, g_auversion, image_get_name(hdr));
& && &&&return -1;
& & }
& & if(simple_strtoul(versd+1,NULL,10) &= simple_strtoul(vercur+1,NULL,10))
& & {
& && &&&printf(&same or low version:versd-&%s|vercur-&%s\n&, versd+1, vercur+1);
& && &&&return -1;
& & }
& & printf(&----------updating-------\n&);复制代码
“在uboot环境变量中加上当前的型号,版本号”,这个具体的是怎么添加呢?可以指点一下思路吗?
1、比如 ,在include/configs/hi.h 中增加如下宏。
#define CONFIG_FIRMWAREVER& & & & &hi-ly96_0001&& & & & & & & & /* fireware version */复制代码
2、在common/env_common.c 中的default_environment中增加如下代码
#ifdef& & & & CONFIG_FIRMWAREVER
& & & & &firmware=&& & & & CONFIG_FIRMWAREVER& & & & & & & & &\0&
#endif复制代码
就跟头文件中的默认ip ,bootarg一样,可以搜索下。
在2楼的基础上,建议在升级文件的前放8个字节,其中4字节 Magic_Num 用来判断当前文件是不是有效文件,后面四个字节可以放一些版本号啥的。
判断完了后,烧写前把这8个字节干掉。
在2楼的基础上,建议在升级文件的前放8个字节,其中4字节 Magic_Num 用来判断当前文件是不是有效文件,后面 ...
好的,谢谢您认真的回复
1、防止重复升级,可以在升级文件的name上做文章,加入型号,版本号,并且在uboot环境变量中加上当前的型号 ...
谢谢您,前辈。
我还有个疑问:因为每次升级时都是新的版本号,那是不是每次升级之前都要设置一下这个环境变量呢?
谢谢您,前辈。
我还有个疑问:因为每次升级时都是新的版本号,那是不是每次升级之前都要设置一下这个环 ...
升级成功了,更新版本号为当前的版本号。
升级成功了,更新版本号为当前的版本号。
升级成功后,uboot会自动更新版本号为当前版本号吗?
好的,谢谢您认真的回复
问题解决了,请把问题标记为【已解决】
问题解决了,请把问题标记为【已解决】
好的,没经验,以后要多多指教
1、防止重复升级,可以在升级文件的name上做文章,加入型号,版本号,并且在uboot环境变量中加上当前的型号 ...
“在uboot环境变量中加上当前的型号,版本号”,这个具体的是怎么添加呢?可以指点一下思路吗?
1、比如 ,在include/configs/hi.h 中增加如下宏。
恩恩,好的,太感谢你了!
1、比如 ,在include/configs/hi.h 中增加如下宏。
我在include/configs/hi3516a.h文件中添加一个宏定义:
#define CONFIG_FIRMWAREVER& && &&&&hi-ls16_0001&& && && && && & /* fireware version */复制代码
在common/env_common.c文件中添加下面几行代码:
#ifdef& && &&&CONFIG_FIRMWAREVER
& && &&&&firmware=&& && &&&CONFIG_FIRMWAREVER& && && && && & &\0&
#endif复制代码
然后在product/hiupdate/auto_update.c文件中加入下面代码
static int check_version(void)
{
& && &&&image_header_t *
& && &&&char *new_ver,*old_
& && &&&old_ver = getenv(firmware);
& && &&&if (NULL == old_ver)
& && &&&{
& && && && && & printf(&The old_ver is null!!!!!!!!!!!!\n&);
& && && && && & return 0;
& && &&&}
& && &&&*new_ver = (unsigned long)ntohl(hdr-&ih_name[IH_NMLEN]);
& && &&&if (!(strcmp(new_ver,old_ver)))
& && &&&{
& && && && && & printf(&The version had been the best version!\n& );
& && && && && & return 1;
& && &&&}
& && &&&return 0;
}
//auto_update.c文件中的头文件为:
#include &common.h&
#include &environment.h&
#include &command.h&
#include &malloc.h&
#include &image.h&
#include &asm/byteorder.h&
#include &asm/io.h&
#include &spi_flash.h&
#include &linux/mtd/mtd.h&
#include &fat.h&复制代码
结果编译时报错:
auto_update.c: In function ‘check_version’:
auto_update.c:180:19: error: ‘firmware’ undeclared (first use in this function)
&&old_ver = getenv(firmware);
& && && && && && & ^
auto_update.c:180:19: note: each undeclared identifier is reported only once for each function it appears in
/home/liusz/git/uboot/uboot_hi3516a_s030/config.mk:252: recipe for target 'auto_update.o' failed
make[1]: *** [auto_update.o] Error 1
make[1]: Leaving directory '/home/liusz/git/uboot/uboot_hi3516a_s030/product/hiupdate'
Makefile:415: recipe for target 'product/hiupdate/libhiupdate.a' failed
make: *** [product/hiupdate/libhiupdate.a] Error 2
我觉得错误在getenv(firmware),但不知道怎么修改?还有getenv()函数的参数是环境变量名的指针,不知道直接使用firmware对吗?
能不能指点一下,谢谢啦。
真是太感谢你了
Powered by博客访问: 2592167
博文数量: 977
博客积分: 12961
博客等级: 上将
技术积分: 10709
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
uboot中添加U盘支持
1.插入u盘后,运行 usb-start命令,你就可以看到u-boot可以挂在U盘,再用atinfo USB 0:1等命令对USB进行操作了。把u盘的内核拷贝到sdram中
2.fatload usb 0:4 0x uimage;bootm
(1)首先阅读uboot目录下CPU/DOC 下文件readme。usb。
(2)再inlcude、cinfigs 目录下找到自己的 平台 ×。h
CONFIG_CMD_USB enables basic USB support and the usb commandCONFIG_USB_UHCI defines the lowlevel part.A lowlevel part must be definedif using CONFIG_CMD_USBCONFIG_USB_KEYBOARD enables the USB KeyboardCONFIG_USB_STORAGE enables the USB storage devices(3)编译 ,如果出现 printf(" %s (%s, %dmA)\n",usb_get_class_desc(dev->config.if_desc[0].bInterfaceClass),dev->slow ? "1.5MBit/s" : "12MBit/s",dev->config.MaxPower * 2); slow 没有定义 修改函数
usb_device 定义 enum usb_device_ 为 /* Slow device? */
(4)出现 common/libcommon.a(usb.o)(.text+0x54): In function `usb_init':/user/srp/u-boot-1.1.3/common/usb.c:96: undefined reference to `usb_lowlevel_init'common/libcommon.a(usb.o)(.text+0xd4): In function `usb_stop':/user/srp/u-boot-1.1.3/common/usb.c:117: undefined reference to `usb_lowlevel_stop'common/libcommon.a(usb.o)(.text+0x140): In function `usb_submit_int_msg':/user/srp/u-boot-1.1.3/common/usb.c:141: undefined reference to `submit_int_msg'common/libcommon.a(usb.o)(.text+0x1e0): In function `usb_control_msg':/user/srp/u-boot-1.1.3/common/usb.c:170: undefined reference to `submit_control_msg'common/libcommon.a(usb.o)(.text+0x27c): In function `usb_bulk_msg':/user/srp/u-boot-1.1.3/common/usb.c:197: undefined reference to `submit_bulk_msg'common/libcommon.a(usb_storage.o)(.text+0x8d4): In function `usb_stor_CBI_get_status':/user/srp/u-boot-1.1.3/common/usb_storage.c:527: undefined reference to `submit_int_msg'make: *** [u-boot] Error 1
出现这个问题,是没有添加Usb类似的函数功能,再cpu下面找到自己平台的cpu,添加×。c ,就是添加上面没有出现的函数功能,在 这个目录下makefile里面添加×。o
(5)其他问题 按照提示解决 就可以编译ok!
阅读(1980) | 评论(0) | 转发(1) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。加快U盘加载速度的小窍门
来源:U大侠
  如今,U盘的使用已经是非常的普遍,因其体积巧小、携带方便,受到了不少消费者的喜爱。但是很多用户在使用U盘的过程中,都会遇到各种问题。比如一些用反映说,自己的U盘加载速度过慢,有时读取个文件都需要好久,这让不少用户烦恼不已。那么。U盘加载速度慢要怎么办呢?今天U大侠小编就和大家说说加快U盘加载速度的小窍门。
  1、点击&开始&在搜索框中输入&services.msc&后按回车键。
  2、 右键点击&shell hardware detection&选择&属性&。
  3、在弹出的&shell hardware detection属性&页面中,选择&启动类型&,在弹出的下拉菜单中选择&自动&或&手动&点击&应用&。
  4 、点击&启动&后&确定&。
  相关文章:
责任编辑:admin
用户交流群
 (满) (满) (满)博客访问: 606595
博文数量: 77
博客积分: 1741
博客等级: 上尉
技术积分: 2452
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
& & 此版本uboot在XC2440_uboot_V1.3版本上修改得来,是为我们的一个大客户做的量产工具和智能升级工具。& & 以前给XC2440核心板烧程序用电脑的USB口,每次还要接上串口,按选项选择烧写功能,电脑上也要频繁操作选择下载的文件。小量的话还好说,就是要费点时间。量大就不能这么干了,有的客户一次要1千套,这么搞会搞死人的。& &同时还有个问题一直困扰我,用2440做的产品,如果要更新系统怎么办。而且东西已经卖到了国外,不可能是让客户把东西发过来让我们给更新吧,也不可能让用户自己接个串口输命令吧。必须想个让用户自己就能方便操作的办法,做个智能的升级工具。& &首先我想到了网络,因为设备上是带有网口的,但是这还需要做个上位机软件,很麻烦,不愿投入开发这个。因为用过uboot的U盘烧写系统镜像的功能,就想到用U盘更新系统比较方便,设备上有USB HOST接口,U盘也方便操作,往里面放入要更新的镜像即可。& & 因为设备一开机就直接就系统,只有在接上串口后,在开机时输入个键值才能进uboot,因为设备上没有留出串口,即使有串口和usb device,我们也不可能让用户去学习操作这些对他们没用的东西。于是我就根据我们做手机开发时,在手机开机的同时按住一个按键,即可进入bootloader的下载模式得到启发,也做一个这样的检测机制。这样开机时只要按住一个按键若干秒后即可进入下载模式,然后再用按一个按键就开始自动执行我设置好了从U盘烧写镜像的程序。 操作方法:一、烧写uboot镜像到Nandflash的bios分区,也可以烧写到Norflash中,在Norflash中烧写Nandflash二、准备一个U盘或SD/TF卡读卡器,接在电脑上,先将准备烧写的u-boot.bin,zImage.bin,rootfs.bin三个文件复制到U盘根目录下注意:文件名不能错,否则找不到文件。U盘中尽量不要装太多文件,否则影响查找文件的速度&三、将U盘插在开发板的USB HOST接口上,按如下步骤操作(其中3~8是自动执行的)&<font class="Apple-style-span" size="3" color="#. 开机的同时按住KEY1,大概3秒后,看到LED1亮起即可松开按键,此时进入udisk download模式&<font class="Apple-style-span" size="3" color="#. 按一下Key2键,隔1秒后观察LED2会快速闪烁两下,此时开始烧写uboot镜像&<font class="Apple-style-span" size="3" color="#. 烧写完uboot后,LED2会长亮一秒后熄灭,此时已经烧写完uboot镜像&<font class="Apple-style-span" size="3" color="#. 接着LED3会快速闪烁两下,此时开始烧写zImage镜像&<font class="Apple-style-span" size="3" color="#. 烧写完zImage后,LED3会长亮一秒后熄灭,此时已经烧写完zImage镜像&<font class="Apple-style-span" size="3" color="#. 接着LED4会快速闪烁两下,此时开始烧写rootfs镜像&<font class="Apple-style-span" size="3" color="#. 烧写完rootfs后,LED4会长亮一秒后熄灭,同时LED1也熄灭,此时已经烧写完rootfs镜像&<font class="Apple-style-span" size="3" color="#. 自动重启系统,启动linux系统
程序的大体思路是这样:& & 开机程序跑到main.c中的main_loop函数,在判断bootdelay,读取连接按键的GPIO管脚状态,看否按键按下,如果没有按键按下,就照常往下跑,直接进系统。& & 如果按键被按下,程序就停下来,用一个while等待另一个按键按下。当另一个按键按下了,开始执行后面的程序,就是用run_command依次执行usb start,fatload,nand erase,nand write这些命令把boot,kernel,rootfs都烧写完成后reset uboot即可,中间还可以加入LED闪烁和蜂鸣器发声的动作表示烧写状态,利用GPIO的操作即可
& & uboot镜像和使用说明已上传至xcembed论坛 && & &下载地址:& & 如果有问题请和我联系:
阅读(4820) | 评论(1) | 转发(5) |
相关热门文章
给主人留下些什么吧!~~
博主,最近我也在做U盘自启动,想问下你用run_command依次执行usb&start,fatload,nand&erase,nand&write这些命令,是要在终端手动输入么
请登录后评论。}

我要回帖

更多关于 如何加快u盘传输速度 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信