u盘指令
- 格式:doc
- 大小:42.50 KB
- 文档页数:7
cmd命令怎么给u盘写保护,防止文件被拷出?
对于U盘写保护的方法有很多,有权限上,也有量产方面的,不过不管通过什么方法对U 盘写保护,也都是为了U盘内的文件安全,今天小编来跟大家分享下使用CMD命令对U盘写保护。
1、这种cmd命令方式对U盘写保护的方法只适用于文件格式为NTFS的U盘。
2、在电脑桌面左下角找到并点击搜索,输入cmd,点击回车键。
3、输入cacls G:\ /p everyone:r,其中G是指U盘的盘符号,然后点击回车键。
4、在提示中按Y键,设置完成。
5、当然这种方法也很好修改,如果是对U盘进行权限设置,防止文件拷出,小编还是建议使用硬加密U盘更加安全,下面以大势至防泄密U盘为例进行介绍,把U盘接入电脑主机,然后双击打开此电脑,找到SecU名称的CD驱动盘,双击安装。
6、安装完成后返回电脑桌面找到名称为SecU的快捷方式,双击打开,根据提示设置初始密码和密保,全部填写完成后点击确定。
7、重新打开快捷方式,在主界面右上角找到并点击选项,在弹出的菜单中点击模式切换。
8、根据提示输入之前设置的初始密码,点击确定,这样就进入了管理模式,之前没进入管理模式前是普通模式,初始设置默认普通模式下没有任何权限,进入管理模式之后才能够具有完全权限。
9、这当前模式下,可以进行各种文件或者文件夹的权限操作,操作完成后,在右上角找到并点击防拷选项。
10、在弹出的窗口中可以对普通模式下的权限进行设置,也可以设置普通模式的访问密码等,全部设置完成后点击确定即可,这种方法实现了一盘两用,还能设置各自权限,保证文件安全。
威纶通宏指令备份至u盘-回复在日常工作中,数据备份是非常重要的一项任务。
无论是个人用户还是企业用户,都会涉及到需要备份重要数据的情况。
而对于一些重要的文件,我们往往会选择使用U盘来进行备份,这样可以方便携带和存储。
今天我们来介绍一种将威纶通宏指令备份至U盘的方法。
首先,我们需要明确的是,威纶通宏指令是一种常用的微控制器指令集,被广泛应用于各种控制系统中。
而U盘则是一种常见的便携式存储设备,能够方便地传输和存储各种文件。
我们的目标是将宏指令备份到U盘上,以确保数据的安全性和可靠性。
第一步,我们需要准备一个可用的U盘。
在市场上有各种品牌和容量的U 盘可供选择,简单的文件备份可以选择较小容量的U盘,而大规模备份则需要选择更大容量的U盘。
通常来说,16GB或者32GB的U盘已经足够应对一般的备份需求。
第二步,我们需要连接U盘到计算机上。
一般来说,U盘的连接接口是USB,因此我们只需要将U盘的USB插头插入计算机的USB接口即可。
在插入U盘时,我们需要确保计算机能够正确识别和读取U盘。
第三步,我们需要打开威纶通宏指令所在的文件夹或者应用程序。
只有通过正确的操作路径,才能够找到我们要备份的宏指令文件。
在找到之后,我们只需要将指令文件复制到U盘的指定文件夹即可。
这一步相对简单,只需要将文件从一个目录拖拽到另一个目录即可完成复制操作。
备份的速度取决于指令文件的大小和计算机的性能,如果文件很大,复制过程可能需要一些时间。
第四步,备份完成后,我们可以将U盘从计算机上安全地拔出。
在Windows操作系统中,我们需要找到电脑右下角的任务栏,点击“安全删除硬件和弹出媒体”图标。
然后,在弹出的菜单中选择要安全移除的U 盘,等待系统提示拔出硬件即可。
这样能够避免数据丢失或损坏的风险,提高备份的可靠性。
至此,我们已经成功地将威纶通宏指令备份至U盘中。
这样一来,即使计算机出现故障或者宏指令丢失,我们还可以通过U盘中的备份文件恢复数据,确保控制系统的正常运行。
/*******************************************************/#include"reg52.h"#include"stdio.h"#include "string.h"#include "intrins.h"#include"CH375INC.H"/*******************************************************/#define uchar unsigned char#define uint unsigned int/*******************************************************/sbit CH375_INT=P3^3;sbit CH375_A0=P3^4;sbit CH375_RD=P3^5;sbit CH375_WR=P3^6;sbit CH375_CS=P3^7;/*******************************************************/uchar xdata my_buf[512];/*******************************************************/void uart_init(){TMOD=0X20;TH1=TL1=0XFD;TR1=1;REN=1;SM0=0;SM1=1;EA=1;ES=1;}/*******************************************************/void uart_send_pc(uchar *s) //串口监视//void uart_send_pc(uchar a[20]) { //{uchar len=strlen(s); // uchar i;uchar i; // for(i=0;i<20;i++)for(i=0;i<len;i++) // {{ // ES=0;ES=0; // SBUF=a[i];SBUF=s[i]; // while(!TI);while(!TI); // TI=0;TI=0; // ES=1;ES=1; // }} //}}/*******************************************************/void Delay2us() //@11.0592MHz{unsigned char i;_nop_();_nop_();i = 2;while (--i);}//********************1ms延时函数*************void delay1ms(unsigned int z){unsigned int x,y;for(x=z;x>0;x--)for(y=845;y>0;y--);}/*******************************************************/ void ch375_write_datcmd(uchar dat_cmd,uchar k) //写数据、命令{Delay2us();CH375_CS=0;CH375_A0=k; // 0:data 1:cmdP2=dat_cmd;CH375_WR=0;CH375_WR=1;CH375_CS=1;CH375_A0=1;Delay2us();}uchar ch375_read_dat() //读数据{uchar dat;CH375_CS=0;CH375_A0=0;P2=0XFF;CH375_RD=0;// P2=0XFF;dat=P2;CH375_RD=1;CH375_CS=1;CH375_A0=1;return dat;}/************************等待获取状态并取消中断操作*******************************/uchar ch375_wait_int(){CH375_INT=1;while(CH375_INT);ch375_write_datcmd(CMD_GET_STATUS,1); //获取状态并取消中断return ch375_read_dat();}/************************获取U盘容量操作*******************************/ unsigned long* get_volume(){unsigned long volume[2];uchar status,i;ch375_write_datcmd(CMD_DISK_SIZE,1);status=ch375_wait_int();if(status==USB_INT_SUCCESS){ch375_write_datcmd(CMD_RD_USB_DA TA,1);i=ch375_read_dat();for(i=0;i<4;i++){volume[0]=volume[0]<<8;volume[0]=volume[0]+ch375_read_dat();delay1ms(1);}for(i=0;i<4;i++){volume[1]=volume[1]<<8;volume[1]=volume[1]+ch375_read_dat();delay1ms(1);}}return volume;}/************************U盘初始化操作*******************************/uchar ch375_init(){uchar status;// uart_send_pc("请插入U盘:\n");status=ch375_wait_int(); //等待插入,并获取状态if(status!=USB_INT_CONNECT){uart_send_pc("U盘插入错误!\n");}else{// uart_send_pc("U盘已插入!\n");}ch375_write_datcmd(CMD_DISK_INIT,1); //磁盘初始化status=ch375_wait_int();if(status!=USB_INT_SUCCESS){uart_send_pc("磁盘初始化失败!\n");}else{// uart_send_pc("磁盘初始化成功!\n");}return 0;}/*******************************************************//**********************读扇区操作*********************************/uchar read_section(unsigned long addr){uchar i,k,status,length;ch375_write_datcmd(CMD_DISK_READ,1); //发送读扇区命令ch375_write_datcmd(addr,0);ch375_write_datcmd(addr>>8,0);ch375_write_datcmd(addr>>16,0);ch375_write_datcmd(addr>>24,0); //发送地址,先低后高ch375_write_datcmd(1,0); //送入读取扇区数for(i=0;i<8;i++) //缓冲区为64个字节,512/64=8,所以要读8次{status=ch375_wait_int(); //等待,并获取状态if(status==USB_INT_DISK_READ) //读数据块{ch375_write_datcmd(CMD_RD_USB_DA TA,1);length=ch375_read_dat();for(k=0;k<length;k++){my_buf[k+i*64]=ch375_read_dat(); //每次获取length个数ES=0; // SBUF=a[i];SBUF=my_buf[k+i*64]; // while(!TI);while(!TI); // TI=0;TI=0; // ES=1;ES=1;}}ch375_write_datcmd(CMD_DISK_RD_GO,1);}status=ch375_wait_int();if(status!=USB_INT_SUCCESS){return status;}return 0;}/*******************************************************/void main(){uart_init();delay1ms(40);ch375_write_datcmd(CMD_SET_USB_MODE,1); //设置USB模式ch375_write_datcmd(0x07,0); //自检测,复位usb总线delay1ms(1);ch375_write_datcmd(CMD_SET_USB_MODE,1); //设置USB模式ch375_write_datcmd(0x06,0); //自检测,并且产生sop包if(ch375_init()==0){// uart_send_pc("初始化完成!\n");}delay1ms(1);if(read_section(96+0x3a19)==0){// uart_send_pc("已读到扇区!\n");}while(1){}}void t1() interrupt 4{RI=0; }。
使用指南(加密极致型闪存盘/U220)PN:UM00611317声 明本产品《用户手册》所包含的内容均受到《中华人民共和国著作权法》及其他相关法律、法规的保护。
未经深圳市朗科科技有限公司(以下简称“N e t a c (朗科)公司”)同意或者授权,任何组织或者个人均不得以任何手段或形式对其进行修改、篡改或使用。
AirTrack TM 、OnlyDisk T M 、优信通T M 、iMuz T M 、酷贝TM 和T M是Netac (朗科)公司的商标。
Netac ®、优CF 卡®、优风®、优名通®、优芯®、U-SAFE ®、优盘®和优卡®是Netac (朗科)公司的注册商标。
N e t a c (朗科)公司对以上注册商标享有注册商标专用权。
执行标准:Q/Netac 001工具包的安装及卸载(含驱动程序和格式化工具)安装与卸载U220型闪存盘在Windows 98操作系统下使用时需要安装闪存盘驱动程序。
安装前请登录本公司的网站 下载U220型闪存盘的工具包。
注:a.在安装闪存盘驱动程序的同时,格式化工具也将被自动安装,安装完成后在桌面上会自动生成闪存盘格式化工具图标。
b.在安装驱动程序时,建议不要先将闪存盘插入电脑;若闪存盘已与电脑连接,请在安装完驱动程序后,将闪存盘重新拔插一次。
当您需要卸载格式化工具时,只需再次双击其安装文件“Set u p.e xe ”,按提示完成即可。
或从“控制面板”的“添加/删除程序”中将其卸载。
格式化工具的使用格式化工具支持Windows 98/Me/2000/XP/Server 2003操作系统。
将闪存盘插入电脑的USB 接口。
在桌面双击格式化工具图标,在弹出的对话框中,您可以通过调节“容量调整”滑块调整两个盘的容量大小,同时还可以:1)格式化:选择“格式化类型”为“格式化”,点击“格式化”,按提示进行操作即可格式化闪存盘。
U盘枚举(⾃⼰总结)插⼊U盘直接拔出安全拔出A9枚举Linux USB gadget设备驱动解析(2)---驱动调试作者:刘洪涛, 华清远见嵌⼊式学院⾦牌讲师。
这⼀节主要把在实现“linuxU盘功能”过程中的⼀些调试过程记录下来,并加以解析。
⼀、背景知识1、USB Mass Storage类规范概述USB 组织在universal Serial Bus Mass Storage Class Spaceification 1.1版本中定义了海量存储设备类(Mass Storage Class)的规范,这个类规范包括四个独⽴的⼦类规范,即:1. USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport/doc/ebbd862c011ca300a6c390d1.html B Mass Storage Class Bulk-Only Transport/doc/ebbd862c011ca300a6c390d1.html B Mass Storage Class ATA Command Block/doc/ebbd862c011ca300a6c390d1.html B Mass Storage Class UFI Command Specification前两个⼦规范定义了数据/命令/状态在USB 上的传输⽅法。
Bulk- Only 传输规范仅仅使⽤Bulk 端点传送数据/命令/状态,CBI 传输规范则使⽤Control/Bulk/Interrupt 三种类型的端点进⾏数据/命令/状态传送。
后两个⼦规范则定义了存储介质的操作命令。
ATA 命令规范⽤于硬盘,UFI 命令规范是针对USB 移动存储。
Microsoft Windows 中提供对Mass Storage 协议的⽀持,因此USB 移动设备只需要遵循 Mass Storage 协议来组织数据和处理命令,即可实现与PC 机交换数据。
读取u盘数据原理
读取U盘数据的原理是通过计算机的USB接口与U盘建立连接,并发送指令从U盘中读取数据。
具体而言,以下是主要
步骤:
1. 电压检测:计算机通过USB接口向U盘发送特定电压进行
电压检测,以确定U盘是否连接并供电正常。
2. 设备识别:计算机发送设备识别指令给U盘,U盘通过回
应数据表明其身份信息,例如制造商、容量等。
3. 文件系统解析:计算机根据U盘的身份信息确定其文件系
统类型(如FAT32、NTFS等),并解析文件系统结构以访问
U盘中的文件和文件夹。
4. 数据传输:计算机发送读取数据的指令,并指定所需数据的位置和长度。
U盘根据指令读取对应数据块,并通过USB接
口传输给计算机。
5. 数据处理:计算机接收到U盘传输的数据后,将其缓存到
内存中,并根据需要进行处理,如复制、删除、编辑等。
6. 文件系统更新:在对U盘进行写操作后(如复制文件到U 盘),计算机将更新U盘的文件系统元数据(如文件目录表、文件分配表等),以确保文件系统的一致性和正确性。
7. 断开连接:当不再需要读取U盘数据时,计算机发送断开
连接的指令,使U盘与计算机断开连接。
需要注意的是,每个U盘厂商可能会在数据传输过程中采用不同的具体实现方式,但以上步骤涵盖了U盘数据读取的基本原理。
u盘被写保护无法格式化的解决方法说实话u盘被写保护无法格式化这件事,我一开始也是瞎摸索。
我自己就碰到过好多次u盘出这种问题,可把我折腾坏了。
我首先想到的方法就是看看u盘是不是有物理的写保护开关。
就像是我们家门有个锁,这个开关就是控制u盘能不能写入或者格式化的锁。
有些u盘侧面会有这么一个小开关,只能在开锁的状态下才能进行格式化,我就曾经有一次死活找不到问题,最后发现是这个开关没开,感觉自己特别傻。
要是没有物理开关,那我就开始检查是不是电脑的设置问题。
我试过在设备管理器里弄。
这设备管理器就像是一个大管家,管着电脑很多设备。
找到磁盘驱动器里对应的u盘,右键点属性,在策略这一块儿,有什么更好的性能、快速删除之类的选项。
我就换了换这些选项,想着也许这样能让它能格式化,但是这种方法并不总是有效,好多时候都失败了,就感觉像是在黑夜里乱抓,找不到方向。
我还在网上搜了很多方法。
有一个方法是用命令提示符。
这命令提示符就像是和电脑说话的一个神秘通道。
要输入像format这种指令来格式化u盘,前面还要加上u盘的盘符之类的,不过这个也不容易成功。
我输入的过程中有时候还打错字,结果根本没反应,又得重新来。
后来我还试过下载一些专门修复u盘的小软件,有一个叫啥名字我都有点记不清了。
下载的时候还得注意别下到带病毒的假软件。
这个软件的界面也很复杂,就像进入了一个迷宫一样。
不过有的时候它还真有效果,它会显示修复过程中的一些信息,像是在打扫房间一样,把u盘里的一些错误修复好,然后就能格式化了。
但是这种软件也不是每次都行,也有可能把u盘弄得更糟糕,所以还是得谨慎点用。
不确定的时候,我都会先备份u盘里的文件。
反正啊,这u盘被写保护不能格式化这个事儿真的很麻烦,只能一点点去试各种方法。
主要包含4个C文件和和三个头文件CH376INC.H 与CH376HFT.C为u盘主文件SPI_SW.C 为对硬件操作文件单片机与SPI接口FILE_SYS.H与FILE_SYS.C 为ch376接口函数分别列出CH376INC.H文件:/* C Define for CH376 *//* Website: *//* Email: tech@ *//* Author: W.ch .10 *//* V1.0 for CH376 */#ifndef __CH376INC_H__#define __CH376INC_H__#ifdef __cplusplusextern "C" {#endif/****************************************************** ***************************************************** *********** *//* 常用类型和常量定义 */#ifndef TRUE#define TRUE 1#define FALSE 0#endif#ifndef NULL#define NULL 0#endif#ifndef UINT8typedef unsigned char UINT8;#endif#ifndef UINT16typedef unsigned short UINT16;#endif#ifndef UINT32typedef unsigned long UINT32;#endif#ifndef PUINT8typedef unsigned char *PUINT8;#endif#ifndef PUINT16typedef unsigned short *PUINT16;#endif#ifndef PUINT32typedef unsigned long *PUINT32;#endif#ifndef UINT8Vtypedef unsigned char volatile UINT8V;#endif#ifndef PUINT8Vtypedef unsigned char volatile *PUINT8V;#endif/****************************************************** ***************************************************** *********** *//* 硬件特性 */#define CH376_DAT_BLOCK_LEN 0x40/* USB单个数据包, 数据块的最大长度, 默认缓冲区的长度 *//****************************************************** ***************************************************** *********** *//* 命令代码 *//* 部分命令兼容CH375芯片, 但是输入数据或者输出数据的可能局部不同) *//* 一个命令操作顺序包含:一个命令码(对于串口方式,命令码之前还需要两个同步码),若干个输入数据(可以是0个),产生中断通知或者若干个输出数据(可以是0个), 二选一, 有中断通知则一定没有输出数据, 有输出数据则一定不产生中断仅CMD01_WR_REQ_DATA命令例外, 顺序包含: 一个命令码, 一个输出数据, 若干个输入数据命令码起名规则: CMDxy_NAME其中的x和y都是数字, x说明最少输入数据个数(字节数), y说明最少输出数据个数(字节数), y如果是H则说明产生中断通知,有些命令能够实现0到多个字节的数据块读写, 数据块本身的字节数未包含在上述x或y之内 *//* 本文件默认会同时提供与CH375芯片命令码兼容的命令码格式(即去掉x和y之后), 如果不需要, 那么可以定义_NO_CH375_COMPATIBLE_禁止 *//****************************************************** ***************************************************** *********** *//* 主要命令(手册一), 常用 */#define CMD01_GET_IC_VER 0x01/* 获取芯片及固件版本 *//* 输出: 版本号( 位7为0, 位6为1, 位5~位0为版本号 ) *//* CH376返回版本号的值为041H即版本号为01H */#define CMD21_SET_BAUDRATE 0x02/* 串口方式: 设置串口通讯波特率(上电或者复位后的默认波特率为9600bps,由D4/D5/D6引脚选择) *//* 输入: 波特率分频系数, 波特率分频常数 *//* 输出: 操作状态( CMD_RET_SUCCESS或CMD_RET_ABORT, 其它值说明操作未完成 ) */#define CMD00_ENTER_SLEEP 0x03/* 进入睡眠状态 */#define CMD00_RESET_ALL 0x05/* 执行硬件复位 */#define CMD11_CHECK_EXIST 0x06/* 测试通讯接口和工作状态 *//* 输入: 任意数据 *//* 输出: 输入数据的按位取反 */#define CMD20_CHK_SUSPEND 0x0B/* 设备方式: 设置检查USB总线挂起状态的方式 *//* 输入: 数据10H, 检查方式 *//* 00H=不检查USB挂起, 04H=以50mS为间隔检查USB挂起, 05H=以10mS为间隔检查USB挂起*/#define CMD20_SET_SDO_INT 0x0B/* SPI接口方式: 设置SPI的SDO引脚的中断方式 *//* 输入: 数据16H, 中断方式 *//* 10H=禁止SDO引脚用于中断输出,在SCS片选无效时三态输出禁止, 90H=SDO引脚在SCS片选无效时兼做中断请求输出 */#define CMD14_GET_FILE_SIZE 0x0C/* 主机文件模式: 获取当前文件长度 *//* 输入: 数据68H *//* 输出: 当前文件长度(总长度32位,低字节在前) */ #define CMD50_SET_FILE_SIZE 0x0D/* 主机文件模式: 设置当前文件长度 *//* 输入: 数据68H, 当前文件长度(总长度32位,低字节在前) */#define CMD11_SET_USB_MODE 0x15/* 设置USB工作模式 *//* 输入: 模式代码 *//* 00H=未启用的设备方式, 01H=已启用的设备方式并且使用外部固件模式(串口不支持), 02H=已启用的设备方式并且使用内置固件模式 *//* 03H=SD卡主机模式/未启用的主机模式,用于管理和存取SD卡中的文件 *//* 04H=未启用的主机方式, 05H=已启用的主机方式, 06H=已启用的主机方式并且自动产生SOF包, 07H=已启用的主机方式并且复位USB总线 *//* 输出: 操作状态( CMD_RET_SUCCESS或CMD_RET_ABORT, 其它值说明操作未完成 ) */#define CMD01_GET_STATUS 0x22/* 获取中断状态并取消中断请求 *//* 输出: 中断状态 */#define CMD00_UNLOCK_USB 0x23/* 设备方式: 释放当前USB缓冲区 */#define CMD01_RD_USB_DATA0 0x27/* 从当前USB中断的端点缓冲区或者主机端点的接收缓冲区读取数据块 *//* 输出: 长度, 数据流 */#define CMD01_RD_USB_DATA 0x28/* 设备方式: 从当前USB中断的端点缓冲区读取数据块, 并释放缓冲区, 相当于CMD01_RD_USB_DATA0 + CMD00_UNLOCK_USB *//* 输出: 长度, 数据流 */#define CMD10_WR_USB_DATA7 0x2B/* 设备方式: 向USB端点2的发送缓冲区写入数据块 *//* 输入: 长度, 数据流 */#define CMD10_WR_HOST_DATA 0x2C/* 向USB主机端点的发送缓冲区写入数据块*//* 输入: 长度, 数据流 */#define CMD01_WR_REQ_DATA 0x2D/* 向内部指定缓冲区写入请求的数据块 *//* 输出: 长度 *//* 输入: 数据流 */#define CMD20_WR_OFS_DATA 0x2E/* 向内部缓冲区指定偏移地址写入数据块 *//* 输入: 偏移, 长度, 数据流 */#define CMD10_SET_FILE_NAME 0x2F/* 主机文件模式: 设置将要操作的文件的文件名*//* 输入: 以0结束的字符串(含结束符0在内长度不超过14个字符) *//****************************************************** ***************************************************** *********** *//* 主要命令(手册一), 常用, 以下命令总是在操作结束时产生中断通知, 并且总是没有输出数据 */#define CMD0H_DISK_CONNECT 0x30/* 主机文件模式/不支持SD卡: 检查磁盘是否连接 *//* 输出中断 */#define CMD0H_DISK_MOUNT 0x31/* 主机文件模式: 初始化磁盘并测试磁盘是否就绪 *//* 输出中断 */#define CMD0H_FILE_OPEN 0x32/* 主机文件模式: 打开文件或者目录(文件夹),或者枚举文件和目录(文件夹) *//* 输出中断 */#define CMD0H_FILE_ENUM_GO 0x33/* 主机文件模式: 继续枚举文件和目录(文件夹) *//* 输出中断 */#define CMD0H_FILE_CREATE 0x34/* 主机文件模式: 新建文件,如果文件已经存在那么先删除 *//* 输出中断 */#define CMD0H_FILE_ERASE 0x35/* 主机文件模式: 删除文件,如果已经打开则直接删除,否则对于文件会先打开再删除,子目录必须先打开 *//* 输出中断 */#define CMD1H_FILE_CLOSE 0x36/* 主机文件模式: 关闭当前已经打开的文件或者目录(文件夹) *//* 输入: 是否允许更新文件长度 *//* 00H=禁止更新长度, 01H=允许更新长度 */ /* 输出中断 */#define CMD1H_DIR_INFO_READ 0x37/* 主机文件模式: 读取文件的目录信息 *//* 输入: 指定需要读取的目录信息结构在扇区内的索引号 *//* 索引号范围为00H~0FH, 索引号0FFH则为当前已经打开的文件 *//* 输出中断 */#define CMD0H_DIR_INFO_SAVE 0x38/* 主机文件模式: 保存文件的目录信息 *//* 输出中断 */#define CMD4H_BYTE_LOCATE 0x39/* 主机文件模式: 以字节为单位移动当前文件指针 *//* 输入: 偏移字节数(总长度32位,低字节在前) *//* 输出中断 */#define CMD2H_BYTE_READ 0x3A/* 主机文件模式: 以字节为单位从当前位置读取数据块 *//* 输入: 请求读取的字节数(总长度16位,低字节在前) *//* 输出中断 */#define CMD0H_BYTE_RD_GO 0x3B/* 主机文件模式: 继续字节读 *//* 输出中断 */#define CMD2H_BYTE_WRITE 0x3C/* 主机文件模式: 以字节为单位向当前位置写入数据块 *//* 输入: 请求写入的字节数(总长度16位,低字节在前) *//* 输出中断 */#define CMD0H_BYTE_WR_GO 0x3D/* 主机文件模式: 继续字节写 *//* 输出中断 */#define CMD0H_DISK_CAPACITY 0x3E/* 主机文件模式: 查询磁盘物理容量 *//* 输出中断 */#define CMD0H_DISK_QUERY 0x3F/* 主机文件模式: 查询磁盘空间信息 *//* 输出中断 */#define CMD0H_DIR_CREATE 0x40/* 主机文件模式: 新建目录(文件夹)并打开,如果目录已经存在那么直接打开 *//* 输出中断 */#define CMD4H_SEC_LOCATE 0x4A/* 主机文件模式: 以扇区为单位移动当前文件指针 *//* 输入: 偏移扇区数(总长度32位,低字节在前) *//* 输出中断 */#define CMD1H_SEC_READ 0x4B/* 主机文件模式/不支持SD卡: 以扇区为单位从当前位置读取数据块 *//* 输入: 请求读取的扇区数 *//* 输出中断 */#define CMD1H_SEC_WRITE 0x4C/* 主机文件模式/不支持SD卡: 以扇区为单位在当前位置写入数据块 *//* 输入: 请求写入的扇区数 *//* 输出中断 */#define CMD0H_DISK_BOC_CMD 0x50/* 主机方式/不支持SD卡: 对USB存储器执行BulkOnly传输协议的命令 *//* 输出中断 */#define CMD5H_DISK_READ 0x54/* 主机方式/不支持SD卡: 从USB存储器读物理扇区 *//* 输入: LBA物理扇区地址(总长度32位, 低字节在前), 扇区数(01H~FFH) *//* 输出中断 */#define CMD0H_DISK_RD_GO 0x55/* 主机方式/不支持SD卡: 继续执行USB存储器的物理扇区读操作 *//* 输出中断 */#define CMD5H_DISK_WRITE 0x56/* 主机方式/不支持SD卡: 向USB存储器写物理扇区 *//* 输入: LBA物理扇区地址(总长度32位, 低字节在前), 扇区数(01H~FFH) *//* 输出中断 */#define CMD0H_DISK_WR_GO 0x57/* 主机方式/不支持SD卡: 继续执行USB存储器的物理扇区写操作 *//* 输出中断 *//****************************************************** ***************************************************** *********** *//* 辅助命令(手册二), 不太常用或者是为了与CH375和CH372兼容 */#define CMD10_SET_USB_SPEED 0x04/* 设置USB总线速度, 在每次CMD11_SET_USB_MODE设置USB工作模式时会自动恢复到12Mbps全速 *//* 输入: 总线速度代码 *//* 00H=12Mbps全速FullSpeed(默认值), 01H=1.5Mbps(仅修改频率), 02H=1.5Mbps低速LowSpeed */#define CMD11_GET_DEV_RATE 0x0A/* 主机方式: 获取当前连接的USB设备的数据速率类型 *//* 输入: 数据07H *//* 输出: 数据速率类型 *//* 位4为1则是1.5Mbps低速USB设备, 否则是12Mbps全速USB设备 */#define CMD11_GET_TOGGLE 0x0A/* 获取OUT事务的同步状态 *//* 输入: 数据1AH *//* 输出: 同步状态 *//* 位4为1则OUT事务同步, 否则OUT事务不同步 */#define CMD11_READ_VAR8 0x0A/* 读取指定的8位文件系统变量 *//* 输入: 变量地址 *//* 输出: 数据 *//*#define CMD11_GET_MAX_LUN =CMD11_READ_VAR8( VAR_UDISK_LUN )*/ /* 主机方式: 获取USB存储器最大和当前逻辑单元号 */ #define CMD20_SET_RETRY 0x0B/* 主机方式: 设置USB事务操作的重试次数 *//* 输入: 数据25H, 重试次数 *//* 位7为0则收到NAK时不重试, 位7为1位6为0则收到NAK时无限重试, 位7为1位6为1则收到NAK时最多重试3秒, 位5~位0为超时后的重试次数 */#define CMD20_WRITE_VAR8 0x0B/* 设置指定的8位文件系统变量 *//* 输入: 变量地址, 数据 *//*#define CMD20_SET_DISK_LUN =CMD20_WRITE_VAR8( VAR_UDISK_LUN )*/ /* 主机方式: 设置USB存储器的当前逻辑单元号 */#define CMD14_READ_VAR32 0x0C/* 读取指定的32位文件系统变量 *//* 输入: 变量地址 *//* 输出: 数据(总长度32位,低字节在前) */#define CMD50_WRITE_VAR32 0x0D/* 设置指定的32位文件系统变量 *//* 输入: 变量地址, 数据(总长度32位,低字节在前) */ #define CMD01_DELAY_100US 0x0F/* 延时100uS(串口不支持) *//* 输出: 延时期间输出0,延时结束输出非0 */#define CMD40_SET_USB_ID 0x12 /* 设备方式: 设置USB厂商VID和产品PID *//* 输入: 厂商ID低字节, 厂商ID高字节, 产品ID低字节, 产品ID高字节 */#define CMD10_SET_USB_ADDR 0x13/* 设置USB地址 *//* 输入: 地址值 */#define CMD01_TEST_CONNECT 0x16/* 主机方式/不支持SD卡: 检查USB设备连接状态 *//* 输出: 状态( USB_INT_CONNECT或USB_INT_DISCONNECT或USB_INT_USB_READY, 其它值说明操作未完成 ) */#define CMD00_ABORT_NAK 0x17/* 主机方式: 放弃当前NAK的重试 */#define CMD10_SET_ENDP2 0x18/* 设备方式(串口不支持): 设置USB端点0的接收器 *//* 输入: 工作方式 *//* 位7为1则位6为同步触发位, 否则同步触发位不变 *//* 位3~位0为事务响应方式: 0000就绪ACK, 1110正忙NAK, 1111错误STALL */#define CMD10_SET_ENDP3 0x19/* 设备方式(串口不支持): 设置USB端点0的发送器 *//* 输入: 工作方式 *//* 位7为1则位6为同步触发位, 否则同步触发位不变 *//* 位3~位0为事务响应方式: 0000~1000就绪ACK, 1110正忙NAK, 1111错误STALL */#define CMD10_SET_ENDP4 0x1A/* 设备方式(串口不支持): 设置USB端点1的接收器 *//* 输入: 工作方式 *//* 位7为1则位6为同步触发位, 否则同步触发位不变 *//* 位3~位0为事务响应方式: 0000就绪ACK, 1110正忙NAK, 1111错误STALL */#define CMD10_SET_ENDP5 0x1B/* 设备方式(串口不支持): 设置USB端点1的发送器 *//* 输入: 工作方式 *//* 位7为1则位6为同步触发位, 否则同步触发位不变 *//* 位3~位0为事务响应方式: 0000~1000就绪ACK, 1110正忙NAK, 1111错误STALL */#define CMD10_SET_ENDP6 0x1C/* 设置USB端点2/主机端点的接收器 *//* 输入: 工作方式 *//* 位7为1则位6为同步触发位, 否则同步触发位不变 *//* 位3~位0为事务响应方式: 0000就绪ACK, 1101就绪但不返回ACK, 1110正忙NAK, 1111错误STALL */#define CMD10_SET_ENDP7 0x1D/* 设置USB端点2/主机端点的发送器 *//* 输入: 工作方式 *//* 位7为1则位6为同步触发位, 否则同步触发位不变 *//* 位3~位0为事务响应方式: 0000就绪ACK, 1101就绪但无须应答, 1110正忙NAK, 1111错误STALL */#define CMD00_DIRTY_BUFFER 0x25/* 主机文件模式: 清除内部的磁盘和文件缓冲区*/#define CMD10_WR_USB_DATA3 0x29/* 设备方式(串口不支持): 向USB端点0的发送缓冲区写入数据块 *//* 输入: 长度, 数据流 */#define CMD10_WR_USB_DATA5 0x2A/* 设备方式(串口不支持): 向USB端点1的发送缓冲区写入数据块 *//* 输入: 长度, 数据流 *//****************************************************** ***************************************************** *********** *//* 辅助命令(手册二), 不太常用或者是为了与CH375和CH372兼容, 以下命令总是在操作结束时产生中断通知, 并且总是没有输出数据 */#define CMD1H_CLR_STALL 0x41/* 主机方式: 控制传输清除端点错误 *//* 输入: 端点号 *//* 输出中断 */#define CMD1H_SET_ADDRESS 0x45/* 主机方式: 控制传输设置USB地址 *//* 输入: 地址值 *//* 输出中断 */#define CMD1H_GET_DESCR 0x46/* 主机方式: 控制传输获取描述符 *//* 输入: 描述符类型 *//* 输出中断 */#define CMD1H_SET_CONFIG 0x49/* 主机方式: 控制传输设置USB配置 *//* 输入: 配置值 *//* 输出中断 */#define CMD0H_AUTO_SETUP 0x4D/* 主机方式/不支持SD卡: 自动配置USB设备*//* 输出中断 */#define CMD2H_ISSUE_TKN_X 0x4E/* 主机方式: 发出同步令牌, 执行事务, 该命令可代替CMD10_SET_ENDP6/CMD10_SET_ENDP7 + CMD1H_ISSUE_TOKEN *//* 输入: 同步标志, 事务属性 *//* 同步标志的位7为主机端点IN的同步触发位, 位6为主机端点OUT的同步触发位, 位5~位0必须为0 *//* 事务属性的低4位是令牌, 高4位是端点号*//* 输出中断 */#define CMD1H_ISSUE_TOKEN 0x4F/* 主机方式: 发出令牌, 执行事务, 建议用CMD2H_ISSUE_TKN_X命令 *//* 输入: 事务属性 *//* 低4位是令牌, 高4位是端点号 *//* 输出中断 */#define CMD0H_DISK_INIT 0x51/* 主机方式/不支持SD卡: 初始化USB存储器*//* 输出中断 */#define CMD0H_DISK_RESET 0x52/* 主机方式/不支持SD卡: 控制传输复位USB 存储器 *//* 输出中断 */#define CMD0H_DISK_SIZE 0x53/* 主机方式/不支持SD卡: 获取USB存储器的容量 *//* 输出中断 */#define CMD0H_DISK_INQUIRY 0x58/* 主机方式/不支持SD卡: 查询USB存储器特性 *//* 输出中断 */#define CMD0H_DISK_READY 0x59/* 主机方式/不支持SD卡: 检查USB存储器就绪 *//* 输出中断 */#define CMD0H_DISK_R_SENSE 0x5A/* 主机方式/不支持SD卡: 检查USB存储器错误 *//* 输出中断 */#define CMD0H_RD_DISK_SEC 0x5B/* 主机文件模式: 从磁盘读取一个扇区的数据到内部缓冲区 *//* 输出中断 */#define CMD0H_WR_DISK_SEC 0x5C/* 主机文件模式: 将内部缓冲区的一个扇区的数据写入磁盘 *//* 输出中断 */#define CMD0H_DISK_MAX_LUN 0x5D/* 主机方式: 控制传输获取USB存储器最大逻辑单元号 *//* 输出中断 *//****************************************************** ***************************************************** *********** *//* 以下定义只是为了兼容CH375的INCLUDE文件中的命令名称格式 */#ifndef _NO_CH375_COMPATIBLE_ #define CMD_GET_IC_VERCMD01_GET_IC_VER#define CMD_SET_BAUDRATECMD21_SET_BAUDRATE#define CMD_ENTER_SLEEPCMD00_ENTER_SLEEP#define CMD_RESET_ALLCMD00_RESET_ALL#define CMD_CHECK_EXISTCMD11_CHECK_EXIST#define CMD_CHK_SUSPENDCMD20_CHK_SUSPEND#define CMD_SET_SDO_INTCMD20_SET_SDO_INT#define CMD_GET_FILE_SIZECMD14_GET_FILE_SIZE#define CMD_SET_FILE_SIZECMD50_SET_FILE_SIZE#define CMD_SET_USB_MODE CMD11_SET_USB_MODE#define CMD_GET_STATUSCMD01_GET_STATUS#define CMD_UNLOCK_USB CMD00_UNLOCK_USB#define CMD_RD_USB_DATA0 CMD01_RD_USB_DATA0#define CMD_RD_USB_DATA CMD01_RD_USB_DATA#define CMD_WR_USB_DATA7 CMD10_WR_USB_DATA7#define CMD_WR_HOST_DATA CMD10_WR_HOST_DATA#define CMD_WR_REQ_DATA CMD01_WR_REQ_DATA#define CMD_WR_OFS_DATA CMD20_WR_OFS_DATA#define CMD_SET_FILE_NAME CMD10_SET_FILE_NAME#define CMD_DISK_CONNECT CMD0H_DISK_CONNECT#define CMD_DISK_MOUNT CMD0H_DISK_MOUNT#define CMD_FILE_OPENCMD0H_FILE_OPEN#define CMD_FILE_ENUM_GO CMD0H_FILE_ENUM_GO#define CMD_FILE_CREATE CMD0H_FILE_CREATE#define CMD_FILE_ERASECMD0H_FILE_ERASE#define CMD_FILE_CLOSECMD1H_FILE_CLOSE#define CMD_DIR_INFO_READ CMD1H_DIR_INFO_READ #define CMD_DIR_INFO_SAVE CMD0H_DIR_INFO_SAVE#define CMD_BYTE_LOCATE CMD4H_BYTE_LOCATE#define CMD_BYTE_READCMD2H_BYTE_READ#define CMD_BYTE_RD_GO CMD0H_BYTE_RD_GO#define CMD_BYTE_WRITE CMD2H_BYTE_WRITE#define CMD_BYTE_WR_GO CMD0H_BYTE_WR_GO#define CMD_DISK_CAPACITY CMD0H_DISK_CAPACITY #define CMD_DISK_QUERY CMD0H_DISK_QUERY#define CMD_DIR_CREATE CMD0H_DIR_CREATE#define CMD_SEC_LOCATE CMD4H_SEC_LOCATE#define CMD_SEC_READCMD1H_SEC_READ#define CMD_SEC_WRITECMD1H_SEC_WRITE#define CMD_DISK_BOC_CMD CMD0H_DISK_BOC_CMD #define CMD_DISK_READCMD5H_DISK_READ#define CMD_DISK_RD_GO CMD0H_DISK_RD_GO#define CMD_DISK_WRITECMD5H_DISK_WRITE#define CMD_DISK_WR_GO CMD0H_DISK_WR_GO#define CMD_SET_USB_SPEED CMD10_SET_USB_SPEED#define CMD_GET_DEV_RATE CMD11_GET_DEV_RATE#define CMD_GET_TOGGLE CMD11_GET_TOGGLE#define CMD_READ_VAR8CMD11_READ_VAR8#define CMD_SET_RETRYCMD20_SET_RETRY#define CMD_WRITE_VAR8 CMD20_WRITE_VAR8#define CMD_READ_VAR32 CMD14_READ_VAR32#define CMD_WRITE_VAR32 CMD50_WRITE_VAR32#define CMD_DELAY_100US CMD01_DELAY_100US#define CMD_SET_USB_IDCMD40_SET_USB_ID#define CMD_SET_USB_ADDR CMD10_SET_USB_ADDR#define CMD_TEST_CONNECT CMD01_TEST_CONNECT#define CMD_ABORT_NAKCMD00_ABORT_NAK#define CMD_SET_ENDP2CMD10_SET_ENDP2#define CMD_SET_ENDP3CMD10_SET_ENDP3#define CMD_SET_ENDP4CMD10_SET_ENDP4#define CMD_SET_ENDP5CMD10_SET_ENDP5#define CMD_SET_ENDP6CMD10_SET_ENDP6#define CMD_SET_ENDP7CMD10_SET_ENDP7#define CMD_DIRTY_BUFFER CMD00_DIRTY_BUFFER#define CMD_WR_USB_DATA3 CMD10_WR_USB_DATA3#define CMD_WR_USB_DATA5 CMD10_WR_USB_DATA5#define CMD_CLR_STALLCMD1H_CLR_STALL#define CMD_SET_ADDRESS CMD1H_SET_ADDRESS#define CMD_GET_DESCRCMD1H_GET_DESCR#define CMD_SET_CONFIG CMD1H_SET_CONFIG#define CMD_AUTO_SETUP CMD0H_AUTO_SETUP#define CMD_ISSUE_TKN_X CMD2H_ISSUE_TKN_X#define CMD_ISSUE_TOKEN CMD1H_ISSUE_TOKEN#define CMD_DISK_INITCMD0H_DISK_INIT#define CMD_DISK_RESET CMD0H_DISK_RESET#define CMD_DISK_SIZECMD0H_DISK_SIZE#define CMD_DISK_INQUIRY CMD0H_DISK_INQUIRY #define CMD_DISK_READY CMD0H_DISK_READY#define CMD_DISK_R_SENSE CMD0H_DISK_R_SENSE#define CMD_RD_DISK_SECCMD0H_RD_DISK_SEC#define CMD_WR_DISK_SECCMD0H_WR_DISK_SEC#define CMD_DISK_MAX_LUNCMD0H_DISK_MAX_LUN#endif/****************************************************** ***************************************************** *********** *//* 并口方式, 状态端口(读命令端口)的位定义 */#ifndef PARA_STATE_INTB#define PARA_STATE_INTB 0x80/* 并口方式状态端口的位7: 中断标志,低有效*/#define PARA_STATE_BUSY 0x10/* 并口方式状态端口的位4: 忙标志,高有效 */ #endif/****************************************************** ***************************************************** *********** *//* 串口方式, 操作命令前的引导同步码 */#ifndef SER_CMD_TIMEOUT#define SER_CMD_TIMEOUT 32/* 串口命令超时时间, 单位为mS, 同步码之间及同步码与命令码之间的间隔应该尽量短, 超时后的处理方式为丢弃 */#define SER_SYNC_CODE1 0x57/* 启动操作的第1个串口同步码 */#define SER_SYNC_CODE2 0xAB/* 启动操作的第2个串口同步码 */#endif/****************************************************** ***************************************************** *********** *//* 操作状态 */#ifndef CMD_RET_SUCCESS#define CMD_RET_SUCCESS 0x51/* 命令操作成功 */#define CMD_RET_ABORT 0x5F/* 命令操作失败 */#endif/****************************************************** ***************************************************** *********** *//* USB中断状态 */#ifndef USB_INT_EP0_SETUP/* 以下状态代码为特殊事件中断, 如果通过CMD20_CHK_SUSPEND启用USB总线挂起检查, 那么必须处理USB总线挂起和睡眠唤醒的中断状态 */ #define USB_INT_USB_SUSPEND 0x05/* USB总线挂起事件 */#define USB_INT_WAKE_UP 0x06/* 从睡眠中被唤醒事件 *//* 以下状态代码0XH用于USB设备方式 *//* 内置固件模式下只需要处理: USB_INT_EP1_OUT,USB_INT_EP1_IN, USB_INT_EP2_OUT, USB_INT_EP2_IN *//* 位7位4为0000 *//* 位3位2指示当前事务, 00=OUT, 10=IN, 11=SETUP *//* 位1位0指示当前端点, 00=端点0, 01=端点1, 10=端点2, 11=USB总线复位 */#define USB_INT_EP0_SETUP 0x0C/* USB端点0的SETUP */#define USB_INT_EP0_OUT 0x00/* USB端点0的OUT */#define USB_INT_EP0_IN 0x08/* USB端点0的IN */#define USB_INT_EP1_OUT 0x01/* USB端点1的OUT */#define USB_INT_EP1_IN 0x09/* USB端点1的IN */#define USB_INT_EP2_OUT 0x02/* USB端点2的OUT */#define USB_INT_EP2_IN 0x0A/* USB端点2的IN *//* USB_INT_BUS_RESET 0x0000XX11B */ /* USB总线复位 */#define USB_INT_BUS_RESET1 0x03/* USB总线复位 */#define USB_INT_BUS_RESET2 0x07/* USB总线复位 */#define USB_INT_BUS_RESET3 0x0B/* USB总线复位 */#define USB_INT_BUS_RESET4 0x0F/* USB总线复位 */#endif/* 以下状态代码2XH3XH用于USB主机方式的通讯失败代码 *//* 位7位6为00 *//* 位5为1 *//* 位4指示当前接收的数据包是否同步 *//* 位3位0指示导致通讯失败时USB设备的应答: 0010=ACK, 1010=NAK, 1110=STALL, 0011=DATA0, 1011=DATA1, XX00=超时 *//* USB_INT_RET_ACK 0x001X0010B *//* 错误:对于IN事务返回ACK *//* USB_INT_RET_NAK 0x001X1010B *//* 错误:返回NAK *//* USB_INT_RET_STALL 0x001X1110B */ /* 错误:返回STALL *//* USB_INT_RET_DATA0 0x001X0011B */ /* 错误:对于OUT/SETUP事务返回DATA0 *//* USB_INT_RET_DATA1 0x001X1011B */ /* 错误:对于OUT/SETUP事务返回DATA1 *//* USB_INT_RET_TOUT 0x001XXX00B *//* 错误:返回超时 *//* USB_INT_RET_TOGX 0x0010X011B *//* 错误:对于IN事务返回数据不同步 *//* USB_INT_RET_PID 0x001XXXXXB *//* 错误:未定义 *//* 以下状态代码1XH用于USB主机方式的操作状态代码 */#ifndef USB_INT_SUCCESS#define USB_INT_SUCCESS 0x14/* USB事务或者传输操作成功 */#define USB_INT_CONNECT 0x15/* 检测到USB设备连接事件, 可能是新连接或者断开后重新连接 */#define USB_INT_DISCONNECT 0x16/* 检测到USB设备断开事件 */#define USB_INT_BUF_OVER 0x17/* USB传输的数据有误或者数据太多缓冲区溢出 */#define USB_INT_USB_READY 0x18/* USB设备已经被初始化(已经分配USB地址) */#define USB_INT_DISK_READ 0x1D/* USB存储器请求数据读出 */#define USB_INT_DISK_WRITE 0x1E/* USB存储器请求数据写入 */#define USB_INT_DISK_ERR 0x1F /* USB存储器操作失败 */#endif/* 以下状态代码用于主机文件模式下的文件系统错误码 */#ifndef ERR_DISK_DISCON#define ERR_DISK_DISCON 0x82/* 磁盘尚未连接,可能磁盘已经断开 */#define ERR_LARGE_SECTOR 0x84/* 磁盘的扇区太大,只支持每扇区512字节 */ #define ERR_TYPE_ERROR 0x92/* 磁盘分区类型不支持,只支持FAT12/FAT16/BigDOS/FAT32,需要由磁盘管理工具重新分区 */#define ERR_BPB_ERROR 0xA1/* 磁盘尚未格式化,或者参数错误,需要由WINDOWS采用默认参数重新格式化 */#define ERR_DISK_FULL 0xB1/* 磁盘文件太满,剩余空间太少或者已经没有,需要磁盘整理 */#define ERR_FDT_OVER 0xB2/* 目录(文件夹)内文件太多,没有空闲的目录项,FAT12/FAT16根目录下的文件数应该少于512个,需要磁盘整理 */#define ERR_FILE_CLOSE 0xB4/* 文件已经关闭,如果需要使用,应该重新打开文件 */#define ERR_OPEN_DIR 0x41/* 指定路径的目录(文件夹)被打开 */#define ERR_MISS_FILE 0x42 /* 指定路径的文件没有找到,可能是文件名称错误 */#define ERR_FOUND_NAME 0x43/* 搜索到相匹配的文件名,或者是要求打开目录(文件夹)而实际结果却打开了文件 *//* 以下文件系统错误码用于文件系统子程序 */#define ERR_MISS_DIR 0xB3 /* 指定路径的某个子目录(文件夹)没有找到,可能是目录名称错误 */#define ERR_LONG_BUF_OVER 0x48/* 长文件缓冲区溢出 */#define ERR_LONG_NAME_ERR 0x49/* 短文件名没有对应的长文件名或者长文件名错误 */#define ERR_NAME_EXIST 0x4A/* 同名的短文件已经存在,建议重新生成另外一个短文件名 */#endif/****************************************************** ***************************************************** *********** *//* 以下状态代码用于主机文件模式下的磁盘及文件状态, VAR_DISK_STATUS */#ifndef DEF_DISK_UNKNOWN#define DEF_DISK_UNKNOWN 0x00/* 尚未初始化,未知状态 */#define DEF_DISK_DISCONN 0x01/* 磁盘没有连接或者已经断开 */#define DEF_DISK_CONNECT 0x02/* 磁盘已经连接,但是尚未初始化或者无法识别该磁盘 */#define DEF_DISK_MOUNTED 0x03/* 磁盘已经初始化成功,但是尚未分析文件系统或者文件系统不支持 */#define DEF_DISK_READY 0x10/* 已经分析磁盘的文件系统并且能够支持 */ #define DEF_DISK_OPEN_ROOT 0x12/* 已经打开根目录,使用后必须关闭,注意FAT12/FAT16根目录是固定长度 */#define DEF_DISK_OPEN_DIR 0x13/* 已经打开子目录(文件夹) */#define DEF_DISK_OPEN_FILE 0x14/* 已经打开文件 */#endif/****************************************************** ***************************************************** *********** *//* 文件系统常用定义 */#ifndef DEF_SECTOR_SIZE#define DEF_SECTOR_SIZE 512/* U盘或者SD卡默认的物理扇区的大小*/#endif#ifndef DEF_WILDCARD_CHAR#define DEF_WILDCARD_CHAR 0x2A /* 路径名的通配符 '*' */#define DEF_SEPAR_CHAR1 0x5C /* 路径名的分隔符 '\' */#define DEF_SEPAR_CHAR2 0x2F /* 路径名的分隔符 '/' */#define DEF_FILE_YEAR/* 默认文件日期: */#define DEF_FILE_MONTH 1/* 默认文件日期: 1月 */#define DEF_FILE_DATE 1/* 默认文件日期: 1日 */#endif#ifndef ATTR_DIRECTORY/* FAT数据区中文件目录信息 */typedef struct _FAT_DIR_INFO {UINT8 DIR_Name[11];/* 00H,文件名,共11字节,不足处填空格 */UINT8 DIR_Attr;/* 0BH,文件属性,参考后面的说明 */UINT8 DIR_NTRes;/* 0CH */UINT8 DIR_CrtTimeTenth;/* 0DH,文件创建的时间,以0.1秒单位计数 */UINT16 DIR_CrtTime;/* 0EH,文件创建的时间 */UINT16 DIR_CrtDate;/* 10H,文件创建的日期 */UINT16 DIR_LstAccDate;/* 12H,最近一次存取操作的日期 */UINT16 DIR_FstClusHI;/* 14H */UINT16 DIR_WrtTime;/* 16H,文件修改时间,参考前面的宏MAKE_FILE_TIME */UINT16 DIR_WrtDate;/* 18H,文件修改日期,参考前面的宏MAKE_FILE_DATE */UINT16 DIR_FstClusLO;/* 1AH */UINT32 DIR_FileSize;/* 1CH,文件长度 */} FAT_DIR_INFO, *P_FAT_DIR_INFO;/* 20H *//* 文件属性 */#define ATTR_READ_ONLY 0x01 /* 文件为只读属性 */#define ATTR_HIDDEN 0x02 /* 文件为隐含属性 */#define ATTR_SYSTEM 0x04 /* 文件为系统属性 */#define ATTR_VOLUME_ID 0x08 /* 卷标 */#define ATTR_DIRECTORY 0x10 /* 子目录(文件夹) */#define ATTR_ARCHIVE 0x20 /* 文件为存档属性 */#define ATTR_LONG_NAME( ATTR_READ_ONLY | ATTR_HIDDEN |ATTR_SYSTEM | ATTR_VOLUME_ID ) /* 长文件名属性 */#define ATTR_LONG_NAME_MASK( ATTR_LONG_NAME | ATTR_DIRECTORY | ATTR_ARCHIVE )/* 文件属性 UINT8 *//* bit0 bit1 bit2 bit3 bit4 bit5 bit6 bit7 *//* 只隐系卷目存未定义 *//* 读藏统标录档 *//* 文件时间 UINT16 *//* Time = (Hour<<11) + (Minute<<5) + (Second>>1) */#define MAKE_FILE_TIME( h, m, s ) ( (h<<11) + (m<<5) + (s>>1) ) /* 生成指定时分秒的文件时间数据 *//* 文件日期 UINT16 *//* Date = ((Year1980)<<9) + (Month<<5) + Day */#define MAKE_FILE_DATE( y, m, d ) ( ((y1980)<<9) + (m<<5) + d ) /* 生成指定年月日的文件日期数据*/#define LONE_NAME_MAX_CHAR (255*2) /* 长文件名最多字符数/字节数 */#define LONG_NAME_PER_DIR (13*2)/* 长文件名在每个文件目录信息结构中的字符数/字节数 */#endif/****************************************************** ***************************************************** *********** *//* SCSI命令和数据输入输出结构 */#ifndef SPC_CMD_INQUIRY/* SCSI命令码 */#define SPC_CMD_INQUIRY 0x12#define SPC_CMD_READ_CAPACITY 0x25#define SPC_CMD_READ10 0x28#define SPC_CMD_WRITE10 0x2A#define SPC_CMD_TEST_READY 0x00#define SPC_CMD_REQUEST_SENSE 0x03#define SPC_CMD_MODESENSE6 0x1A。
项目一任务4 使用命令行方式进行系统管理(2)一.实验目的熟练掌握各种文件基本操作命令systemctl、fdisk、df、find、ln、mount、用户管理、组管理、权限管理等。
二.实验环境Vmware12下的操作系统CentOS7.0。
三.实验步骤1.系统服务的启动关闭与查看1)使用systemctl命令查看防火墙状态,请写出命令systemctl firewalld.service2).使用systemctl命令关闭防火墙,请写出命令,并再次查看防火墙状态是否关闭systemctl stop firewalld.servicesystemctl status firewalld.service3)使用systemctl命令启动apache服务,并在centOS里用浏览器查看是否已经启动systemctl start apache.service2.系统的退出与重启命令,请完成如下操作,写出命令1)用户退出系统在shell提示符下,输入“exit”命令2)用户重启系统systemctl reboot3)用户关闭系统systemctl poweroff3.请写出查看磁盘分区情况命令#fdisk -l4.查看磁盘挂载情况,请写出命令#df5.查看/root目录下所有文件所占空间,请写出命令#du –sh /root6.使用mount命令将光盘挂载到/mnt/cdrom,请写出命令,再尝试卸载并写出命令#mount –t iso9660 /dev/cdrom /mnt/cdrom#umount /mnt/cdrom7.使用mount命令将u盘挂载到/mnt/usb,请写出命令,再尝试卸载并写出命令#mount -t vfat /dev/sdb1 /mnt/usb#umount /mnt/usb8.使用find命令查找文件1)在/var目录下查找所有文件其所有者是root用户的文件。
请写出命令。
find /var/root -name2)查找/usr/bin目录下所有大小超过一百万byte的文件,并用长格式显示(如ls –l 的显示结果)。
通过命令启动u盘的方法
要通过命令启动U盘,你可以按照以下步骤操作:
1. 首先,插入U盘到计算机的USB接口上。
2. 打开命令提示符。
在Windows系统中,你可以按下Win键+R,输入"cmd"并按下回车键来打开命令提示符。
3. 在命令提示符窗口中,输入以下命令来列出计算机当前连接
的所有磁盘:
diskpart.
list disk.
4. 找到你的U盘所对应的磁盘号。
通常U盘的存储容量会比较小,你可以根据磁盘大小来确定它的磁盘号。
5. 选择U盘所对应的磁盘。
假设U盘对应的磁盘号为1,那么
输入以下命令:
select disk 1。
6. 清除U盘的分区表。
输入以下命令: clean.
7. 创建一个新的主分区。
输入以下命令: create partition primary.
8. 格式化U盘。
输入以下命令:
format fs=fat32 quick.
9. 设置U盘为活动分区。
输入以下命令: active.
10. 退出diskpart。
输入以下命令:
exit.
完成以上步骤后,你的U盘就已经通过命令启动准备好了。
记得在使用diskpart命令时要小心谨慎,确保选择正确的磁盘,以免造成数据丢失。
希望这些步骤能帮助到你。
U盘量产错误代码说明U盘量产错误代码说明U盘量产是现在很多U盘用户热衷去做的一件事,因为量产一来也能做系统安装盘,二来还能将系统安装盘和文件存储盘分开,各自独立。
不过量产时也会出现错误,我们现在就来看看这些错误代码是什么。
0x5002 "SCSI STARTSTOPUNIT COMMAND ERROR",0x5003 "VENDOR GETCONFIG COMMAND ERROR",0x5004 "NO FLASH OR UNSUPPORTED ERROR",0x5005 "READ_FLASHID_ERROR",0x5006 "CHIP SIZE LARGER THAN FIRST FLASH ERROR",0x5007 "CAN NOT FIND MATCHED FLASH ERROR",0x5008 "INVALID FLASH MIXED ERROR",0x5009 "FIND FLASHINFO FUNCTION ERROR",0x500A "SET PARAMETER ERROR",0x500B "GET SIB ERROR",0x500C "ADVANCED SEARCH DRIVE LETTER ERROR",0x500D "QC TEST COPYFILE ERROR",0x500E "QC TEST FILEOPEN ERROR",0x500F "QC TEST COMPARE ERROR",0x5010 "QC TEST DELETEFILE ERROR",0x5011 "NO ENOUGH GOOD BLOCK",0x5012 "BUILD XBBT ON FLASH ERROR",0x5013 "GET XBBT ERROR",0x5014 "BUFFER MEMORY ALLOC ERROR",0x5015 "BLOCK0 IS BAD BLOCK ERROR",0x5016 "VENDOR ERASE FLASH CONMMAND ERROR",0x5017 "FILL SIB STRUCT ERROR",0x5018 "BUILD SIB ERROR",0x5019 "VENDOR READ/WRITE MEMORY COMMAND ERROR",0x501A "VENDOR SOFT RESET COMMAND ERROR",0x501B "NO SIB ERROR",0x501C "CHS VALUE ERROR",0x501D "FDISK ERROR",0x501E "FORMAT ERROR",0x501F "FDISK FORAMT ERROR",0x5020 "ISO FILEOPEN ERROR",0x5021 "ISO FILEREAD ERROR",0x5022 "ISO FILEWRITE ERROR",0x5023 "COPY ISO ERROR",0x5024 "MODIFY ELEMENT ATTRIBUTE ERROR",0x5025 "SET VOLUME LABEL ERROR",0x5026 "WRITE PROTECT ERROR, PLEASE TURN-OFF WRITE PROTECT OF FLASH",0x5027 "WRITE PROTECT SWITCH ERROR, PLEASE TURN-OFF WRITE PROTECT",0x5028 "ACQUIRE DEVICE HANDLE ERROR",0x5029 "USER ABORT",0x502A "NO PRODUCTION ERROR",0x502B "CONTROLLER NOT SUPPORT AGAND TYPE FLASH", 0x502C "CONTROLLER NOT SUPPORT AGAND DUAL CHANNEL MODE",0x502D "LUN SIZE SETTING VALUE CAN'T GREATER THAN UDISK SIZE",0x502E "BUILD ZT ERROR",0x502F "SERIAL NUMBER ERROR",0x5030 "LUN ONE SIZE VALUE ERROR",0x5031 "THE ELEMENT ONE OF LUN ONE SIZE VALUEERROR",0x5032 "THE ELEMENT ONE OF LUN TWO SIZE VALUE ERROR",0x5033 "THE SERIAL NUMBER LENGTH INVALID",0x5034 "THE ELEMENT SIZE IS LARGER THAN THE LUN SIZE", 0x5035 "THERE ARE NOT ENOUGH SPACE ON THE DISK",0x5036 "VNDR ENTER VMODE ERROR",0x5037 "VNDR SET BUS WIDTH ERROR",0x5038 "READ FW PKG FILE ERROR",0x5039 "VNDR ROMTORAM ERROR",0x503A "BUILD FW BLOCK ERROR",0x503B "BUILD CIT1 ERROR",0x503C "BUILD CIT2 ERROR",0x503D "VNDR EXIT VMODE ERROR",0x503E "VNDR COMMAND CD ERROR",0x503F "UNKNOW CARD TYPE OR CARD TYPE SELECT ERROR",0x5040 "SET PARA ERROR",0x5041 "TEST UNIT READY ERROR",0x5042 "THE CAPACITY OF BUILD ZT IS ZERO",0x5043 "WRITE MKB ERROR",0x5044 "NOT FIND MATCH PKG ERROR",0x5045 "COPY FILE ERROR",0x5046 "VENDOR WRITE SECTOR ERROR",0x5047 "VENDOR READ SECTOR ERROR",0x5048 "VENDOR COMMAND 13 ERROR",0x5049 "CONTROLLER TEST ERROR",0x504A "FLASH OPTIMIZATION SETTING ERROR",0x504B "MAPTABLE_FILECONVERT_ERROR",0x504C "VERCODE DECODE ERROR",0x504D "FIXED CAPACITY VALUE ERROR",0x504E "READ WRITE TEST ERROR",0x504F "GET CONFIG ERROR",0x5050 "QC TEST GET CAPACITY ERROR",0x5051 "MARK-SCAN FAIL",0x5052 "COPY FILES TO PRIVATE-AREA ERROR",0x5053 "VENDOR FLASHGETSTATUS COMMAND ERROR",0x5054 "COPY DIRECTORY DATA FAIL",0x5055 "ISO FILENAME ERROR" 0x5002 “的SCSI startstopunit命令错误” ,0x5003 “卖方getconfig命令错误” ,0x5004 “没有闪光或不支持的错误” ,0x5005 “ read_flashid_error ” ,0x5006 “芯片尺寸大于第一Flash错误” ,0x5007 “无法找到匹配的Flash错误” ,0x5008 “无效的闪存混合错误” ,0x5009 “找到flashinfo功能的错误” ,0x500a “设置参数错误” ,0x500b “同胞错误” ,0x500c “高级搜索的驱动器号错误” ,0x500d “的QC测试copyfile错误” ,0x500e “的QC测试的FileOpen错误” ,0x500f “御用大律师的测试比较错误” ,0x5010 “的QC测试file错误” ,0x5011 “没有足够的好座” ,0x5012 “建设xbbt对Flash错误” ,0x5013 “ xbbt错误” ,0x5014 “缓冲记忆体alloc错误” ,0x5015 “ block0是坏块错误” ,0x5016 “卖方擦除闪存conmmand错误” ,0x5017 “填补同胞结构错误” ,0x5018 “建设同胞错误” ,0x5019 “供应商的读取/写入内存指令错误” ,0x501a “供应商软重置命令错误” ,0x501b “没有调查项目库错误” ,0x501c “的CHS值误差” ,0x501d “ FDISK的错误” ,0x501e “格式错误” ,0x501f “的Fdisk foramt错误” ,0x5020 “国际标准化组织的FileOpen错误” ,0x5021 “的ISO fileread错误” ,0x5022 “的ISO filewrite错误” ,0x5023 “复制的ISO错误” ,0x5024 “修改元素属性的错误” ,0x5025 “设置卷标错误” ,0x5026 “写入保护错误,请把小康写入保护的Flash ” ,0x5027 “写入保护开关错误,请把小康写入保护” ,0x5028 “取得装置处理错误” ,0x5029 “用户中止” ,0x502a “没有生产错误” ,0x502b “控制器不支持agand型闪光” ,0x502c “控制器不支持agand双通道模式” ,0x502d “伦大小设置值不能大于udisk大小” ,0x502e “建设锡ZT错误” ,0x502f “序号错误” ,0x5030 “伦一大小值误差” ,0x5031 “的元素之一,伦一大小值误差” ,0x5032 “的元素之一,伦2大小值误差” ,0x5033 “的序号,长度无效” ,0x5034 “元素的大小是大于伦大小” ,0x5035 :“有没有足够的空间,在磁盘上” ,0x5036 “ vndr进入vmode错误” ,0x5037 “ vndr设置总线宽度的错误” ,0x5038 “阅读购物pkg文件错误” ,0x5039 “ vndr romtoram错误” ,0x503a “建设又一城座错误” ,0x503b “建设cit1错误” ,0x503c “建设cit2错误” ,0x503d “ vndr退出vmode错误” ,0x503e “ vndr指挥的CD错误” ,0x503f “不明的信用卡类型或信用卡类型选择错误” ,0x5040 “设置段错误” ,0x5041 “测试单元就绪错误” ,0x5042 “的'能力,建设锡ZT是零” ,0x5043 “写mkb错误” ,0x5044 “找不到匹配pkg错误” ,0x5045 “复制文件错误” ,0x5046 “卖方收件部门的错误” ,0x5047 “卖方阅读部门的错误” ,0x5048 “卖方指挥13错误” ,0x5049 “控制器测试错误” ,0x504a “闪光的优化设置错误” ,0x504b “ maptable_fileconvert_error ” ,0x504c “ vercode解码错误” ,0x504d “固定的能力值误差” ,0x504e “读写测试错误” ,0x504f “配置错误” ,0x5050 “的QC测试获得的能力的错误” ,0x5051 “马克-扫描失败” ,0x5052 “档案复制到私营面积误差” ,0x5053 “卖方flashgetstatus命令错误” ,0x5054 “复制目录数据失败” ,0x5055 “的ISO文件名错误”U盘量产时出现的错误代码还是挺多的,毕竟U盘量产也是一件挺复杂的事情。
Linux Red Hat小红帽如何使用U盘的方法Linux Red Hat小红帽如何使用U盘的方法Linux Linux Red Hat小红帽使用U盘的方法,看看U盘是那个设备,然后mount -t vfat /dev/查到的磁盘/你的某个目录一不像Windows一样,接上新硬件后可以自动识别,在Linux下无法自动识别新硬件的,需要手动去识别。
USB移动存储设备通常被识别为sda1,具体可以通过fdisk -l 命令查询。
在使用U盘前,我们先要为外挂点新建一个子目录,一般外挂点的子目录都是建立在/mnt里面的,我们也建在那里,当然也可以建在/目录下,名字可以自己定,我们就取名为usb,终端下的命令如下:/mnt/usb然后我们就可以接上我的U盘了,然后在终端下输入命令并击Enter键即可:/dev/sda1 /mnt/usb在Windows下当我们用完U盘后,在我们取下U盘前我们先要删除,同样在Linux 下我们也要删除挂起点,方法是:/dev/sda1 /mnt/usb 或umount /dev/sda1如果不把U盘给umount掉,那样很容易造成数据的丢失。
二把你的优盘插上去,打开系统终端,先看看有没有认出来#lsusb如果认出来了,你会看到usb什么的设备的接着进入mnt这个目录#cd /mnt新建一个目录,比如:usbdisk#mkdir usbdisk在运行命令#mount -t vfat -o iocharset=cp936 /dev/sda1 /mnt/usbdiak(这个是在一行里的哦,-t 和-o是两个参数,sda1是你的优盘盘符) 这样在进入/mnt/usbdisk这个目录里去看看有没有东西要卸载的话#umount /dev/sda1就可以了三基本是不用配置.和windows系统下一样使用.所不同的是在linux下需要挂载一下.在这里我们先建立一个目录,用来将U盘挂载到该目录下:mkdir /mnt/usbHat linux9 GNOME桌面环境下怎样用U盘方案一:不像Windows一样,接上新硬件后可以自动识别,在Linux下无法自动识别新硬件的,需要手动去识别。
一、FANUC 加工中心U盘CF卡机床数据线三种方法
传程序
1.四种通道:在MDI模式----OFFSET—设定---I/O通道
09600
1:电脑连线(19200)
4 :CF卡
17:U盘
2. CF卡和U盘传程序:
在EDIT编辑模式----PROG---列表---操作---设备----M卡(或U盘)---- F输入---键入要选择程序的排列顺
序号(如:4)----点F设定----键入新建的程序名(如:5020)
----点O设定---执行----切换到程序自动模式----看到了调
入的程序;
3. CF卡在线加工传输(程序较大,超过512KB):
在RMD连线模式--- PROG---列表---操作-------设备
---- M卡----键入要选择程序的顺序号(如:2)---按DNC---
按绿色循环启动键---点PROG查看运行的程序
4. 机床数据线在线传输加工:
在RMT连线模式----先按绿色启动键预接受(注意此时的进给倍率和快速移动倍率都调到0%,预防突然动作)---用
CIMCOEDIT.EXE传输软件---打开程序---机床通讯---发送---
然后逐渐调大进给倍率。
1.注意:在RMT连线模式也可以启用单段加工功能,在按到M6T1
换刀指令时要多按几次绿色启动键才能循环过去,因为换刀
是一个复合指令,它内部其实有好几段程序。
2.注意:在CIMCOEDIT.EXE软件---DNC设置---设置S----波特率
19200(不同的机
床波特率不一样,要设置的和机床的一样)。
U盘由于种种不同的原因而格式化失败,提示如“windows无法完成格式化”之类。
但是这并不就是意味着U盘就此要废弃了,试一试如下的方法(不过对于不长玩电脑的人来说是有点难度哈):方法一:1。
点开始-运行-输入cmd-format f: /fs: fat32 (这里f:是指U盘所在盘符)2。
打开控制面板-管理工具-计算机管理-磁盘管理-找到U盘的所在的盘符--点右键--删除磁盘分区(这个选项是灰色的,没办法选取)-创建新的磁盘分区--按照提示完成磁盘分区后就可以格式化U盘了。
方法二:下载Usboot工具(这个工具很经典的一般ghost系统盘都带有网上一搜索一大片),用HDD 方式进行格式化,其中需要按照提示拔下再插入优盘,最后完成启动盘制作。
这个时候可以双击盘符,提示是否需要格式化。
然后点“是”,终于看到久违的格式化窗口,选择FAT格式化,一切顺利,完成后,优盘重新可以正常使用,容量没有损失。
有同样问题的朋友可以试试这个方式,当然,优盘无法格式化的情况千差万别,只要不是硬伤,总有解决的方式。
希望对大家有用。
方法三:向厂家要一个与U盘芯片相应的量产工具软件(或者网上搜索下载),用量产工具软件格式化拆开U盘,发现芯片上写着“CBM2091”,于是在网上检索“CBM2091”,找到CBM2090CBM2091量产工具,运行后能检测到U盘,在闪盘设置里头扫描方式设置为低级扫描,且勾选需要格式化、需要老化,确定后选全部开始,于是开始扫描、格式化U盘,看着U盘不停的闪,知道修复是没问题了。
方法四:(据说很多人用这种方法成功了)找一个大小合适的GHOST文件,(或者自己现做一个.gho的文件),大小合造是多大,一二十M呗,然后用GHOST强行向U盘恢复数据,就是ghost里的“disk”–>“from image”。
附:U盘量产工具及相关知识详解第一篇有关量产工具1. 什么是量产工具,有何作用量是指批量的意思,即量产工具可以一次性生产出很多U盘,只要你的USB孔足够。
威纶通宏指令备份至u盘近年来,威纶通宏指令备份已成为企业管理中不可或缺的一环。
为了确保数据安全和业务连续性,许多企业开始采取备份措施。
其中,备份至U盘已成为备份方式的首选。
本文将探讨威纶通宏指令备份至U盘的好处以及如何进行备份。
一、威纶通宏指令备份的重要性在现今信息时代,企业的数据承载着宝贵的信息。
一旦数据丢失或损坏,将会给企业带来巨大的损失。
尤其是威纶通宏指令,其中包含了企业的核心指令和业务逻辑,一旦丢失可能导致业务停滞甚至瘫痪。
因此,备份威纶通宏指令变得尤为重要。
备份至U盘是一种相对简单而有效的备份方式。
U盘便携、易于存储和操作,并且具有较大的存储容量。
将威纶通宏指令备份至U盘,既可以确保数据安全,又可以方便地进行管理和存储。
二、备份至U盘的好处1. 数据安全保障:通过将威纶通宏指令备份至U盘,可以有效避免因计算机系统故障、病毒攻击或误操作等原因导致的数据丢失。
一旦主机故障,只需将备份的U盘连接到其他设备上,便可快速恢复数据,保证业务的连续性。
2. 灵活携带和存储:U盘小巧轻便,便于携带。
无论是办公室、会议室还是出差途中,都可以方便地将U盘带在身边,随时备份或还原数据。
此外,U盘具有较大的存储容量,可以存放大量的威纶通宏指令备份,满足企业长期使用的需求。
3. 简单易用:备份至U盘操作简单,无需复杂的技术操作。
只需将U盘插入计算机,选择指令备份的目录,然后将威纶通宏指令文件复制到U盘上即可。
同样,恢复数据也只需将U盘中的备份文件复制到被损坏或丢失数据的设备上即可。
三、威纶通宏指令备份至U盘的备份步骤1. 插入U盘:将备份用的U盘插入计算机的USB接口。
确保U盘的正常连接。
2. 选择备份目录:打开威纶通宏指令所在的目录,选择需要备份的指令文件。
3. 复制指令文件:右键点击选择的指令文件,选择“复制”或使用快捷键“Ctrl+C”。
4. 粘贴至U盘:在U盘的目录中,右键点击空白处,选择“粘贴”或使用快捷键“Ctrl+V”将指令文件复制到U盘中。
U盘所有文件夹被隐藏解决方法U盘所有文件夹被隐藏解决方法1、用组合键“windows + r”或者是:开始——>运行,调出运行面板!输入“cmd”方法一:注:“windows”键就是“Ctrl”和“Alt”中间的那个键2、我的U盘的盘符是“h:”,你的是什么就输入什么,记住加冒号哦!然后点回车,就到了.3、输入如下的命令“attrib h:\你的文件夹名 -s -h -r -a”,再点回车找回来一个了!呵呵,真够麻烦的!另一个同样的方法:输入“attribh:\sdf -s -h -r-a”结果就出来了.这种方法得一个个去做,还要记做文件夹名,有点麻烦。
U盘文件夹被隐藏的解决方法【图文】2017-03-22 20:03 | #2楼症状:表现为将u盘所有根目录下文件夹隐藏,也就是把u盘上的文件夹的属性变为只读和隐藏,同时生成一个和文件名字相同的可执行(.exe)文件,(sola病毒),文件的大小为1.44m,一般的杀毒软件清除不了,在网上下载了恶意隐藏文件专杀也无能为力。
病毒的图标就是文件夹图标,如果没有显示扩展名的话很容易反复感染病毒。
并且由于病毒的机理,会在硬盘上产生大量的病毒副本,并把病毒加入系统启动项目,即使副本被清理掉了,恢复隐藏的文件夹也是一件不容易的事情。
处理:首先要结束病毒进程,建议下载360安全卫士(下载地址),装好并打开360安全卫士--高级--启系统进程状态,找到“3122ae.exe”的进程(此病毒以文件夹作为图标),也有以expl0rer.exe为名字的病毒,注意expl0rer.exe里是0(零)不是o(欧),还有以xp****.exe打头的病毒,先记住存放路径,然后结束进程并根据存放路径删除病毒文件,也可以用360安全卫士的“高级工具集”中的“文件粉碎机”粉碎病毒文件。
其次:打开360安全卫士--启动状态,把"3122ae.exe”等等的启动项目禁用。
使用Windows操作系统的人有时会遇到这样的错误信息:“0X????????指令引用的0x00000000内存,该内存不能written”,然后应用程序被关闭。
如果去请教一些“高手”,得到的回答往往是“Windows就是这样不稳定”之类的义愤和不屑。
其实,这个错误并不一定是Windows不稳定造成的。
本文就来简单分析这种错误的常见原因。
一、应用程序没有检查内存分配失败程序需要一块内存用以保存数据时,就需要调用操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。
这就是“动态内存分配”,内存地址也就是编程中的“指针”。
内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。
当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的指针,而是系统向应用程序发出的一个通知,告知出现了错误。
作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。
若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用指针,继续在之后的运行中使用这块内存。
真正的0地址内存区保存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。
在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即死机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。
这时候,就会出现上述的“写内存”错误,并指出被引用的内存地址为“0x00000000”。
内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。
因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统文件之后。
二、应用程序由于自身BUG引用了不正常的内存指针在使用动态分配的应用程序中,有时会有这样的情况出现:程序试图读写一块“应该可用”的内存,但不知为什么,这个预料中可用的指针已经失效了。
有可能是“忘记了”向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而“没有留意”等等。
注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图“违法”的程序唯一的下场就是被操作终止运行,回收全部资源。
计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。
无效指针不一定总是0,因此错误提示中的内存地址也不一定为“0x00000000”,而是其他随机数字。
如果系统经常有所提到的错误提示,下面的建议可能会有帮助:1.查看系统中是否有木马或病毒。
这类程序为了控制系统往往不负责任地修改系统,从而导致操作系统异常。
平常应加强信息安全意识,对来源不明的可执行程序绝不好奇。
2.更新操作系统,让操作系统的安装程序重新拷贝正确版本的系统文件、修正系统参数。
有时候操作系统本身也会有BUG,要注意安装官方发行的升级程序。
3.试用新版本的应用程序。
问题运行某些程序的时候,有时会出现内存错误的提示,然后该程序就关闭。
“0x????????”指令引用的“0x????????”内存。
该内存不能为“read”。
“0x????????”指令引用的“0x????????”内存,该内存不能为“written”。
一般出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。
故障分析硬件方面:一般来说,内存出现问题的可能性并不大,主要方面是:内存条坏了、内存质量有问题,还有就是2个不同牌子不同容量的内存混插,也比较容易出现不兼容的情况,同时还要注意散热问题,特别是超频后。
你可以使用MemTest 这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。
假如是双内存,而且是不同品牌的内存条混插或者买了二手内存时,出现这个问题,这时,就要检查是不是内存出问题了或者和其它硬件不兼容。
软件方面:先简单说说原理:内存有个存放数据的地方叫缓冲区,当程序把数据放在其一位置时,因为没有足够空间,就会发生溢出现象。
举个例子:一个桶子只能将一斤的水,当放入两斤的水进入时,就会溢出来。
而系统则是在屏幕上表现出来。
这个问题,经常出现在windows2000和XP系统上,Windows 2000/XP对硬件的要求是很苛刻的,一旦遇到资源死锁、溢出或者类似Windows 98里的非法操作,系统为保持稳定,就会出现上述情况。
另外也可能是硬件设备之间的兼容性不好造成的。
几个例子例一:打开IE浏览器或者没过几分钟就会出现"0x70dcf39f"指令引用的"0x00000000"内存。
该内存不能为“read”。
要终止程序,请单击“确定”的信息框,单击“确定”后,又出现“发生内部错误,您正在使用的其中一个窗口即将关闭”的信息框,关闭该提示信息后,IE浏览器也被关闭。
解决方法:修复或升级IE浏览器,同时打上补丁。
看过其中一个修复方法是,Win2000自升级,也就是Win2000升级到Win2000,其实这种方法也就是把系统还原到系统初始的状态下。
比如你的IE升级到了6.0,自升级后,会被IE5.0代替。
例二:在windows xp下双击光盘里面的“AutoRun.exe”文件,显示“0x77f745cc”指令引用的“0x00000078”内存。
该内存不能为“written”,要终止程序,请单击“确定”,而在Windows 98里运行却正常。
解决方法:这可能是系统的兼容性问题,winXP的系统,右键“AutoRun.exe”文件,属性,兼容性,把“用兼容模式运行这个程序”项选择上,并选择“Windows 98/Me”。
win2000如果打了SP的补丁后,只要开始,运行,输入:regsvr32 c:\winnt\apppatch\slayerui.dll。
右键,属性,也会出现兼容性的选项。
例三:RealOne Gold关闭时出现错误,以前一直使用正常,最近却在每次关闭时出现“0xffffffff”指令引用的“0xffffffff”内存。
该内存不能为“read” 的提示。
解决方法:当使用的输入法为微软拼音输入法2003,并且隐藏语言栏时(不隐藏时没问题)关闭RealOne就会出现这个问题,因此在关闭RealOne之前可以显示语言栏或者将任意其他输入法作为当前输入法来解决这个问题。
例四:我的豪杰超级解霸自从上网后就不能播放了,每次都提示“Ox060692f6”(每次变化)指令引用的“Oxff000011”内存不能为“read”,终止程序请按确定。
解决方法:试试重装豪杰超级解霸,如果重装后还会,到官方网站下载相应版本的补丁试试。
还不行,只好换就用别的播放器试试了。
例五:双击一个游戏的快捷方式,“Ox77f5cdO”指令引用“Oxffffffff”内存,该内存不能为“read” ,并且提示Client.dat程序错误。
解决方法:重装显卡的最新驱动程序,然后下载并且安装DirectX9.0。
例六:一个朋友发信息过来,我的电脑便出现了错误信息:“0*772b548f”指令引用的“0*00303033”内存,该内存不能为“written”,然后QQ自动下线,而再打开QQ,发现了他发过来的十几条的信息。
解决方法:这是对方利用QQ的BUG,发送特殊的代码,做QQ出错,只要打上补丁或升级到最新版本,就没事了。
例七:我的笔记本电脑用的XP系统,有时关闭网页时会弹出tbrowser.exe遇到问题需要关闭,然后有弹出0x03e7c738指令引用的0x03e7c738内存,该内存不能为read,请问是怎么回事?解决方法:先查杀一下病毒,另外如果你安装了浏览增强之类的软件,请卸掉。
例八:从桌面或开始菜单中打开任何一个程序, 出现错误提示:"0x........"指令引用的"0x00000000"内存,该内存不能为"read"。
省略号代表可变值。
而从运行中打开程序没问题。
解决方法:运行regedit进入注册表, 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellEx ecuteHooks 下,应该只有一个正常的键值"{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 将其他的删除(默认键值当然不要删除)。
例九:我三个月前配了台机子。
系统比较不稳定,三个月内已经重装过多次系统,四五天前刚装过系统,可是经常随机地出现Explorer-应用程序错误,“0x4a01259d“指令引用的“0x00000000"内存。
该内存不能为“read"。
要终止程序,请单击“确定“。
要调试程序,请单击“取消”。
如果点确定,windows桌面就不见了。
这种问题在之前的系统也出现过,不知道是不是硬件的问题?解决方法:内存的兼容性问题!遇到这类问题,用户可以自行打开机器把内存的位置调动一下,看问题是否可以解决,如果问题依旧,可与你的朋友调换内存使用。
通过上面的几个例子,可以看到,出现故障的原因有好多种,下面列出已经提到和有可能发生的原因,方便查阅。
问题产生原因原因--解决方法内存条坏了--更换内存条双内存不兼容--使用同品牌的内存或只用一条内存内存质量问题--更换内存条散热问题--加强机箱内部的散热内存和主板没插好或和其它硬件不兼容等--重插内存或换个插糟硬盘有问题--更换硬盘驱动问题--重装驱动。
如果是新系统,要先安装主板驱动软件损坏--重装软件软件有BUG--打补丁或用最新的版本。
软件和系统不兼容--给软件打上补丁或者试试系统的兼容模式软件和软件之间有冲突--如果最近安装了什么新软件,卸载了试试软件要使用到其它相关的软件有问题--重装相关软件。
比如播放某一格式的文件时出错,可能是这个文件的解码器有问题病毒问题--杀毒杀毒软件与系统或软件冲突--由于杀毒软件是进入底层监控系统的,可能与一些软件冲突,卸载了试试系统本身有问题--有时候操作系统本身也会有BUG,要注意安装官方发行的升级程序,像SP的补丁,最好要打上。
如果还不行重装系统或更换其它版本的系统了。
此问题已经引起我们的重视并有解决方案,请去我们的官方网站了解及下载相关程序。
运行某些程序的时候,有时会出现内存错误的提示,然后该程序就关闭。
“0x????????”指令引用的“0x????????”内存。