imgtools/romtools/rombuild/r_rom.cpp
changeset 714 e5a58c351011
parent 694 c3fbb20e86f0
equal deleted inserted replaced
713:7b7f0409fc00 714:e5a58c351011
    35 
    35 
    36 const TInt KSpareExports=16;
    36 const TInt KSpareExports=16;
    37 extern TInt gThreadNum;
    37 extern TInt gThreadNum;
    38 extern string gDepInfoFile;
    38 extern string gDepInfoFile;
    39 extern TBool gGenDepGraph;
    39 extern TBool gGenDepGraph;
       
    40 extern TBool gGenBsymbols;
    40 
    41 
    41 TUint32 DeflateCompressCheck(char *bytes,TInt size,ostream &os);
    42 TUint32 DeflateCompressCheck(char *bytes,TInt size,ostream &os);
    42 void DeflateCompress(char *bytes,TInt size,ostream &os);
    43 void DeflateCompress(char *bytes,TInt size,ostream &os);
    43 void InflateUnCompress(unsigned char* source, int sourcesize,unsigned char* dest, int destsize);
    44 void InflateUnCompress(unsigned char* source, int sourcesize,unsigned char* dest, int destsize);
    44 
    45 
  1305 		SetImageAddr(second,iSectionPtr);
  1306 		SetImageAddr(second,iSectionPtr);
  1306 		secondptr = &second;
  1307 		secondptr = &second;
  1307 		}
  1308 		}
  1308 
  1309 
  1309 	TInt fileCount=0;
  1310 	TInt fileCount=0;
  1310 	if(gGenSymbols && !iSymGen) {
  1311 	if((gGenSymbols || gGenBsymbols )&& !iSymGen) {
  1311 		string filename(iObey->GetFileName());
  1312 		string filename(iObey->GetFileName());
  1312 		iSymGen = SymbolGenerator::GetInstance();
  1313 		iSymGen = SymbolGenerator::GetInstance();
  1313 		iSymGen ->SetImageType(ERomImage);
  1314 		iSymGen ->SetImageType(ERomImage);
  1314 		iSymGen ->SetSymbolFileName(filename);		
  1315 		iSymGen ->SetSymbolFileName(filename);		
  1315 	}
  1316 	}
  1437 		current->FixupRomEntries(size);
  1438 		current->FixupRomEntries(size);
  1438 		if(iSymGen) {
  1439 		if(iSymGen) {
  1439 			TPlacedEntry context ;
  1440 			TPlacedEntry context ;
  1440 			context.iFileName = current->iFileName ;
  1441 			context.iFileName = current->iFileName ;
  1441 			context.iDataAddress = savedAddr ;
  1442 			context.iDataAddress = savedAddr ;
       
  1443 			char* fullname = current->GetSystemFullName();
       
  1444 			context.iDevFileName = fullname;
       
  1445 			delete fullname;
  1442 			iSymGen->AddEntry(context); 
  1446 			iSymGen->AddEntry(context); 
  1443 		}
  1447 		}
  1444 		return;
  1448 		return;
  1445 		}
  1449 		}
  1446 	if(current->HCRDataFile()){	
  1450 	if(current->HCRDataFile()){	
  1452 		TRACE(TAREA, Print(ELog, "iHeader->iHcrFileAddress = %08x\n", iHeader->iHcrFileAddress));	
  1456 		TRACE(TAREA, Print(ELog, "iHeader->iHcrFileAddress = %08x\n", iHeader->iHcrFileAddress));	
  1453 		if(iSymGen) {
  1457 		if(iSymGen) {
  1454 			TPlacedEntry context ;
  1458 			TPlacedEntry context ;
  1455 			context.iFileName = current->iFileName ;
  1459 			context.iFileName = current->iFileName ;
  1456 			context.iDataAddress = savedAddr ;
  1460 			context.iDataAddress = savedAddr ;
       
  1461 			char* fullname = current->GetSystemFullName();
       
  1462 			context.iDevFileName = fullname;
       
  1463 			delete fullname;
  1457 			iSymGen->AddEntry(context); 
  1464 			iSymGen->AddEntry(context); 
  1458 		}		
  1465 		}		
  1459 		return ;
  1466 		return ;
  1460 	}
  1467 	}
  1461 	Print(ELog,"Processing file %s\n",current->iFileName);
  1468 	Print(ELog,"Processing file %s\n",current->iFileName);
  1515 	LoadFileToRom(current);
  1522 	LoadFileToRom(current);
  1516 	TRomImageHeader *header = current->iRomImageHeader;
  1523 	TRomImageHeader *header = current->iRomImageHeader;
  1517 	if(iSymGen){
  1524 	if(iSymGen){
  1518 		TPlacedEntry context  ;
  1525 		TPlacedEntry context  ;
  1519 		context.iFileName = current->iFileName ;		
  1526 		context.iFileName = current->iFileName ;		
       
  1527 		char* fullname = current->GetSystemFullName();
       
  1528 		context.iDevFileName = fullname;
       
  1529 		delete fullname;
  1520 		context.iTotalSize = section1size;
  1530 		context.iTotalSize = section1size;
  1521 		context.iCodeAddress = header->iCodeAddress; 
  1531 		context.iCodeAddress = header->iCodeAddress; 
  1522 		context.iDataAddress = header->iDataAddress; 
  1532 		context.iDataAddress = header->iDataAddress; 
  1523 		context.iDataBssLinearBase = header->iDataBssLinearBase;	 
  1533 		context.iDataBssLinearBase = header->iDataBssLinearBase;	 
  1524 		context.iTextSize = header->iTextSize; 
  1534 		context.iTextSize = header->iTextSize;