CuiMing_73
驱动牛犊
驱动牛犊
  • 注册日期2002-06-27
  • 最后登录2004-12-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:4033回复:27

请sunkai关注:Ez_USB/AN2131QC/IOCTL_EZUSB_VENDOR_OR_CLASS_REQUEST问题

楼主#
更多 发布于:2002-07-19 09:52
看过您的帖子,一定做过EZ_USB 2131Q
而且有liuxf66的推荐,一定得帮个忙!

最新喜欢:

jinghuirenjinghu...
cuiming73@263.net 10101973@sina.com
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-07-19 19:18
请问是什么问题?我用ezusb时没有遇到的问题都跟驱动无关,cypress提供的驱动很好用,EZ-USB General Purpose Driver Spec.pdf解释了这个驱动的接口.
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-19 19:36
看了一下你前几次的帖子,弄不清你的意思,有EZ-USB Contents and Tutorial.pdf在做测试时可以参考.
CuiMing_73
驱动牛犊
驱动牛犊
  • 注册日期2002-06-27
  • 最后登录2004-12-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-07-20 16:25
Ez_USB/AN2131QC/IOCTL_EZUSB_VENDOR_OR_CLASS_REQUEST问题
这个问题是关于EzMr.exe的
Ez_USB开发板有EZ-USB Control Panel的源代码就是EzMr.exe
这想必您是知道的了
其中在下载HEX文件时
 下面的记录提示有VENDOR REQUEST的调用
 跟踪程序执行发现
 bRequest=0xA3
传输的结构是
typedef struct _VENDOR_OR_CLASS_REQUEST_CONTROL
{
UCHAR direction;
UCHAR requestType;
UCHAR recepient;
UCHAR requestTypeReservedBits;
UCHAR request;
USHORT value;
USHORT index;
}VENDOR_OR_CLASS_REQUEST_CONTROL,*PVENDOR_OR_CLASS_REQUEST_CONTROL;
调用语句是:
VENDOR_OR_CLASS_REQUEST_CONTROL myRequest;
\\\\...
bResult = DeviceIoControl(hDevice,
IOCTL_EZUSB_VENDOR_OR_CLASS_REQUEST,
&myRequest,
sizeof(VENDOR_OR_CLASS_REQUEST_CONTROL),
buffer,
pTh->length,
(unsigned long *)&nBytes,
NULL);

程序EzMr.exe可以顺利的完成这条命令
而我自己编写的程序到这条命令程序停止我必须拔掉USB线
才可以使程序继续执行
我可以保证在myRequest中添加的参数是正确无误的
不知道还有什么问题我没有注意到
cuiming73@263.net 10101973@sina.com
CuiMing_73
驱动牛犊
驱动牛犊
  • 注册日期2002-06-27
  • 最后登录2004-12-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-07-20 16:26
另外您说的
EZ-USB Contents and Tutorial.pdf
在哪里可以找到,谢谢!
cuiming73@263.net 10101973@sina.com
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-07-21 00:23
到cypress去下载ezusb的开发包,里面什么都有,几乎可以万事不求人,你帖子多处说到开发板,我想你应该有了,那就好好看看里面的文档.既然开发板的ezmr能做,你完全照搬一定不会错,用debug一步步看自己漏掉了什么.时间长了我也忘得差不多,如果没有记错的话,手动下载前要做8051_HOLD,完成后要8051_RESET.
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-07-21 00:28
做手动下载的话,这个文件也没有用处,从download的消息响应函数单步跟下去试试.
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-07-22 01:55
其中在下载HEX文件时
下面的记录提示有VENDOR REQUEST的调用
---------------------------
实在没有理解你的原意,从上面猜测你想手动下载hex,翻箱倒柜总算找到一点代码,基本是从ezmr中挖出来的,但简洁得多,可以参照分析.
case IDC_ANCHOR_DOWNLOAD:
{
int numread = 0;
USHORT Offset;
  unsigned char* buffer;

   Offset = (USHORT) pInParam->dldOffset;
buffer = (unsigned char*) pInBuffer;
numread = pInParam->length;

                Do8051HOLD (pInParam);

// Open the driver  OpenDriver
if (OpenDriver (&hDevice, pcDriverName) != TRUE)
{
hDevice = NULL;
}

if (hDevice != NULL)
{
PUSB_out->hDevice = hDevice;
rc = DeviceIoControl (hDevice,
IOCTL_EZUSB_ANCHOR_DOWNLOAD,
&Offset,
sizeof(USHORT),
buffer,
numread,
(unsigned long *)&nBytes,
NULL);

CloseHandle (hDevice); // Close the handle
PUSB_out->bufferLength  = numread;

Do8051RUN (pInParam);
}

}
break;


-------------------------------------------------
BOOL Do8051HOLD (InParam* pInParam)
{  
BOOL rc=FALSE;
    int     nBytes                          = 0;
VENDOR_REQUEST_IN myRequest;
    HANDLE  hDevice                         = NULL;

char* pcDriverName = (LPTSTR)(LPCTSTR)pInParam->strpcDriverName;

// Open the driver
if (OpenDriver (&hDevice, pcDriverName) != TRUE)
{
hDevice = NULL;
}

myRequest.bRequest = 0xA0;
if(pInParam->bFX2)
myRequest.wValue = 0xE600; // using CPUCS.0 in FX2
else
myRequest.wValue = 0x7F92;
myRequest.wIndex = 0x00;
myRequest.wLength = 0x01;
myRequest.bData =1;
myRequest.direction = 0x00;

if (hDevice != NULL)
{// Perform the Get-Descriptor IOCTL

rc = DeviceIoControl (hDevice,
IOCTL_Ezusb_VENDOR_REQUEST,
&myRequest,
sizeof(VENDOR_REQUEST_IN),
NULL,
0,
(unsigned long *)&nBytes,
NULL);
if(rc)
CloseHandle (hDevice);// Close the handle
}/* if valid driver handle */
      
return    rc;
}

---------------------------------------------------
BOOL Do8051RUN (InParam* pInParam)
{
BOOL rc=FALSE;
    int     nBytes                          = 0;

VENDOR_REQUEST_IN myRequest;
    HANDLE  hDevice                         = NULL;
char* pcDriverName = (LPTSTR)(LPCTSTR)pInParam->strpcDriverName;

// Open the driver
if (OpenDriver (&hDevice, pcDriverName) != TRUE)
{
hDevice = NULL;
}

myRequest.bRequest = 0xA0;
if(pInParam->bFX2)
myRequest.wValue = 0xE600; // using CPUCS.0 in FX2
else
myRequest.wValue = 0x7F92;
myRequest.wIndex = 0x00;
myRequest.wLength = 0x01;
myRequest.bData = 0;
myRequest.direction = 0x00;

if (hDevice != NULL)
{// Perform the Get-Descriptor IOCTL
rc = DeviceIoControl (hDevice,
IOCTL_Ezusb_VENDOR_REQUEST,
&myRequest,
sizeof(VENDOR_REQUEST_IN),
NULL,
0,
(unsigned long *)&nBytes,
NULL);
if(rc)
CloseHandle (hDevice);// Close the handle
}/* if valid driver handle */
      
return    rc;
}

------------------
pInParam参数的类型是如下结构,其他参数不难理解:

struct InParam-----------类似ezmr中的CThreadInfo
{
UINT   message;
WPARAM wParam;
LPARAM lParam;
int    OpIndex;
int    m_hOpPended;
int    length;
int    pipeNum;
UINT   data;
int    interfaceNum;
int    alternateSetting;
int    packets;
int    bufCount;
int    pakPer;
DWORD  dldOffset;
DWORD  request;
DWORD  value;
DWORD  index;
int    direction;
int    bFX2;
char *   strpcDriverName;
};


[编辑 -  7/22/02 by  sunkai]
CuiMing_73
驱动牛犊
驱动牛犊
  • 注册日期2002-06-27
  • 最后登录2004-12-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-07-23 10:22
我也贴上我的代码,开发工具C++Builder
void __fastcall TIsoForm::ButtonDownloadClick(TObject *Sender)
{
    AnsiString CurrFile=ExtractFilePath(Application->ExeName)+
                        \"bulktest.hex\";
    if(!FileExists(CurrFile)){
        ShowMessage(CurrFile+\" 不存在!\");
        return;
    }

    bRun=false;
    Sleep(200);
    CloseHandle(hDevice);

    if (bOpenDriver(&hDevice,DriverName.c_str())==true){
        OutputMemo->Lines->Add(\"Opened Driver Successfully\");
    }
    else{
        OutputMemo->Lines->Add(\"Failed to Open Driver\");
        hDevice = NULL;
    }

unsigned char* pbuf = new char[MAX_FILE_SIZE];
unsigned char* pVenbuf = new char[MAX_FILE_SIZE];
AnsiString strDldFile=CurrFile.LowerCase(); // 文件名

if(strDldFile.Pos(\".hex\")){
FILE *fp = fopen(strDldFile.c_str(), \"rb\");
if(fp){
char endianConversion = 0;    // Mask for endian conversion
DWORD offset = 0;         // Offset -- set to -1 to get offset from srec or hex file

m_MemCache.pImg = &m_MemImg;
intel_in(fp, &m_MemCache, offset, endianConversion, FALSE);
fclose(fp);
for(int k=0; k<m_MemCache.nSeg; k++){
//check for high mem first; load loader first if necessary
if(m_MemCache.pSeg[k].TAddr >= 0x2000){
                    Ezusb_DownloadIntelHex(Vend_Ax);
                    break;
}
}

            ButtonRUNClick(ButtonRUN);

for(int i=0; i<m_MemCache.nSeg; i++){
if(m_MemCache.pSeg.TAddr >= 0x2000){
                    CRecalcInfo mTh;
memcpy(pVenbuf,m_MemCache.pSeg.pData,m_MemCache.pSeg.Size);
                    mTh.pBuf=pVenbuf;
                    mTh.length=m_MemCache.pSeg.Size;
                    mTh.direction=0;
                    mTh.request=0xA3;
                    mTh.value=m_MemCache.pSeg.TAddr;
                    mTh.index=0xBEEF;
                    VendRequest(&mTh);
}
//if((((CEzMrFrame*)GetParentFrame())->m_nOpsPending ) >= theApp.m_nMaxOpsPending)
// break;
}

            ButtonRUNClick(ButtonHOLD);
            ButtonRUNClick(ButtonRUN);

for(int j=0; j<m_MemCache.nSeg; j++){
if(m_MemCache.pSeg[j].TAddr < 0x2000){
                    CRecalcInfo mTh;
memcpy(pbuf,m_MemCache.pSeg[j].pData,m_MemCache.pSeg[j].Size);
                    mTh.length=m_MemCache.pSeg[j].Size;
                    mTh.dldOffset=m_MemCache.pSeg[j].TAddr;
                    mTh.pBuf=pbuf;
AnchorDownload(&mTh);
}
//if((((CEzMrFrame*)GetParentFrame())->m_nOpsPending ) >= theApp.m_nMaxOpsPending)
// break;
}
            ButtonRUNClick(ButtonRUN);
}
else OutputMemo->Lines->Add(\"Error opening Input file.\");
}
else OutputMemo->Lines->Add(\"Please select .hex to download.\");

    delete []pbuf;
    delete []pVenbuf;


    CloseHandle(hDevice);

    if (bOpenDriver(&hDevice,DriverName.c_str())==true){
        OutputMemo->Lines->Add(\"Opened Driver Successfully\");
    }
    else{
        OutputMemo->Lines->Add(\"Failed to Open Driver\");
        hDevice = NULL;
    }

    Sleep(3000);
    ButtonStopIsoClick(NULL);
}
//---------------------------------------------------------------------------
bool __fastcall TIsoForm::VendRequest(CRecalcInfo* pTh)
{

    bOpenDriver(&hDevice,DriverName.c_str());
    VENDOR_OR_CLASS_REQUEST_CONTROL myRequest;
    char *buffer;

    OutputMemo->Lines->Add(\"Vendor Request\");

    myRequest.request = (UCHAR)(pTh->request);
    myRequest.value = (USHORT)(pTh->value);
    myRequest.index = (USHORT)(pTh->index);
    myRequest.direction = pTh->direction;
    buffer = (char *)(pTh->pBuf);
    myRequest.requestType=2;
    myRequest.recepient=0;
    myRequest.requestTypeReservedBits=130;

    if(hDevice == NULL)return false;

    bResult = DeviceIoControl(hDevice,
IOCTL_EZUSB_VENDOR_OR_CLASS_REQUEST,
&myRequest,
sizeof(VENDOR_OR_CLASS_REQUEST_CONTROL),
buffer,
pTh->length,
(unsigned long *)&nBytes,
NULL);

    Sleep(500);

    CloseHandle(hDevice);

    if(!bResult){
        OutputMemo->Lines->Add(\"Vendor Request failed\");
        return false;
    }

    return true;
}
//---------------------------------------------------------------------------
void __fastcall TIsoForm::Ezusb_DownloadIntelHex(PMY_INTEL_HEX_RECORD pHexRecord)
{
    PMY_INTEL_HEX_RECORD ptr = pHexRecord;
unsigned char* pbuf = new char[MAX_FILE_SIZE];
unsigned char* ptmp = NULL;
    CRecalcInfo mTh;

    ButtonRUNClick(ButtonHOLD);
    ButtonRUNClick(ButtonRUN);
while(ptr->Type == 0){
if((ptmp != NULL)&&
  (m_dldOffset+m_DldLen == DWORD(ptr->Address)) &&
  ((m_DldLen+ptr->Length) <= MAX_EP0_XFER_SIZE)){
memcpy(ptmp, ptr->Data, ptr->Length);
m_DldLen += ptr->Length;
ptmp += ptr->Length;
}
else{
if(ptmp != NULL){
AnchorDownload(&mTh);
break;
}
ptmp = pbuf;
memcpy(ptmp, ptr->Data, ptr->Length);
            mTh.length=ptr->Length;
            mTh.dldOffset=ptr->Address;
ptmp += ptr->Length;
            mTh.pBuf=ptmp;
}
        ptr++;
}
if(ptmp!= NULL)AnchorDownload(&mTh);
    ButtonRUNClick(ButtonRUN);
    delete []pbuf;
}
//---------------------------------------------------------------------------
void __fastcall TIsoForm::ButtonRUNClick(TObject *Sender)
{
    TButton *pButton=(TButton*)Sender;

    VENDOR_REQUEST_IN myRequest;
    (pButton==ButtonRUN)?
    OutputMemo->Lines->Add(\"RUN ! 8051 Reset\"):
    OutputMemo->Lines->Add(\"HOLD! 8051 Reset\");

    myRequest.bRequest = 0xA0;
    myRequest.wValue = 0x7F92;//if is FX2 = 0xE600
    myRequest.wIndex = 0x00;
    myRequest.wLength = 0x01;
    myRequest.bData = ((pButton==ButtonRUN)?0:1);
    myRequest.direction = 0x00;

    if(hDevice == NULL)return;

    bResult = DeviceIoControl (hDevice,
IOCTL_Ezusb_VENDOR_REQUEST,
&myRequest,
sizeof(VENDOR_REQUEST_IN),
NULL,
0,
(unsigned long *)&nBytes,
NULL);

    if(!bResult)OutputMemo->Lines->Add(\"Reset Failed\");
}
//---------------------------------------------------------------------------
bool __fastcall TIsoForm::AnchorDownload(CRecalcInfo* pTh)
{
    char temp[64]  = \"\";
    ANCHOR_DOWNLOAD_CONTROL downloadControl;

    unsigned char* buffer;
    downloadControl.Offset = (USHORT) pTh->dldOffset;
    buffer = (unsigned char*)(pTh->pBuf);
    wsprintf(temp,\"Anchor Download %d bytes: addr=%x\",pTh->length, downloadControl.Offset);
    OutputMemo->Lines->Add(temp);

    if(hDevice == NULL)return false;

    if(pTh->dldOffset < 0x2000){
        bResult = DeviceIoControl (hDevice,
IOCTL_EZUSB_ANCHOR_DOWNLOAD,
&downloadControl,
sizeof(ANCHOR_DOWNLOAD_CONTROL),
buffer,
pTh->length,
(unsigned long *)&nBytes,
NULL);
        if(!bResult){
            OutputMemo->Lines->Add(\"Anchor Download failed\");
            return false;
        }
    }
    else{
        VENDOR_OR_CLASS_REQUEST_CONTROL myRequest;
        myRequest.request = (BYTE) 0xA3;
        myRequest.value = (WORD) pTh->dldOffset;
        myRequest.index = (WORD) 0x00;
        myRequest.direction = 0;
        myRequest.requestType = 2;
        myRequest.recepient = 0;

        bResult = DeviceIoControl(hDevice,
IOCTL_EZUSB_VENDOR_OR_CLASS_REQUEST,
&myRequest,
sizeof(VENDOR_OR_CLASS_REQUEST_CONTROL),
pTh->pBuf,
pTh->length,
(unsigned long *)&nBytes,
NULL);

        if(!bResult){
            OutputMemo->Lines->Add(\"Vendor Request failed\");
            return false;
        }
    }
    return true;
}
//---------------------------------------------------------------------------
#define MAXSTR 256 // Maximum length of Intel Hex file string
int __fastcall TIsoForm::intel_in(FILE * fpIn,CMemCache* pMemCache,DWORD & ioOffset,char endianFlags,bool spaces)
{
int i;
char str[MAXSTR];
unsigned byte;

int curSeg = 0; // current seg record
int recType;
unsigned addr;
int cnt;
unsigned int totalRead = 0;
int CNTFIELD ;
int ADDRFIELD;
int RECFIELD ;
int DATAFIELD;

// offsets of fields within record -- may change later due to \"spaces\" setting
CNTFIELD    = 1;
ADDRFIELD   = 3;
RECFIELD    = 7;
DATAFIELD   = 9;

if(!fpIn)return(0);

addr = 0;

pMemCache->nSeg = 0;
while(fgets(str,MAXSTR,fpIn)){
if(str[0]!=\':\'){//每一行第一个字符为:\":\"
return(-1);
}

/* get the record type */
if (spaces || str[1] == \' \'){//有空格的情况
CNTFIELD    = 1 + 1;
ADDRFIELD   = 3 + 2;
RECFIELD    = 7 + 3;
DATAFIELD   = 9 + 4;
}

sscanf(str+RECFIELD,\"%2x\",&recType);

PCHAR ptr = (PCHAR)pMemCache->pImg;
switch(recType){
case 2: /*seg record*/
sscanf(str+DATAFIELD,\"%4x\",&curSeg);
curSeg *= 0x10;
break;
case 0: /*data record*/
sscanf(str+CNTFIELD,\"%2x\",&cnt);
sscanf(str+ADDRFIELD,\"%4x\",&addr);
if(addr >= TGT_IMG_SIZE){
return(totalRead);
}
ptr += addr; // get pointer to location in image

if(pMemCache->nSeg &&
(pMemCache->pSeg[pMemCache->nSeg-1].TAddr ==
addr - pMemCache->pSeg[pMemCache->nSeg-1].Size) &&
(pMemCache->pSeg[pMemCache->nSeg-1].Size + cnt <= MAX_EP0_XFER_SIZE) )
{ // if the segment is contiguous to the last segment, and it\'s not too big yet
pMemCache->pSeg[pMemCache->nSeg-1].Size += cnt; // append to previous segment
}
else{ // start a new segment
pMemCache->pSeg[pMemCache->nSeg].TAddr = addr;
pMemCache->pSeg[pMemCache->nSeg].Size = cnt;
pMemCache->pSeg[pMemCache->nSeg].pData = ptr;
pMemCache->nSeg++;
}
for(i=0; i<cnt; i++){
sscanf(str+DATAFIELD+i*2,\"%2x\",&byte);
*(ptr + i) = byte;
totalRead++;
}
break;
case 1: /*end record*/
return(totalRead);
default:
break;
}
}
return(-1);
}
//---------------------------------------------------------------------------
bool bOpenDriver(HANDLE *phDeviceHandle, PCHAR devname)
{
    if(*phDeviceHandle)CloseHandle(*phDeviceHandle);

char completeDeviceName[64] = \"\";
strcat(completeDeviceName,\"\\\\\\\\.\\\\\");
strcat(completeDeviceName,devname);
*phDeviceHandle =CreateFile(completeDeviceName,
GENERIC_WRITE,
FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
0,
NULL);

if(*phDeviceHandle == INVALID_HANDLE_VALUE)return false;
else return true;
}
//---------------------------------------------------------------------------
我对CRecalcInfo作了如下修改:

struct CRecalcInfo
{
char* pBuf;
int length;
DWORD dldOffset;
DWORD request;
DWORD value;
DWORD index;
int direction;
int bFX2;
};
//---------------------------------------------------------------------------

下载的bulktest.hex就是开发板提供的,使用EZ-USB Control Panel可以正确下载

[编辑 -  7/23/02 by  CuiMing_73]
cuiming73@263.net 10101973@sina.com
CuiMing_73
驱动牛犊
驱动牛犊
  • 注册日期2002-06-27
  • 最后登录2004-12-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-07-23 10:28
其他函数都运行的很好
如:AnchorDownload也是下载的
只要一涉及到
VENDOR_OR_CLASS_REQUEST_CONTROL myRequest;
就不能正常运行
cuiming73@263.net 10101973@sina.com
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-07-23 11:48
先放下具体代码,你究竟要用这段代码实现什么?越说清楚越好
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-07-23 11:59
我认为没有必要研究手动下载,自己做的firmware能用ezmr下载到板子上正确运行就够了,最终还是要做上电自动下载firmware.必须要从vc转到c++builder的话,耐心一步步跟吧,我恐怕不能帮你了,出差在外,手头没有设备,想debug都不行.


[编辑 -  7/23/02 by  sunkai]
CuiMing_73
驱动牛犊
驱动牛犊
  • 注册日期2002-06-27
  • 最后登录2004-12-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-07-23 12:20
最简单我使用EZ-USB Control Pabel下载dev_io.hex
显示如下:

Toggle 8051 Reset
Anchor Download 3376 bytes: addr=0
0000 02 0C DE AA AA AA AA AA AA AA AA AA AA AA AA AA
0010 AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA
0020 AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA
0030 AA AA AA 02 0D 02 AA AA AA AA AA AA AA AA AA AA
0040 AA AA AA 02 09 00 AA AA AA AA AA 02 07 0B AA AA
0050 AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA
0060 AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA
0070 AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA
0080 90 7F E9 E0 70 03 02 02 14 14 70 03 02 02 90 24
0090 FE 70 03 02 03 07 24 FB 70 03 02 02 0E 14 70 03
00A0 02 02 08 14 70 03 02 01 FC 14 70 03 02 02 02 24
00B0 05 60 03 02 03 5B 12 0D 0A 40 03 02 03 67 90 7F
00C0 EB E0 24 FE 60 19 14 60 45 24 02 60 03 02 01 F2
00D0 E5 08 90 7F D4 F0 E5 09 90 7F D5 F0 02 03 67 90
00E0 7F EA E0 FF 12 0A 3C AA 06 A9 07 7B 01 8B 31 8A
00F0 32 89 33 EA 49 60 0D EE 90 7F D4 F0 EF 90 7F D5
0100 F0 02 03 67 90 7F B4 E0 44 01 F0 02 03 67 90 7F
0110 EA E0 FF 12 0B 4F AA 06 A9 07 7B 01 8B 31 8A 32
0120 89 33 EA 49 70 03 02 01 E8 AB 31 8B 38 8A 39 89
0130 3A 12 08 13 F5 3B 90 7F EE E0 FF E5 3B D3 9F 40
0140 03 E0 F5 3B E5 3B 70 03 02 01 DA E4 F5 37 F5 36
0150 F5 35 F5 34 E5 3B C3 94 40 50 04 AF 3B 80 02 7F
0160 40 E4 FC FD FE AB 37 AA 36 A9 35 A8 34 C3 12 08
0170 7B 50 36 E5 3A 25 37 F5 82 E5 39 35 36 F5 83 E0
0180 FF 74 00 25 37 F5 82 E4 34 7F F5 83 EF F0 E4 FA
0190 F9 F8 E5 37 24 01 F5 37 EA 35 36 F5 36 E9 35 35
01A0 F5 35 E8 35 34 F5 34 80 AB E5 3B C3 94 40 50 04
01B0 AF 3B 80 02 7F 40 90 7F B5 EF F0 E5 3B C3 94 40
01C0 50 04 AF 3B 80 02 7F 40 C3 E5 3B 9F F5 3B 90 7F
01D0 B4 E0 20 E2 03 02 01 44 80 F4 E4 90 7F B5 F0 90
01E0 7F B4 74 02 F0 02 03 67 90 7F B4 E0 44 01 F0 02
01F0 03 67 90 7F B4 E0 44 01 F0 02 03 67 12 0C D0 02
0200 03 67 12 0C F2 02 03 67 12 0C EA 02 03 67 12 0C
0210 C2 02 03 67 12 0D 0C 40 03 02 03 67 90 7F E8 E0
0220 24 7F 60 24 14 60 31 24 02 70 5B A2 00 E4 33 FF
0230 25 E0 FF A2 02 E4 33 4F 90 7F 00 F0 E4 A3 F0 90
0240 7F B5 74 02 F0 02 03 67 E4 90 7F 00 F0 A3 F0 90
0250 7F B5 74 02 F0 02 03 67 90 7F EC E0 F4 54 80 FF
0260 C4 54 0F FF E0 54 07 2F 25 E0 24 B4 F5 82 E4 34
0270 7F F5 83 E0 54 01 90 7F 00 F0 E4 A3 F0 90 7F B5
0280 74 02 F0 02 03 67 90 7F B4 E0 44 01 F0 02 03 67
0290 12 0D 0E 40 03 02 03 67 90 7F E8 E0 24 FE 60 1D
02A0 24 02 60 03 02 03 67 90 7F EA E0 B4 01 05 C2 00
02B0 02 03 67 90 7F B4 E0 44 01 F0 02 03 67 90 7F EA
02C0 E0 70 3B 90 7F EC E0 F4 54 80 FF C4 54 0F FF E0
02D0 54 07 2F 25 E0 24 B4 F5 82 E4 34 7F F5 83 E4 F0
02E0 90 7F EC E0 54 80 FF 13 13 13 54 1F FF E0 54 07
02F0 2F 90 7F D7 F0 E4 F5 38 E0 44 20 F0 80 69 90 7F
0300 B4 E0 44 01 F0 80 60 12 0D 10 50 5B 90 7F E8 E0
0310 24 FE 60 18 24 02 70 4F 90 7F EA E0 B4 01 04 D2
0320 00 80 44 90 7F B4 E0 44 01 F0 80 3B 90 7F EA E0
0330 70 20 90 7F EC E0 F4 54 80 FF C4 54 0F FF E0 54
0340 07 2F 25 E0 24 B4 F5 82 E4 34 7F F5 83 74 01 F0
0350 80 15 90 7F B4 E0 44 01 F0 80 0C 12 03 6F 50 07
0360 90 7F B4 E0 44 01 F0 90 7F B4 E0 44 02 F0 22 90
0370 7F A5 E0 54 10 FF C4 54 0F 44 50 F5 15 54 01 24
0380 FF E4 33 F5 17 90 7F E9 E0 24 5E B4 08 00 40 03
0390 02 05 AC 90 03 9A F8 28 28 73 02 04 2B 02 04 2B
03A0 02 03 FA 02 03 B2 02 03 C8 02 03 E4 02 04 03 02
03B0 04 25 90 7F 00 E5 17 F0 90 7F B5 74 01 F0 90 7F
03C0 B4 E0 44 02 F0 02 05 AC 90 7F 92 E0 FF C4 54 0F
03D0 90 7F 00 F0 90 7F B5 74 01 F0 90 7F B4 E0 44 02
03E0 F0 02 05 AC 90 7F 00 74 0F F0 90 7F B5 74 01 F0
03F0 90 7F B4 E0 44 02 F0 02 05 AC 90 7F EA E0 F5 15
0400 02 05 AC 90 7F 00 74 07 F0 90 7F B5 74 01 F0 90
0410 7F B4 E0 44 02 F0 7F E8 7E 03 12 0C AB D2 04 12
0420 09 58 02 05 AC 75 17 01 43 15 01 90 7F EA E0 75
0430 3C 00 F5 3D A3 E0 FE E4 EE 42 3C 90 7F EE E0 75
0440 3E 00 F5 3F A3 E0 FE E4 EE 42 3E 90 7F E8 E0 64
0450 C0 60 03 02 05 18 E5 3F 45 3E 70 03 02 05 AC C3
0460 E5 3F 94 40 E5 3E 94 00 50 08 85 3E 40 85 3F 41
0470 80 06 75 40 00 75 41 40 90 7F E9 E0 B4 A3 35 E4
0480 F5 42 F5 43 C3 E5 43 95 41 E5 42 95 40 50 60 E5
0490 3D 25 43 F5 82 E5 3C 35 42 F5 83 E0 FF 74 00 25
04A0 43 F5 82 E4 34 7F F5 83 EF F0 05 43 E5 43 70 D4
04B0 05 42 80 D0 E4 F5 42 F5 43 C3 E5 43 95 41 E5 42
04C0 95 40 50 18 74 00 25 43 F5 82 E4 34 7F F5 83 74
04D0 CD F0 05 43 E5 43 70 E1 05 42 80 DD AD 41 7A 7F
04E0 79 00 7E 7F 7F 00 AB 07 AF 3D AE 3C 12 09 A9 90
04F0 7F B5 E5 41 F0 25 3D F5 3D E5 40 35 3C F5 3C C3
0500 E5 3F 95 41 F5 3F E5 3E 95 40 F5 3E 90 7F B4 E0
0510 20 E2 03 02 04 56 80 F4 90 7F E8 E0 64 40 60 03
0520 02 05 AC E5 3F 45 3E 70 03 02 05 AC E4 90 7F C5
0530 F0 90 7F B4 E0 20 E3 F9 90 7F C5 E0 75 40 00 F5
0540 41 90 7F E9 E0 B4 A3 35 E4 F5 42 F5 43 C3 E5 43
0550 95 41 E5 42 95 40 50 38 74 C0 25 43 F5 82 E4 34
0560 7E F5 83 E0 FF E5 3D 25 43 F5 82 E5 3C 35 42 F5
0570 83 EF F0 05 43 E5 43 70 D4 05 42 80 D0 AD 41 7A
0580 7E 79 C0 7E 7E 7F C0 AB 07 AF 3D AE 3C 12 0A B4
0590 E5 41 25 3D F5 3D E5 40 35 3C F5 3C C3 E5 3F 95
05A0 41 F5 3F E5 3E 95 40 F5 3E 02 05 23 C3 22 E4 F5
05B0 2C F5 2B F5 2A F5 29 C2 03 C2 00 C2 02 C2 01 12
05C0 08 FA 7E 08 7F 8C 8E 08 8F 09 75 0A 08 75 0B 9E
05D0 75 0C 08 75 0D BE EE 54 E0 70 03 02 06 C2 75 2D
05E0 00 75 2E 80 8E 2F 8F 30 C3 74 F8 9F FF 74 08 9E
05F0 CF 24 02 CF 34 00 FE E4 8F 28 8E 27 F5 26 F5 25
0600 F5 24 F5 23 F5 22 F5 21 AF 28 AE 27 AD 26 AC 25
0610 AB 24 AA 23 A9 22 A8 21 C3 12 08 7B 50 2A E5 2E
0620 25 24 F5 82 E5 2D 35 23 F5 83 74 CD F0 E4 FA F9
0630 F8 E5 24 24 01 F5 24 EA 35 23 F5 23 E9 35 22 F5
0640 22 E8 35 21 F5 21 80 C0 E4 F5 24 F5 23 F5 22 F5
0650 21 AF 28 AE 27 AD 26 AC 25 AB 24 AA 23 A9 22 A8
0660 21 C3 12 08 7B 50 35 AE 23 AF 24 E5 30 2F F5 82
0670 E5 2F 3E F5 83 E0 FD E5 2E 2F F5 82 E5 2D 3E F5
0680 83 ED F0 E4 FA F9 F8 EF 24 01 F5 24 EA 3E F5 23
0690 E9 35 22 F5 22 E8 35 21 F5 21 80 B5 85 2D 08 85
06A0 2E 09 74 8C 24 80 FF 74 08 34 FF FE C3 E5 0B 9F
06B0 F5 0B E5 0A 9E F5 0A C3 E5 0D 9F F5 0D E5 0C 9E
06C0 F5 0C D2 E8 43 D8 20 90 7F 95 E0 44 C0 F0 90 7F
06D0 AF E0 44 01 F0 90 7F AE E0 44 1D F0 D2 AF 53 8E
06E0 F8 30 01 05 12 00 80 C2 01 30 03 1A 12 0D 06 50
06F0 15 C2 03 12 0C 38 20 00 07 90 7F D6 E0 20 E7 F3
0700 12 0C 91 12 0D 08 12 08 FF 80 D6 C0 E0 C0 83 C0
0710 82 C0 85 C0 84 C0 86 75 86 00 C0 D0 75 D0 00 C0
0720 00 C0 01 C0 02 C0 03 C0 06 C0 07 90 7F A5 E0 30
0730 E2 06 75 13 06 02 07 F5 90 7F A5 E0 20 E1 0C E5
0740 13 64 02 60 06 75 13 07 02 07 F5 E5 13 24 FE 60
0750 5F 14 60 36 24 FE 70 03 02 07 E6 24 FC 70 03 02
0760 07 F2 24 08 60 03 02 07 F5 AB 0F AA 10 A9 11 AF
0770 12 05 12 8F 82 75 83 00 12 08 2C 90 7F A6 F0 E5
0780 12 65 0E 70 70 75 13 05 80 6B 90 7F A6 E0 AB 0F
0790 AA 10 A9 11 AE 12 8E 82 75 83 00 12 08 59 75 13
07A0 02 E5 0E 64 01 70 4E 90 7F A5 E0 44 20 F0 80 45
07B0 E5 0E 24 FE B5 12 07 90 7F A5 E0 44 20 F0 E5 0E
07C0 14 B5 12 0A 90 7F A5 E0 44 40 F0 75 13 00 90 7F
07D0 A6 E0 AB 0F AA 10 A9 11 AE 12 8E 82 75 83 00 12
07E0 08 59 05 12 80 0F 90 7F A5 E0 44 40 F0 75 13 00
07F0 80 03 75 13 00 53 91 DF D0 07 D0 06 D0 03 D0 02
0800 D0 01 D0 00 D0 D0 D0 86 D0 84 D0 85 D0 82 D0 83
0810 D0 E0 32 BB 01 06 89 82 8A 83 E0 22 50 02 E7 22
0820 BB FE 02 E3 22 89 82 8A 83 E4 93 22 BB 01 0C E5
0830 82 29 F5 82 E5 83 3A F5 83 E0 22 50 06 E9 25 82
0840 F8 E6 22 BB FE 06 E9 25 82 F8 E2 22 E5 82 29 F5
0850 82 E5 83 3A F5 83 E4 93 22 F8 BB 01 0D E5 82 29
0860 F5 82 E5 83 3A F5 83 E8 F0 22 50 06 E9 25 82 C8
0870 F6 22 BB FE 05 E9 25 82 C8 F2 22 EB 9F F5 F0 EA
0880 9E 42 F0 E9 9D 42 F0 E8 9C 45 F0 22 12 01 00 01
0890 00 00 00 40 47 05 02 10 01 00 01 02 00 01 09 02
08A0 20 00 01 01 00 A0 00 09 04 00 00 02 FF 00 00 00
08B0 07 05 82 02 40 00 00 07 05 02 02 40 00 00 04 03
08C0 09 04 1A 03 41 00 6E 00 63 00 68 00 6F 00 72 00
08D0 20 00 43 00 68 00 69 00 70 00 73 00 1C 03 45 00
08E0 5A 00 2D 00 55 00 53 00 42 00 20 00 44 00 65 00
08F0 76 00 69 00 63 00 65 00 00 00 D2 00 02 0C FA 22
0900 02 0B 7B 00 02 0B EE 00 02 0B C9 00 02 0B A2 00
0910 02 0C 13 00 02 0D 12 00 02 0D 13 00 02 0D 14 00
0920 02 0D 15 00 02 0D 16 00 02 0D 17 00 02 0D 18 00
0930 02 0D 19 00 02 0D 1A 00 02 0D 1B 00 02 0D 1C 00
0940 02 0D 1D 00 02 0D 1E 00 02 0D 1F 00 02 0D 20 00
0950 02 0D 21 00 02 0D 22 00 90 7F D6 E0 44 08 F0 E4
0960 F5 44 E0 54 FB F0 E4 F5 44 E0 44 08 F0 30 04 04
0970 E0 44 02 F0 7F DC 7E 05 12 0C AB 90 7F 92 E0 30
0980 E3 07 7F DC 7E 05 12 0C AB 90 7F AB 74 FF F0 90
0990 7F A9 F0 90 7F AA F0 53 91 EF 90 7F D6 E0 54 F7
09A0 F0 E4 F5 44 E0 44 04 F0 22 8E 44 8F 45 8D 46 8A
09B0 47 8B 48 E4 FD F5 49 E5 17 60 12 E5 44 FF 7E 00
09C0 0D EE 24 00 F5 82 E4 34 0E F5 83 EF F0 E5 45 AE
09D0 05 0D 74 00 2E F5 82 E4 34 0E F5 83 E5 45 F0 7A
09E0 0E 7B 00 AF 15 12 0C 75 AB 48 AA 47 AD 46 AF 15
09F0 02 0C 59 AB 07 AA 06 AC 05 E4 FD E5 17 60 10 EA
0A00 7E 00 0D EE 24 00 F5 82 E4 34 0E F5 83 EA F0 EB
0A10 AE 05 0D 74 00 2E F5 82 E4 34 0E F5 83 EB F0 AF
0A20 05 0D 74 00 2F F5 82 E4 34 0E F5 83 EC F0 7A 0E
0A30 7B 00 AF 15 12 0C 75 AF 15 02 0A 7E E4 FE AC 0A
0A40 AD 0B 8D 82 8C 83 A3 E0 64 02 70 2D AB 06 0E EB
0A50 B5 07 05 AF 05 AE 04 22 8D 82 8C 83 A3 A3 E0 F5
0A60 3C A3 E0 F5 3D 62 3C E5 3C 62 3D E5 3D 62 3C 2D
0A70 FB E5 3C 3C FC AD 03 80 C9 7E 00 7F 00 22 90 7F
0A80 A5 E0 20 E6 F9 C2 E9 90 7F A5 E0 44 80 F0 EF 25
0A90 E0 90 7F A6 F0 90 7F A5 E0 30 E0 F9 90 7F A5 E0
0AA0 44 40 F0 90 7F A5 E0 20 E6 F9 90 7F A5 E0 30 E1
0AB0 D6 D2 E9 22 8E 44 8F 45 8D 46 8A 47 8B 48 E4 F5
0AC0 49 E5 49 C3 95 46 50 20 05 45 E5 45 AE 44 70 02
0AD0 05 44 14 FF E5 48 25 49 F5 82 E4 35 47 F5 83 E0
0AE0 FD 12 09 F3 05 49 80 D9 22 A9 07 90 7F A5 E0 20
0AF0 E6 F9 E5 13 70 25 90 7F A5 E0 44 80 F0 E9 25 E0
0B00 44 01 90 7F A6 F0 8D 0E AF 03 A9 07 75 0F 01 8A
0B10 10 89 11 E4 F5 12 75 13 03 D3 22 C3 22 A9 07 90
0B20 7F A5 E0 20 E6 F9 E5 13 70 23 90 7F A5 E0 44 80
0B30 F0 E9 25 E0 90 7F A6 F0 8D 0E AF 03 A9 07 75 0F
0B40 01 8A 10 89 11 E4 F5 12 75 13 01 D3 22 C3 22 A9
0B50 07 AE 0C AF 0D 8F 82 8E 83 A3 E0 64 03 70 17 AD
0B60 01 19 ED 70 01 22 8F 82 8E 83 E0 7C 00 2F FD EC
0B70 3E FE AF 05 80 DF 7E 00 7F 00 22 C0 E0 C0 83 C0
0B80 82 C0 85 C0 84 C0 86 75 86 00 D2 01 53 91 EF 90
0B90 7F AB 74 01 F0 D0 86 D0 84 D0 85 D0 82 D0 83 D0
0BA0 E0 32 C0 E0 C0 83 C0 82 C0 85 C0 84 C0 86 75 86
0BB0 00 D2 03 53 91 EF 90 7F AB 74 08 F0 D0 86 D0 84
0BC0 D0 85 D0 82 D0 83 D0 E0 32 C0 E0 C0 83 C0 82 C0
0BD0 85 C0 84 C0 86 75 86 00 53 91 EF 90 7F AB 74 04
0BE0 F0 D0 86 D0 84 D0 85 D0 82 D0 83 D0 E0 32 C0 E0
0BF0 C0 83 C0 82 C0 85 C0 84 C0 86 75 86 00 53 91 EF
0C00 90 7F AB 74 02 F0 D0 86 D0 84 D0 85 D0 82 D0 83
0C10 D0 E0 32 C0 E0 C0 83 C0 82 C0 85 C0 84 C0 86 75
0C20 86 00 53 91 EF 90 7F AB 74 10 F0 D0 86 D0 84 D0
0C30 85 D0 82 D0 83 D0 E0 32 90 7F D6 E0 44 80 F0 43
0C40 87 01 00 00 00 00 00 22 74 00 F5 86 90 FD A5 7C
0C50 05 A3 E5 82 45 83 70 F9 22 12 0A E9 E5 13 24 FA
0C60 60 0E 14 60 06 24 07 70 F3 D3 22 E4 F5 13 D3 22
0C70 E4 F5 13 D3 22 12 0B 1D E5 13 24 FA 60 0E 14 60
0C80 06 24 07 70 F3 D3 22 E4 F5 13 D3 22 E4 F5 13 D3
0C90 22 90 7F D6 E0 30 E7 12 E0 44 01 F0 7F 14 7E 00
0CA0 12 0C AB 90 7F D6 E0 54 FE F0 22 8E 45 8F 46 E5
0CB0 46 15 46 AE 45 70 02 15 45 4E 60 05 12 0C 48 80
0CC0 EE 22 90 7F 00 E5 16 F0 90 7F B5 74 01 F0 D3 22
0CD0 90 7F 00 E5 14 F0 90 7F B5 74 01 F0 D3 22 78 7F
0CE0 E4 F6 D8 FD 75 81 49 02 05 AE 90 7F EA E0 F5 16
0CF0 D3 22 90 7F EA E0 F5 14 D3 22 E4 F5 13 D2 E9 D2
0D00 AF 22 53 D8 EF 32 D3 22 D3 22 D3 22 D3 22 D3 22
0D10 D3 22 32 32 32 32 32 32 32 32 32 32 32 32 32 32
0D20 32 32 32 AA AA AA AA AA AA AA AA AA AA AA AA AA
Toggle 8051 Reset
Vendor Request
0000 50 50 00 C0 F9 A4 B0 99 92 82 F8 80 98 88 83 C6
0010 A1 86 8E
Vendor Request
0000 E4 F5 0E 75 0F FF 75 10 01 12 43 60 7A 50 7B 10
0010 7D 01 7F 20 12 43 14 90 50 10 E0 FF 65 0F FE 8F
0020 0F E4 FF EE 60 4D 30 E0 43 E5 0F A8 07 08 80 02
0030 C3 13 D8 FC 20 E0 32 EF 60 27 24 FE 60 15 14 60
0040 25 24 02 70 24 15 0E E5 0E D3 94 0F 40 1B 75 0E
0050 0F 80 16 05 0E E5 0E D3 94 0F 40 0D E4 F5 0E 80
0060 08 E4 F5 0E 80 03 75 0E 0F 75 10 01 EE C3 13 FE
0070 0F 80 B0 E5 10 60 95 74 00 25 0E F5 82 E4 34 50
0080 AB 82 FA 7D 01 7F 21 12 43 30 7F 21 12 42 78 E4
0090 F5 10 02 41 14
Vendor Request
0000 E4 F5 0D D2 E9 D2 AF 22
Vendor Request
0000 90 7F A5 E0 20 E6 F9 C2 E9 90 7F A5 E0 44 80 F0
0010 EF 25 E0 90 7F A6 F0 90 7F A5 E0 30 E0 F9 90 7F
0020 A5 E0 44 40 F0 90 7F A5 E0 20 E6 F9 90 7F A5 E0
0030 30 E1 D6 D2 E9 22
Vendor Request
0000 A9 07 90 7F A5 E0 20 E6 F9 E5 0D 70 23 90 7F A5
0010 E0 44 80 F0 E9 25 E0 90 7F A6 F0 8D 08 AF 03 A9
0020 07 75 09 01 8A 0A 89 0B E4 F5 0C 75 0D 01 D3 22
0030 C3 22
Vendor Request
0000 A9 07 90 7F A5 E0 20 E6 F9 E5 0D 70 25 90 7F A5
0010 E0 44 80 F0 E9 25 E0 44 01 90 7F A6 F0 8D 08 AF
0020 03 A9 07 75 09 01 8A 0A 89 0B E4 F5 0C 75 0D 03
0030 D3 22 C3 22
Vendor Request
0000 C0 E0 C0 83 C0 82 C0 85 C0 84 C0 86 75 86 00 C0
0010 D0 75 D0 00 C0 00 C0 01 C0 02 C0 03 C0 06 C0 07
0020 90 7F A5 E0 30 E2 06 75 0D 06 02 40 EA 90 7F A5
0030 E0 20 E1 0C E5 0D 64 02 60 06 75 0D 07 02 40 EA
0040 E5 0D 24 FE 60 5F 14 60 36 24 FE 70 03 02 40 DB
0050 24 FC 70 03 02 40 E7 24 08 60 03 02 40 EA AB 09
0060 AA 0A A9 0B AF 0C 05 0C 8F 82 75 83 00 12 42 29
0070 90 7F A6 F0 E5 0C 65 08 70 70 75 0D 05 80 6B 90
0080 7F A6 E0 AB 09 AA 0A A9 0B AE 0C 8E 82 75 83 00
0090 12 42 56 75 0D 02 E5 08 64 01 70 4E 90 7F A5 E0
00A0 44 20 F0 80 45 E5 08 24 FE B5 0C 07 90 7F A5 E0
00B0 44 20 F0 E5 08 14 B5 0C 0A 90 7F A5 E0 44 40 F0
00C0 75 0D 00 90 7F A6 E0 AB 09 AA 0A A9 0B AE 0C 8E
00D0 82 75 83 00 12 42 56 05 0C 80 0F 90 7F A5 E0 44
00E0 40 F0 75 0D 00 80 03 75 0D 00 53 91 DF D0 07 D0
00F0 06 D0 03 D0 02 D0 01 D0 00 D0 D0 D0 86 D0 84 D0
0100 85 D0 82 D0 83 D0 E0 32
Vendor Request
0000 12 42 AE E5 0D 24 FA 60 0E 14 60 06 24 07 70 F3
0010 D3 22 E4 F5 0D D3 22 E4 F5 0D D3 22 12 42 E2 E5
0020 0D 24 FA 60 0E 14 60 06 24 07 70 F3 D3 22 E4 F5
0030 0D D3 22 E4 F5 0D D3 22
Vendor Request
0000 78 7F E4 F6 D8 FD 75 81 10 02 41 E4
Vendor Request
0000 BB 01 0C E5 82 29 F5 82 E5 83 3A F5 83 E0 22 50
0010 06 E9 25 82 F8 E6 22 BB FE 06 E9 25 82 F8 E2 22
0020 E5 82 29 F5 82 E5 83 3A F5 83 E4 93 22 F8 BB 01
0030 0D E5 82 29 F5 82 E5 83 3A F5 83 E8 F0 22 50 06
0040 E9 25 82 C8 F6 22 BB FE 05 E9 25 82 C8 F2 22
Vendor Request
0000 02 41 08 E4 93 A3 F8 E4 93 A3 40 03 F6 80 01 F2
0010 08 DF F4 80 29 E4 93 A3 F8 54 07 24 0C C8 C3 33
0020 C4 54 0F 44 20 C8 83 40 04 F4 56 80 01 46 F6 DF
0030 E4 80 0B 01 02 04 08 10 20 40 80 90 43 4C E4 7E
0040 01 93 60 BC A3 FF 54 3F 30 E5 09 54 1F FE E4 93
0050 A3 60 01 0E CF 54 C0 25 E0 60 A8 40 B8 E4 93 A3
0060 FA E4 93 A3 F8 E4 93 A3 C8 C5 82 C8 CA C5 83 CA
0070 F0 A3 C8 C5 82 C8 CA C5 83 CA DF E9 DE E7 80 BE
Vendor Request
0000 00
Toggle 8051 Reset
Anchor Download 3 bytes: addr=4b
0000 02 40 00
Anchor Download 3 bytes: addr=0
0000 02 41 9D
Toggle 8051 Reset
cuiming73@263.net 10101973@sina.com
CuiMing_73
驱动牛犊
驱动牛犊
  • 注册日期2002-06-27
  • 最后登录2004-12-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-07-23 12:32
其中跟踪显示:
长的一段是Ezusb_DownloadIntelHex(Vend_Ax);
标示为:Vendor Request的因为满足
if(m_MemCache.pSeg.TAddr >= 0x2000)
则是要调用VendRequest(&mTh);


[编辑 -  7/23/02 by  CuiMing_73]
cuiming73@263.net 10101973@sina.com
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-07-23 17:38
看着头晕,贴那些东西出来有什么用啊?大哥,用hex2c处理一下hex就能看到以上一大堆看着也白看的x进制码.一步步跟ezmr,不就知道为什么它是好的,C++builder写的为什么出错啦.
CuiMing_73
驱动牛犊
驱动牛犊
  • 注册日期2002-06-27
  • 最后登录2004-12-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-07-23 17:53
贴出来是为了说明
有:Vendor Request 的调用
而且我也跟踪了ezmr
确实要到
case IDC_VEND_REQUEST:这一步
我也再次保证我对
VENDOR_OR_CLASS_REQUEST_CONTROL myRequest;
各参数的填写是正确无误的
cuiming73@263.net 10101973@sina.com
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-07-23 18:14
参数一样,那岂不是驱动不一视同仁?
如其在这里花时间,还不如绕过它,先在开发板上验证firmware的正确,build进驱动中,做成上电下载,如何?
你想自己做下载的目的也不外乎方便调试firmware,不会一直用应用程序下载吧?暂时用ezmr下载,自己的应用程序检验功能,有空再来做好了
CuiMing_73
驱动牛犊
驱动牛犊
  • 注册日期2002-06-27
  • 最后登录2004-12-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-07-24 08:44

先在开发板上验证firmware的正确,
build进驱动中,做成上电下载,如何?
你想自己做下载的目的也不外乎方便调试firmware,不会一直用应用程序下载吧?


老兄 全让你猜着了
我对“build进驱动中,做成上电下载”
不会所以才出此下策
现在的方案确实是“一直用应用程序下载”
我也想写入EPROM但硬件方面希望尽可能的小

万望老兄帮忙!
cuiming73@263.net 10101973@sina.com
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-07-24 10:16
build进驱动其实很简单,照cypress的葫芦画你的瓢就行了,有文档说明,没有什么需要你自己操心的.只要硬件上有一个eeprom,第一个字节是BO,后面6个字节是vid pid did,B0 load方式就能做到上电自动下载.首先要做的是做好firmware,怎么做下载那是下一步的事,调试firmware时用ezmr下载和用你自己的代码下载还不是一样的么?写入eeprom用B2 load,就更应该最后考虑了,只有做发行版本时才有必要搞它,用应用程序下载我认为只适合做做研究,不象是做产品设计,不保密不安全,B0 load是最简单的通行做法.24LC00/24LC01不是很大吧?8个脚的片子而已.
CuiMing_73
驱动牛犊
驱动牛犊
  • 注册日期2002-06-27
  • 最后登录2004-12-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2002-07-24 14:22
我的firmware 8051_asm代码
您看有问题吗?

;-----------------------------------------------------------------
$NOMOD51 ; disable predefined 8051 registers
$nolist
$include (C:\\Cypress\\USB\\Target\\inc\\ezregs.inc) ; EZ-USB register assignments
$list
;
NAME        eziso
;
CSEG AT 0
       mov     dptr,#IN8ADDR   ; set the FIFO start for EP8 to 0
         mov     a,#0
       movx    @dptr,a
mov a,#0xFF
mov dptr,#OEC
movx @dptr,a
mov dptr,#OEB
movx @dptr,a
mov dptr,#OEA
movx @dptr,a

  ljmp loop
; -------------------------------------------------
org 100h
; -------------------------------------------------
loop: mov dptr,#USBIRQ ; wait for SOF IRQ bit
movx a,@dptr
  jb acc.1,IsoIn

  mov dptr,#OUT2CS ; EP2OUT Control & Status reg
   movx a,@dptr
     jb acc.1,loop ; busy-keep checking
;
service_OUT2: mov dptr,#OUT2BUF
movx a,@dptr
mov r7,a
inc dptr
movx a,@dptr
mov r6,a
inc dptr
movx a,@dptr
     mov dptr,#OUTA
movx @dptr,a
mov a,r6
     mov dptr,#OUTB
movx @dptr,a
mov a,r7
     mov dptr,#OUTC
movx @dptr,a

mov dptr,#OUT2BC ; load anything to byte count to re-arm
  mov a,#1 ; any value
  movx @dptr,a
   sjmp loop
;
IsoIn: mov a,#00000010b ; SOFIR bit
movx @dptr,a ; writing 1 clears the SOF IRQ bit
;
mov dptr,#USBFRAMEH ; put the frame number into first two EP8IN bytes
  movx a,@dptr
   mov dptr,#IN8DATA ; \"IN8DATA\" is a FIFO inside the EZ-USB chip
   movx @dptr,a ; byte 0
mov dptr,#USBFRAMEL
  movx a,@dptr
   mov dptr,#IN8DATA
   movx @dptr,a ; byte 1
;    
mov r2,#24
loop_cm:
   mov dptr,#PINSC ; read PORTC pins
   movx a,@dptr
mov dptr,#IN8DATA
     movx @dptr,a
mov a,#0
     movx @dptr,a

djnz r2,loop_cm
;
       sjmp loop
;
END

这个代码用您说的方法下载没有问题
也可以完成我在另一个主体中说的1000 ISO IN  200 BULK OUT
但不能长时间稳定运行

另外,ISO 之前为什么要
IOCTL_Ezusb_RESETPIPE
然后
IOCTL_EZUSB_START_ISO_STREAM

cuiming73@263.net 10101973@sina.com
上一页
游客

返回顶部