ソースを参照

o add hexdumper

david 15 年 前
コミット
10c73facfd
1 ファイル変更31 行追加3 行削除
  1. 31 3
      poc/lpc2148_usb/target/custom/main_custom.c

+ 31 - 3
poc/lpc2148_usb/target/custom/main_custom.c

@@ -134,6 +134,8 @@ typedef struct {
 static TMemoryCmd	MemoryCmd;
 static U8			abVendorReqData[sizeof(TMemoryCmd)];
 
+static U8 buffer[8192];
+
 
 static void _HandleBulkIn(U8 bEP, U8 bEPStatus)
 {
@@ -156,17 +158,43 @@ static void _HandleBulkIn(U8 bEP, U8 bEPStatus)
 }
 
 
+void dump_packet(U32 addr,U32 len,U8 *packet){
+	U16 i,j;
+	U16 sum =0;
+	for (i=0;i<len;i+=16) {
+		sum = 0;
+		for (j=0;j<16;j++) {
+			sum +=packet[i+j];
+		}
+		if (!sum)
+			continue;
+		DBG("%08x:", addr + i);
+		for (j=0;j<16;j++) {
+			DBG(" %02x", packet[i+j]);
+		}
+		DBG(" |");
+		for (j=0;j<16;j++) {
+			if (packet[i+j]>=33 && packet[i+j]<=126 )
+				DBG("%c", packet[i+j]);
+			else
+				DBG(".");
+		}
+		DBG("|\n");
+		
+	}
+}
+
 static void _HandleBulkOut(U8 bEP, U8 bEPStatus)
 {
 	int iChunk;
 	
 	// get next part
-	iChunk = USBHwEPRead(bEP, NULL, 0);
+	iChunk = USBHwEPRead(bEP, buffer, 0);
 	
 	MemoryCmd.dwAddress += iChunk;
 	MemoryCmd.dwLength -= iChunk;	
-	DBG("_HandleBulkOut addr=%X, len=%d\n",MemoryCmd.dwAddress,MemoryCmd.dwLength);
-
+	//DBG("_HandleBulkOut addr=%X, len=%d\n",MemoryCmd.dwAddress,MemoryCmd.dwLength);
+	dump_packet(MemoryCmd.dwAddress,iChunk,buffer);
 	if (MemoryCmd.dwLength == 0) {
 		DBG("_HandleBulkOut done\n");
 	}