imgtools/romtools/readimage/src/rom_image_reader.cpp
changeset 712 df89378e9223
parent 590 360bd6b35136
--- a/imgtools/romtools/readimage/src/rom_image_reader.cpp	Thu Nov 18 16:02:32 2010 +0800
+++ b/imgtools/romtools/readimage/src/rom_image_reader.cpp	Tue Nov 30 13:59:58 2010 +0800
@@ -568,12 +568,18 @@
 	DumpInHex("Stack size", aRomImgEntry->iStackSize) << endl;
 
 	TDllRefTable *aRefTbl = NULL;
-
-	if( aRomImgEntry->iDllRefTable ) {
-		TUint32 aOff = (TUint32)aRomImgEntry->iDllRefTable - iImageHeader->iRomHdr->iRomBase;
-		aRefTbl = (TDllRefTable*) ((char*)iImageHeader->iRomHdr + aOff);
-		TUint32 aVirtualAddr = (TUint32)aRefTbl->iEntry[0];
-		DumpInHex("Dll ref table", aVirtualAddr) << endl;
+ 
+	 if( aRomImgEntry->iDllRefTable ) {
+		TUint32 aOff = (TUint32)aRomImgEntry->iDllRefTable  - iImageHeader->iRomHdr->iRomBase;
+        if(static_cast<TInt32>(aOff) > 0) { 
+			aRefTbl = (TDllRefTable*) (iRomLayoutData + aOff);		 
+			TUint32 aVirtualAddr = reinterpret_cast<TUint32>(aRefTbl->iEntry[0]);
+			DumpInHex("Dll ref table", aVirtualAddr) << endl;
+			
+        }
+       else {
+            DumpInHex("Error Dll ref table", 0) << endl;
+        }
 	}
 
 	DumpInHex("Export directory", aRomImgEntry->iExportDir) << endl;
@@ -607,11 +613,13 @@
 		if(stricmp(iE32ImgFileName.c_str(), aEntry->Name()) == 0){
 			TUint aSectionOffset = aRomImgEntry->iCodeAddress - iImageHeader->iRomHdr->iRomBase;
 			TUint* aCodeSection = (TUint*)((char*)iImageHeader->iRomHdr + aSectionOffset);
+			//TUint* aCodeSection = (TUint*)(iRomLayoutData + aSectionOffset);
 			*out << "\nCode (Size=0x" << hex << aRomImgEntry->iCodeSize << ")" << endl;
 			DumpData(aCodeSection, aRomImgEntry->iCodeSize);
 
 			aSectionOffset = aRomImgEntry->iDataAddress - iImageHeader->iRomHdr->iRomBase;
 			TUint* aDataSection = (TUint*)((char*)iImageHeader->iRomHdr + aSectionOffset);
+			//TUint* aDataSection = (TUint*)(iRomLayoutData + aSectionOffset);
 			if( aRomImgEntry->iDataSize){
 				*out << "\nData (Size=0x" << hex << aRomImgEntry->iDataSize << ")" << endl;
 				DumpData(aDataSection, aRomImgEntry->iDataSize);