print mapping

This commit is contained in:
Janik Schlemminger
2014-09-06 20:21:43 +02:00
parent 30b1fbbd0c
commit 938dbb3fdb
5 changed files with 30 additions and 50 deletions

View File

@@ -1,13 +1,11 @@
#include "xmlAddressdecoder.h"
#include <systemc.h>
#include "Utils.h"
#include "bitset"
using namespace std;
using namespace tinyxml2;
//string xmlAddressDecoder::addressConfigURI = "";
//tinyxml2::XMLElement* xmlAddressDecoder::addressMap = NULL;
tinyxml2::XMLElement* xmlAddressDecoder::addressmapping = NULL;
xmlAddressDecoder::xmlAddressDecoder(string addressConfigURI)
@@ -22,26 +20,17 @@ xmlAddressDecoder::xmlAddressDecoder(string addressConfigURI)
xmlAddressDecoder::xmlAddressDecoder(XMLElement* addressmap)
{
tinyxml2::XMLDocument doc;
//std::cout<<"fffffff"<<addressmap->Name()<<endl;
string xmlNodeName(addressmap->Name());
if( xmlNodeName != "addressmapping")
reportFatal("AddressDecorder", "addressmap node expected");
cout<<addressmap<<endl;
if(addressmap->Attribute("src"))
{
string src(addressmap->Attribute("src"));
std::cout<<src<<endl;
loadXML(src, doc);
addressmap = (doc.FirstChildElement("addressmapping"));
string src(addressmap->Attribute("src"));
loadXML(src, doc);
addressmap = (doc.FirstChildElement("addressmapping"));
}
cout<<addressmap<<endl;
//tinyxml2::XMLDocument doc2;
//loadXML("/home/jonny/git/dram.vp.system/dram/resources/configs/amconfigs/am_wideio.xml", doc2);
//XMLElement* addressmap = doc2.FirstChildElement("addressmapping");
for(XMLElement* child = addressmap->FirstChildElement(); child != NULL; child = child->NextSiblingElement())
{
int from;
@@ -67,3 +56,14 @@ DecodedAddress xmlAddressDecoder::decodeAddress(sc_dt::uint64 addr)
result.bytes = (addr & masks["bytes"]) >> shifts["bytes"];
return result;
}
void xmlAddressDecoder::print()
{
cout << "Used addressmapping:" << endl;
cout<<"===================="<<endl;
for(auto& pair : masks)
{
cout<<pair.first<<"\t:\t" << bitset<32>(pair.second)<<endl;
}
cout<<"\n"<<endl;
}