diff options
Diffstat (limited to 'src/devices')
-rw-r--r-- | src/devices/base/device_group.cpp | 2 | ||||
-rw-r--r-- | src/devices/base/hex_buffer.cpp | 8 | ||||
-rw-r--r-- | src/devices/mem24/xml/mem24_xml_to_data.cpp | 18 | ||||
-rw-r--r-- | src/devices/pic/base/pic_protection.cpp | 40 | ||||
-rw-r--r-- | src/devices/pic/gui/pic_config_editor.cpp | 4 | ||||
-rw-r--r-- | src/devices/pic/gui/pic_config_word_editor.cpp | 6 | ||||
-rw-r--r-- | src/devices/pic/pic/pic_memory.cpp | 34 | ||||
-rw-r--r-- | src/devices/pic/xml/pic_xml_to_data.cpp | 254 |
8 files changed, 183 insertions, 183 deletions
diff --git a/src/devices/base/device_group.cpp b/src/devices/base/device_group.cpp index db70264..169a103 100644 --- a/src/devices/base/device_group.cpp +++ b/src/devices/base/device_group.cpp @@ -69,7 +69,7 @@ TQPixmap drawGraph(const TQValueVector<Device::RangeBox> &boxes) xTicks.add(0.0, 0.0); yTicks.add(0.0, 0.0); for (uint i=0; i<boxes.count(); i++) { -// qDebug("box #%i: %f=[%f %f] %f=[%f %f]", i, boxes[i].start.x, boxes[i].start.yMin, +// tqDebug("box #%i: %f=[%f %f] %f=[%f %f]", i, boxes[i].start.x, boxes[i].start.yMin, // boxes[i].start.yMax, boxes[i].end.x, boxes[i].end.yMin, boxes[i].end.yMax); xTicks.add(boxes[i].start.x, boxes[i].start.yMin); xTicks.add(boxes[i].start.x, boxes[i].start.yMax); diff --git a/src/devices/base/hex_buffer.cpp b/src/devices/base/hex_buffer.cpp index 3307f79..d4b61a9 100644 --- a/src/devices/base/hex_buffer.cpp +++ b/src/devices/base/hex_buffer.cpp @@ -217,7 +217,7 @@ void HexBuffer::load(TQTextStream &stream, Format &format, TQValueList<ErrorData uint data; if ( sscanf(p, "%02X", &data)!=1 ) errors += ErrorData(line, UnexpectedEOL); else if ( ((cksum+data) & 0xFF)!=0 ) errors += ErrorData(line, WrongCRC); - //qDebug("new address high: %s", toHex(addrH<<16, 8).data()); + //tqDebug("new address high: %s", toHex(addrH<<16, 8).data()); continue; // goto next record } @@ -236,7 +236,7 @@ void HexBuffer::load(TQTextStream &stream, Format &format, TQValueList<ErrorData /* modified by A.G, because low and hi bytes was swapped in Tobias's code , 8 may 2005 */ uint addrbase = ((addrH << 16) | addr); - //qDebug("line %i: address %s", line, toHex(addrbase, 8).data()); + //tqDebug("line %i: address %s", line, toHex(addrbase, 8).data()); for (uint x = 0; x<count; x++) { uint data; if ( sscanf(p, "%02X", &data)!=1 ) { @@ -252,7 +252,7 @@ void HexBuffer::load(TQTextStream &stream, Format &format, TQValueList<ErrorData BitValue value = (*this)[a]; if ( addrbase+x & 1 ) insert(a, value.maskWith(0x00FF) | data << 8); // Odd addr => Hi byte else insert(a, value.maskWith(0xFF00) | data); // Low byte - //if ( x==0 ) qDebug("fb@%s: %s", toHex(addrbase+x >> 1, 8).data(), toHex(fb[addrbase+x >> 1], 8).data()); + //if ( x==0 ) tqDebug("fb@%s: %s", toHex(addrbase+x >> 1, 8).data(), toHex(fb[addrbase+x >> 1], 8).data()); cksum += data; } } else if ( bytecount==count*2 ) { @@ -269,7 +269,7 @@ void HexBuffer::load(TQTextStream &stream, Format &format, TQValueList<ErrorData break; } p += 4; - //qDebug("%s: %s", toHexLabel(addr+x, 4).latin1(), toHexLabel(datal | (datah << 8), 4).latin1()); + //tqDebug("%s: %s", toHexLabel(addr+x, 4).latin1(), toHexLabel(datal | (datah << 8), 4).latin1()); insert(addr+x, datal | (datah << 8)); cksum += datah; cksum += datal; diff --git a/src/devices/mem24/xml/mem24_xml_to_data.cpp b/src/devices/mem24/xml/mem24_xml_to_data.cpp index 6e41c7b..d2a4da5 100644 --- a/src/devices/mem24/xml/mem24_xml_to_data.cpp +++ b/src/devices/mem24/xml/mem24_xml_to_data.cpp @@ -30,14 +30,14 @@ virtual void processDevice(TQDomElement device) TQDomElement e = findUniqueElement(device, "memory", "name", TQString()); bool ok; data()->_nbBytes = fromHexLabel(e.attribute("size"), &ok); - if ( !ok ) qFatal("Missing or invalid size"); + if ( !ok ) tqFatal("Missing or invalid size"); data()->_nbBlocks = e.attribute("nb_blocks").toUInt(&ok); - if ( !ok || data()->_nbBlocks==0 ) qFatal("Missing, zero, or invalid nb_blocks"); - if ( (data()->_nbBytes % data()->_nbBlocks)!=0 ) qFatal("nb_blocks should divide size"); - if ( data()->_nbBlocks>8 ) qFatal("nb_blocks is too large (>8)"); + if ( !ok || data()->_nbBlocks==0 ) tqFatal("Missing, zero, or invalid nb_blocks"); + if ( (data()->_nbBytes % data()->_nbBlocks)!=0 ) tqFatal("nb_blocks should divide size"); + if ( data()->_nbBlocks>8 ) tqFatal("nb_blocks is too large (>8)"); data()->_nbBytesPage = e.attribute("page_size").toUInt(&ok); - if ( !ok || data()->_nbBytesPage==0 ) qFatal("Missing, zero, or invalid page_size"); - if ( ((data()->_nbBytes/data()->_nbBlocks) % data()->_nbBytesPage)!=0 ) qFatal("page_size should divide size/nb_blocks"); + if ( !ok || data()->_nbBytesPage==0 ) tqFatal("Missing, zero, or invalid page_size"); + if ( ((data()->_nbBytes/data()->_nbBlocks) % data()->_nbBytesPage)!=0 ) tqFatal("page_size should divide size/nb_blocks"); TQStringList names; names.append(TQString()); checkTagNames(device, "memory", names); @@ -45,11 +45,11 @@ virtual void processDevice(TQDomElement device) virtual void checkPins(const TQMap<TQString, uint> &pinLabels) const { - if ( !pinLabels.contains("VCC") ) qFatal("No VDD pin specified"); - if ( !pinLabels.contains("VSS") ) qFatal("No VSS pin specified"); + if ( !pinLabels.contains("VCC") ) tqFatal("No VDD pin specified"); + if ( !pinLabels.contains("VSS") ) tqFatal("No VSS pin specified"); TQMap<TQString, uint>::const_iterator it; for (it=pinLabels.begin(); it!=pinLabels.end(); ++it) - if ( it.data()!=1 ) qFatal(TQString("Duplicated pin %1").arg(it.key())); + if ( it.data()!=1 ) tqFatal(TQString("Duplicated pin %1").arg(it.key())); } }; // class diff --git a/src/devices/pic/base/pic_protection.cpp b/src/devices/pic/base/pic_protection.cpp index 8fac920..3e8f4c9 100644 --- a/src/devices/pic/base/pic_protection.cpp +++ b/src/devices/pic/base/pic_protection.cpp @@ -123,7 +123,7 @@ bool Pic::Protection::extractRanges(const TQString &name, TQValueVector<Address> bool ok1; end = fromHex(regexp.cap(regexp.numCaptures()), &ok1); if ( !ok1 ) { - qDebug("Malformed end address"); + tqDebug("Malformed end address"); return true; } starts.clear(); @@ -133,11 +133,11 @@ bool Pic::Protection::extractRanges(const TQString &name, TQValueVector<Address> TQString s = (i==1 ? regexp.cap(i) : regexp.cap(i).mid(1)); Address start = fromHex(s, &ok1); if ( !ok1 ) { - qDebug("Malformed start address %s", s.latin1()); + tqDebug("Malformed start address %s", s.latin1()); return true; } if ( start>=end && (starts.count()==0 || starts[starts.count()-1]<start) ) { - qDebug("Start addresses should be ordered"); + tqDebug("Start addresses should be ordered"); return true; } starts.append(start); @@ -188,7 +188,7 @@ bool Pic::Protection::checkRange(const TQString &mask, const TQString &name) con if ( ptype!=Nb_Types ) break; } if ( ptype==Nb_Types ) { - qDebug("Unknown protected memory range"); + tqDebug("Unknown protected memory range"); return false; } // #### TODO @@ -198,13 +198,13 @@ bool Pic::Protection::checkRange(const TQString &mask, const TQString &name) con Pic::Protection::ProtectedRange Pic::Protection::extractRange(const TQString &mask, const TQString &name, bool &ok) const { Q_ASSERT( family()!=CodeGuard ); - //qDebug("extract range %s %s", mask.latin1(), name.latin1()); + //tqDebug("extract range %s %s", mask.latin1(), name.latin1()); ProtectedRange pr; ok = false; TQRegExp rexp("([A-Z]+)(?:_([0-9])|)"); if ( !rexp.exactMatch(mask) ) { - qDebug("Malformed block range"); + tqDebug("Malformed block range"); return pr; } @@ -221,7 +221,7 @@ Pic::Protection::ProtectedRange Pic::Protection::extractRange(const TQString &ma ptype = Type(k); if ( !rexp.cap(2).isEmpty() ) { if ( isBootBlock || (rtype!=MemoryRangeType::Code && rtype!=MemoryRangeType::Eeprom) ) { - qDebug("Multiple blocks only for code and eeprom"); + tqDebug("Multiple blocks only for code and eeprom"); return pr; } } @@ -230,7 +230,7 @@ Pic::Protection::ProtectedRange Pic::Protection::extractRange(const TQString &ma if ( rtype!=MemoryRangeType::Nb_Types ) break; } if ( rtype==MemoryRangeType::Nb_Types ) { - qDebug("Unknown protected memory range"); + tqDebug("Unknown protected memory range"); return pr; } @@ -244,12 +244,12 @@ Pic::Protection::ProtectedRange Pic::Protection::extractRange(const TQString &ma const MemoryRangeData &rdata = _data.range(rtype); if ( isAllProtectedValueName(name) ) { if ( rtype==MemoryRangeType::Code && !isBootBlock && bmask ) { - qDebug("Protected range should be explicit with boot block"); + tqDebug("Protected range should be explicit with boot block"); return pr; } if (isBootBlock) { if ( bsmask==0 ) { - qDebug("Protected range should be explicit when boot size not present"); + tqDebug("Protected range should be explicit when boot size not present"); return pr; } Address start = _data.range(MemoryRangeType::Code).start; @@ -258,11 +258,11 @@ Pic::Protection::ProtectedRange Pic::Protection::extractRange(const TQString &ma bool ok1; uint size = bsmask->values[k].name.toUInt(&ok1); if ( !ok1 ) { - qDebug("Could not recognize boot size value"); + tqDebug("Could not recognize boot size value"); return pr; } if ( size==0 ) { - qDebug("Boot size cannot be zero"); + tqDebug("Boot size cannot be zero"); return pr; } Address end = 2 * size - 1; // instruction words @@ -278,7 +278,7 @@ Pic::Protection::ProtectedRange Pic::Protection::extractRange(const TQString &ma return pr; } if ( isBootBlock && bsmask ) { - qDebug("Protected range should not be explicit when boot size is present"); + tqDebug("Protected range should not be explicit when boot size is present"); return pr; } @@ -286,20 +286,20 @@ Pic::Protection::ProtectedRange Pic::Protection::extractRange(const TQString &ma Address end; bool ok1; if ( !extractRanges(name, pr.starts, end, ok1) ) { - qDebug("Could not recognized explicit range"); + tqDebug("Could not recognized explicit range"); return pr; } if ( !ok1 ) return pr; if ( end>rdata.end ) { - qDebug("End is beyond memory range"); + tqDebug("End is beyond memory range"); return pr; } if ( (rtype!=MemoryRangeType::Code || isBootBlock) && (pr.starts.count()>1 || !rexp.cap(2).isEmpty() || bmask==0) ) { - qDebug("Only code with blocks and boot can have multiple protected ranges"); + tqDebug("Only code with blocks and boot can have multiple protected ranges"); return pr; } if ( isBootBlock && pr.starts[0]!=0 ) { - qDebug("Boot block start should be zero"); + tqDebug("Boot block start should be zero"); return pr; } pr.ends.append(end); @@ -307,7 +307,7 @@ Pic::Protection::ProtectedRange Pic::Protection::extractRange(const TQString &ma // check with boot block if ( pr.starts.count()>1 ) { if ( bmask==0 ) { - qDebug("No boot mask"); + tqDebug("No boot mask"); return pr; } for (uint i=0; i<uint(bmask->values.count()); i++) { @@ -316,12 +316,12 @@ Pic::Protection::ProtectedRange Pic::Protection::extractRange(const TQString &ma ProtectedRange bpr = extractRange(bmask->name, bmask->values[i].name, ok1); if ( !ok1 ) return pr; if ( bpr.ends.count()!=pr.starts.count() ) { - qDebug("Boot number of ends (%i) should be the same as code number of starts (%i)", int(bpr.ends.count()), int(pr.starts.count())); + tqDebug("Boot number of ends (%i) should be the same as code number of starts (%i)", int(bpr.ends.count()), int(pr.starts.count())); return pr; } for (uint k=0; k<uint(bpr.ends.count()); k++) { if ( bpr.ends[k]+1!=pr.starts[k] ) { - qDebug("%i: End of boot block (%s) doesn't match start of code block (%s)", k, toHexLabelAbs(bpr.ends[k]).latin1(), toHexLabelAbs(pr.starts[k]).latin1()); + tqDebug("%i: End of boot block (%s) doesn't match start of code block (%s)", k, toHexLabelAbs(bpr.ends[k]).latin1(), toHexLabelAbs(pr.starts[k]).latin1()); return pr; } } diff --git a/src/devices/pic/gui/pic_config_editor.cpp b/src/devices/pic/gui/pic_config_editor.cpp index 4b70c3d..230d65f 100644 --- a/src/devices/pic/gui/pic_config_editor.cpp +++ b/src/devices/pic/gui/pic_config_editor.cpp @@ -32,9 +32,9 @@ Pic::MemoryConfigEditorWidget::MemoryConfigEditorWidget(Memory &memory, bool wit } for(uint i=0; i<nbWords; ++i) { - //qDebug("BinWordsEditor for config word #%i", i); + //tqDebug("BinWordsEditor for config word #%i", i); //uint address = device().range(Device::MemoryConfig).start + device().addressIncrement(Device::MemoryConfig) * i; - //qDebug("address: %s %s nb: %i", toHex(address, 8).data(), device().configWord(i).name.latin1(), device().configWord(i).masks.count()); + //tqDebug("address: %s %s nb: %i", toHex(address, 8).data(), device().configWord(i).name.latin1(), device().configWord(i).masks.count()); if ( device().config()._words[i].masks.count()==0 ) continue; TQWidget *page = 0; if ( nbWords>1 ) { diff --git a/src/devices/pic/gui/pic_config_word_editor.cpp b/src/devices/pic/gui/pic_config_word_editor.cpp index 39430ca..0931076 100644 --- a/src/devices/pic/gui/pic_config_word_editor.cpp +++ b/src/devices/pic/gui/pic_config_word_editor.cpp @@ -156,14 +156,14 @@ void Pic::ConfigWordEditor::setReadOnly(bool readOnly) void Pic::ConfigWordEditor::slotModified() { BitValue v = memory().word(MemoryRangeType::Config, _configIndex); - //qDebug("BinWordEditor::slotModified %i: %s", _configIndex, toHex(v, 4).data()); + //tqDebug("BinWordEditor::slotModified %i: %s", _configIndex, toHex(v, 4).data()); for (uint k=0; k<_combos.count(); k++) { const Config::Mask &cmask = device().config()._words[_configIndex].masks[k]; v = v.clearMaskBits(cmask.value); v |= cmask.values[_combos[k]->index()].value; // set value } memory().setWord(MemoryRangeType::Config, _configIndex, v); - //qDebug(" now: %s", toHex(v, 4).data()); + //tqDebug(" now: %s", toHex(v, 4).data()); if (_mdb) _mdb->updateDisplay(); emit modified(); } @@ -172,7 +172,7 @@ void Pic::ConfigWordEditor::updateDisplay() { BitValue v = memory().word(MemoryRangeType::Config, _configIndex); uint nbChars = device().nbCharsWord(MemoryRangeType::Config); - //qDebug("BinWordEditor::updateDisplay %i: %s", _configIndex, toHex(v, 4).data()); + //tqDebug("BinWordEditor::updateDisplay %i: %s", _configIndex, toHex(v, 4).data()); for (uint k=0; k<_combos.count(); k++) { const Config::Mask &cmask = device().config()._words[_configIndex].masks[k]; for (int i=cmask.values.count()-1; i>=0; i--) { diff --git a/src/devices/pic/pic/pic_memory.cpp b/src/devices/pic/pic/pic_memory.cpp index 5ffb663..c7071be 100644 --- a/src/devices/pic/pic/pic_memory.cpp +++ b/src/devices/pic/pic/pic_memory.cpp @@ -85,7 +85,7 @@ BitValue Pic::Memory::normalizedWord(MemoryRangeType type, uint offset) const void Pic::Memory::setWord(MemoryRangeType type, uint offset, BitValue value) { - if ( offset>=_ranges[type].size() ) qDebug("Memory::setWord: type=%s offset=%s size=%s value=%s", type.key(), toHexLabelAbs(offset).latin1(), toHexLabelAbs(_ranges[type].size()).latin1(), toHexLabelAbs(value).latin1()); + if ( offset>=_ranges[type].size() ) tqDebug("Memory::setWord: type=%s offset=%s size=%s value=%s", type.key(), toHexLabelAbs(offset).latin1(), toHexLabelAbs(_ranges[type].size()).latin1(), toHexLabelAbs(value).latin1()); CRASH_ASSERT( offset<_ranges[type].size() ); _ranges[type][offset] = value; } @@ -204,7 +204,7 @@ AddressRangeVector Pic::Memory::protectedRanges(Protection::Type ptype, MemoryRa if ( protection.family()!=Protection::CodeGuard ) { TQString maskName = protection.maskName(ptype, type); TQString value = findValue(maskName); - //qDebug("%s %s", maskName.latin1(), value.latin1()); + //tqDebug("%s %s", maskName.latin1(), value.latin1()); if ( !value.isEmpty() ) { AddressRangeVector tmp = protection.extractRanges(value, type); Q_ASSERT( tmp.count()==1 ); @@ -336,9 +336,9 @@ BitValue Pic::Memory::checksum() const bool isProtected = !rv.isEmpty(); uint inc = device().addressIncrement(MemoryRangeType::Code); //uint nbChars = device().nbCharsWord(MemoryRangeType::Code); - //qDebug("protected: %i nb: %s (%s)", isProtected, toHexLabelAbs(inc*device().nbWords(MemoryRangeType::Code)).latin1(), toHexLabel(mask, nbChars).latin1()); + //tqDebug("protected: %i nb: %s (%s)", isProtected, toHexLabelAbs(inc*device().nbWords(MemoryRangeType::Code)).latin1(), toHexLabel(mask, nbChars).latin1()); //for (uint i=0; i<rv.count(); i++) - // qDebug("protected: %s:%s", toHex(rv[i].start, nbChars).latin1(), toHex(rv[i].end, nbChars).latin1()); + // tqDebug("protected: %s:%s", toHex(rv[i].start, nbChars).latin1(), toHex(rv[i].end, nbChars).latin1()); if ( isProtected && (device().architecture()==Pic::Architecture::P18J || device().architecture()==Pic::Architecture::P24F) ) return 0x0000; Checksum::Algorithm algorithm = Checksum::Algorithm::Normal; @@ -353,12 +353,12 @@ BitValue Pic::Memory::checksum() const cs = checksums[valueName].constant; } } - //qDebug("constant: %s", toHexLabelAbs(cs).data()); - //qDebug("algo: %s", Checksum::ALGORITHM_DATA[algorithm].name); + //tqDebug("constant: %s", toHexLabelAbs(cs).data()); + //tqDebug("algo: %s", Checksum::ALGORITHM_DATA[algorithm].name); for (uint i=0; i<device().nbWords(MemoryRangeType::Code); i++) { if ( algorithm==Checksum::Algorithm::Normal && rv.contains(inc*i) ) continue; BitValue v = word(MemoryRangeType::Code, i).maskWith(mask); - //if ( i==0 || i==device().nbWords(MemoryRangeType::Code)-1 ) qDebug("%s %s", toHexLabel(i, 4).latin1(), toHexLabel(v, 4).latin1()); + //if ( i==0 || i==device().nbWords(MemoryRangeType::Code)-1 ) tqDebug("%s %s", toHexLabel(i, 4).latin1(), toHexLabel(v, 4).latin1()); switch (device().architecture().type()) { case Architecture::P10X: case Architecture::P16X: @@ -387,19 +387,19 @@ BitValue Pic::Memory::checksum() const case Architecture::Nb_Types: Q_ASSERT(false); break; } } - //qDebug("after code: %s", toHexLabelAbs(cs).latin1()); + //tqDebug("after code: %s", toHexLabelAbs(cs).latin1()); // config const Config &config = device().config(); for (uint i=0; i<uint(config._words.count()); i++) { const Config::Word &cword = config._words[i]; BitValue v = word(MemoryRangeType::Config, i).maskWith(cword.cmask); //uint nbChars = device().nbCharsWord(MemoryRangeType::Config); - // qDebug("%i: %s %s", i, toHex(word(MemoryRangeType::Config, i), nbChars).latin1(), toHex(cword.cmask, nbChars).latin1()); + // tqDebug("%i: %s %s", i, toHex(word(MemoryRangeType::Config, i), nbChars).latin1(), toHex(cword.cmask, nbChars).latin1()); if ( ( device().name()=="16C61" || device().name()=="16C71" ) && isProtected ) cs += v | 0x0060; else if ( device().is16bitFamily() ) cs += v.byte(0) + v.byte(1); else cs += v; } - //qDebug("after config: %s", toHexLabelAbs(cs).latin1()); + //tqDebug("after config: %s", toHexLabelAbs(cs).latin1()); // user ids if ( isProtected && device().isPresent(MemoryRangeType::UserId) && !device().is16bitFamily() && algorithm==Checksum::Algorithm::Normal ) { BitValue id = 0x0; @@ -408,14 +408,14 @@ BitValue Pic::Memory::checksum() const BitValue v = word(MemoryRangeType::UserId, nb-i-1).maskWith(0xF); if ( device().is18Family() ) id += v; else { - // qDebug("id %i (%i): %s %s", i, nbb, toHex(v, 4).latin1(), toHex(v << (nbb*i), 9).latin1()); + // tqDebug("id %i (%i): %s %s", i, nbb, toHex(v, 4).latin1(), toHex(v << (nbb*i), 9).latin1()); id += v << (4*i); } } - //qDebug("id %s", toHexLabelAbs(id).latin1()); + //tqDebug("id %s", toHexLabelAbs(id).latin1()); cs += id; } - //qDebug("checksum: %s %s", toHexLabelAbs(cs).latin1(), toHex(cs & 0xFFFF, 4).latin1()); + //tqDebug("checksum: %s %s", toHexLabelAbs(cs).latin1(), toHex(cs & 0xFFFF, 4).latin1()); return cs.maskWith(0xFFFF); } @@ -471,11 +471,11 @@ void Pic::Memory::toHexBuffer(MemoryRangeType type, HexBuffer &hb) const uint byte = 0; uint wOffset = 0; uint wByte = 0; - //qDebug("%s wnb=%i snb=%i div=%i", MEMORY_RANGE_TYPE_DATA[type].label, wNbBytes, sNbBytes, div); + //tqDebug("%s wnb=%i snb=%i div=%i", MEMORY_RANGE_TYPE_DATA[type].label, wNbBytes, sNbBytes, div); for (uint k=0; k<wNbBytes*device().nbWords(type); k++) { // set byte BitValue s = _ranges[type][wOffset].maskWith(mask); - //if ( k<4 ) qDebug("s=%s so=%s sb=%i wo=%i wb=%i", toHex(s, 8).data(), toHex(sOffset, 8).data(), sByte, wOffset, wByte); + //if ( k<4 ) tqDebug("s=%s so=%s sb=%i wo=%i wb=%i", toHex(s, 8).data(), toHex(sOffset, 8).data(), sByte, wOffset, wByte); s = s.byte(wByte); if ( (byte%2)==0 ) hb.insert(offset, s); else hb.insert(offset, hb[offset] | (s << ((byte%2)*8))); @@ -517,11 +517,11 @@ void Pic::Memory::fromHexBuffer(MemoryRangeType type, const HexBuffer &hb, Warni uint byte = 0; uint wOffset = 0; uint wByte = 0; - //qDebug("%s wnb=%i snb=%i", MEMORY_RANGE_TYPE_DATA[type].label, wNbBytes, nbBytes); + //tqDebug("%s wnb=%i snb=%i", MEMORY_RANGE_TYPE_DATA[type].label, wNbBytes, nbBytes); for (uint k=0; k<wNbBytes*device().nbWords(type); k++) { // set byte BitValue s = hb[offset]; - //if ( k<4 ) qDebug("s=%s so=%s sb=%i wo=%i wb=%i", toHex(s, 8).data(), toHex(offset, 8).data(), byte, wOffset, wByte); + //if ( k<4 ) tqDebug("s=%s so=%s sb=%i wo=%i wb=%i", toHex(s, 8).data(), toHex(offset, 8).data(), byte, wOffset, wByte); if ( !s.isInitialized() ) { if ( type==MemoryRangeType::Config ) _ranges[type][wOffset] = mask; else _ranges[type][wOffset] = BitValue(); diff --git a/src/devices/pic/xml/pic_xml_to_data.cpp b/src/devices/pic/xml/pic_xml_to_data.cpp index 9c14879..7cb573e 100644 --- a/src/devices/pic/xml/pic_xml_to_data.cpp +++ b/src/devices/pic/xml/pic_xml_to_data.cpp @@ -29,11 +29,11 @@ bool getVoltages(ProgVoltageType type, TQDomElement element) data()->_voltages[type].min = voltages.attribute("min").toDouble(&ok1); data()->_voltages[type].max = voltages.attribute("max").toDouble(&ok2); data()->_voltages[type].nominal = voltages.attribute("nominal").toDouble(&ok3); - if ( !ok1 || !ok2 || !ok3 ) qFatal(TQString("Cannot extract voltage value for \"%1\"").arg(type.key())); + if ( !ok1 || !ok2 || !ok3 ) tqFatal(TQString("Cannot extract voltage value for \"%1\"").arg(type.key())); if ( data()->_voltages[type].min>data()->_voltages[type].max || data()->_voltages[type].nominal<data()->_voltages[type].min || data()->_voltages[type].nominal>data()->_voltages[type].max ) - qFatal("Inconsistent voltages order"); + tqFatal("Inconsistent voltages order"); return true; } @@ -45,46 +45,46 @@ bool getMemoryRange(MemoryRangeType type, TQDomElement element) bool ok; uint nbCharsAddress = data()->nbCharsAddress(); data()->_ranges[type].start = fromHexLabel(range.attribute("start"), nbCharsAddress, &ok); - if ( !ok ) qFatal("Cannot extract start address"); + if ( !ok ) tqFatal("Cannot extract start address"); data()->_ranges[type].end = fromHexLabel(range.attribute("end"), nbCharsAddress, &ok); - if ( !ok ) qFatal("Cannot extract end address"); - if ( data()->_ranges[type].end<data()->_ranges[type].start ) qFatal("Memory range end is before its start"); + if ( !ok ) tqFatal("Cannot extract end address"); + if ( data()->_ranges[type].end<data()->_ranges[type].start ) tqFatal("Memory range end is before its start"); uint nbCharsWord = data()->nbCharsWord(type); - if ( data()->nbBitsWord(type)==0 ) qFatal(TQString("Architecture doesn't contain memory range %1").arg(type.key())); + if ( data()->nbBitsWord(type)==0 ) tqFatal(TQString("Architecture doesn't contain memory range %1").arg(type.key())); if ( type==MemoryRangeType::UserId ) { data()->_userIdRecommendedMask = fromHexLabel(range.attribute("rmask"), nbCharsWord, &ok); - if ( !ok ) qFatal("Cannot extract rmask value for user id"); - if ( !data()->_userIdRecommendedMask.isInside(data()->mask(type)) ) qFatal(TQString("rmask is not inside mask %1 (%2)").arg(toHexLabel(data()->_userIdRecommendedMask, 8)).arg(toHexLabel(data()->mask(type), 8))); + if ( !ok ) tqFatal("Cannot extract rmask value for user id"); + if ( !data()->_userIdRecommendedMask.isInside(data()->mask(type)) ) tqFatal(TQString("rmask is not inside mask %1 (%2)").arg(toHexLabel(data()->_userIdRecommendedMask, 8)).arg(toHexLabel(data()->mask(type), 8))); } if ( range.attribute("hexfile_offset")!="?" ) { data()->_ranges[type].properties |= Programmable; if ( !range.attribute("hexfile_offset").isEmpty() ) { data()->_ranges[type].hexFileOffset = fromHexLabel(range.attribute("hexfile_offset"), nbCharsAddress, &ok); - if ( !ok ) qFatal("Cannot extract hexfile_offset"); + if ( !ok ) tqFatal("Cannot extract hexfile_offset"); } } if ( type==MemoryRangeType::Cal && !data()->is18Family() ) { data()->_calibration.opcodeMask = fromHexLabel(range.attribute("cal_opmask"), nbCharsWord, &ok); - if ( !ok ) qFatal("Cannot extract calibration opcode mask"); + if ( !ok ) tqFatal("Cannot extract calibration opcode mask"); data()->_calibration.opcode = fromHexLabel(range.attribute("cal_opcode"), nbCharsWord, &ok); - if ( !ok ) qFatal("Cannot extract calibration opcode"); - if ( !data()->_calibration.opcode.isInside(data()->_calibration.opcodeMask) ) qFatal("Calibration opcode should be inside opcode mask"); - if ( !data()->_calibration.opcodeMask.isInside(data()->mask(type)) ) qFatal("Calibration mask should be inside opcode mask"); + if ( !ok ) tqFatal("Cannot extract calibration opcode"); + if ( !data()->_calibration.opcode.isInside(data()->_calibration.opcodeMask) ) tqFatal("Calibration opcode should be inside opcode mask"); + if ( !data()->_calibration.opcodeMask.isInside(data()->mask(type)) ) tqFatal("Calibration mask should be inside opcode mask"); } TQString wwa = range.attribute("word_write_align"); TQString wea = range.attribute("word_erase_align"); if ( type==MemoryRangeType::Code ) { if ( data()->_architecture==Architecture::P18F || data()->_architecture==Architecture::P18J ) { data()->_nbWordsCodeWrite = wwa.toUInt(&ok); - if ( !ok || data()->_nbWordsCodeWrite==0 || (data()->_nbWordsCodeWrite%4)!=0 ) qFatal("Missing or malformed word write align"); + if ( !ok || data()->_nbWordsCodeWrite==0 || (data()->_nbWordsCodeWrite%4)!=0 ) tqFatal("Missing or malformed word write align"); data()->_nbWordsCodeRowErase = wea.toUInt(&ok); - if ( !ok || (data()->_nbWordsCodeRowErase%4)!=0 ) qFatal("Missing or malformed word erase align"); + if ( !ok || (data()->_nbWordsCodeRowErase%4)!=0 ) tqFatal("Missing or malformed word erase align"); } else { - if ( !wwa.isEmpty() || !wea.isEmpty() ) qFatal("word align should not be defined for this device family/subfamily"); + if ( !wwa.isEmpty() || !wea.isEmpty() ) tqFatal("word align should not be defined for this device family/subfamily"); data()->_nbWordsCodeWrite = 0; // #### TODO data()->_nbWordsCodeRowErase = 0; // #### TODO } - } else if ( !wwa.isEmpty() || !wea.isEmpty() ) qFatal("word align should not be defined for this memory range"); + } else if ( !wwa.isEmpty() || !wea.isEmpty() ) tqFatal("word align should not be defined for this memory range"); return true; } @@ -100,35 +100,35 @@ void processName(const Pic::Config::Mask &cmask, BitValue pmask, Pic::Config::Va TQStringList &cnames = cvalue.configNames[Pic::ConfigNameType::Default]; if ( cvalue.name=="invalid" ) { cvalue.name = TQString(); - if ( !cnames.isEmpty() ) qFatal(TQString("No cname should be defined for invalid value in mask %1").arg(cmask.name)); + if ( !cnames.isEmpty() ) tqFatal(TQString("No cname should be defined for invalid value in mask %1").arg(cmask.name)); return; } - if ( cvalue.name.isEmpty() ) qFatal(TQString("Empty value name in mask %1").arg(cmask.name)); + if ( cvalue.name.isEmpty() ) tqFatal(TQString("Empty value name in mask %1").arg(cmask.name)); if ( cmask.value.isInside(pmask) ) { // protected bits - if ( !cnames.isEmpty() ) qFatal(TQString("Config name should be null for protected config mask \"%1\"").arg(cmask.name)); + if ( !cnames.isEmpty() ) tqFatal(TQString("Config name should be null for protected config mask \"%1\"").arg(cmask.name)); } else { if ( cnames.isEmpty() && cmask.name!="BSSEC" && cmask.name!="BSSIZ" && cmask.name!="SSSEC" && cmask.name!="SSSIZ" ) { // ### FIXME: 18J 24H 30F1010/202X if ( data()->architecture()!=Pic::Architecture::P18J && data()->architecture()!=Pic::Architecture::P24H && data()->architecture()!=Pic::Architecture::P24F && data()->architecture()!=Pic::Architecture::P33F && data()->name()!="30F1010" && data()->name()!="30F2020" && data()->name()!="30F2023" ) - qFatal(TQString("cname not defined for \"%1\" (%2)").arg(cvalue.name).arg(cmask.name)); + tqFatal(TQString("cname not defined for \"%1\" (%2)").arg(cvalue.name).arg(cmask.name)); } if ( cnames.count()==1 && cnames[0]=="_" ) cnames.clear(); for (uint i=0; i<uint(cnames.count()); i++) { if ( cnames[i].startsWith("0x") ) { - if ( cnames.count()!=1 ) qFatal("Hex cname cannot be combined"); + if ( cnames.count()!=1 ) tqFatal("Hex cname cannot be combined"); bool ok; BitValue v = fromHexLabel(cnames[i], &ok); uint nbChars = data()->nbCharsWord(MemoryRangeType::Config); BitValue mask = cmask.value.complementInMask(maxValue(NumberBase::Hex, nbChars)); if ( ok && v==(mask | cvalue.value) ) continue; } else if ( XOR(cnames[i].startsWith("_"), data()->architecture()==Pic::Architecture::P30F) ) continue; - qFatal(TQString("Invalid config name for \"%1\"/\"%2\"").arg(cmask.name).arg(cvalue.name)); + tqFatal(TQString("Invalid config name for \"%1\"/\"%2\"").arg(cmask.name).arg(cvalue.name)); } TQStringList &ecnames = cvalue.configNames[Pic::ConfigNameType::Extra]; for (uint i=0; i<uint(ecnames.count()); i++) - if ( ecnames[i][0]!='_' ) qFatal(TQString("Invalid extra config name for %1").arg(cvalue.name)); + if ( ecnames[i][0]!='_' ) tqFatal(TQString("Invalid extra config name for %1").arg(cvalue.name)); } } @@ -140,30 +140,30 @@ Pic::Config::Mask toConfigMask(TQDomElement mask, BitValue pmask) TQMap<Pic::ConfigNameType, TQStringList> defConfigNames; Config::Mask cmask; cmask.name = mask.attribute("name"); - if ( !Config::hasMaskName(cmask.name) ) qFatal(TQString("Unknown mask name %1").arg(cmask.name)); + if ( !Config::hasMaskName(cmask.name) ) tqFatal(TQString("Unknown mask name %1").arg(cmask.name)); cmask.value = fromHexLabel(mask.attribute("value"), nbChars, &ok); if ( !ok || cmask.value==0 || cmask.value>data()->mask(MemoryRangeType::Config) ) - qFatal(TQString("Malformed mask value in mask %1").arg(mask.attribute("name"))); + tqFatal(TQString("Malformed mask value in mask %1").arg(mask.attribute("name"))); //TQStringList names; TQDomNode child = mask.firstChild(); while ( !child.isNull() ) { TQDomElement value = child.toElement(); child = child.nextSibling(); if ( value.isNull() ) continue; - if ( value.nodeName()!="value" ) qFatal(TQString("Non value child in mask %1").arg(cmask.name)); + if ( value.nodeName()!="value" ) tqFatal(TQString("Non value child in mask %1").arg(cmask.name)); if ( value.attribute("value")=="default" ) { - if ( !defName.isEmpty() ) qFatal(TQString("Default value already defined for mask %1").arg(cmask.name)); + if ( !defName.isEmpty() ) tqFatal(TQString("Default value already defined for mask %1").arg(cmask.name)); defName = value.attribute("name"); - //if ( names.contains(defName) ) qFatal(TQString("Value name duplicated in mask %1").arg(cmask.name)); + //if ( names.contains(defName) ) tqFatal(TQString("Value name duplicated in mask %1").arg(cmask.name)); //names.append(defName); FOR_EACH(Pic::ConfigNameType, type) defConfigNames[type] = TQStringList::split(' ', value.attribute(type.data().key)); continue; } Config::Value cvalue; cvalue.value = fromHexLabel(value.attribute("value"), nbChars, &ok); - if ( !ok || !cvalue.value.isInside(cmask.value) ) qFatal(TQString("Malformed value in mask %1").arg(cmask.name)); + if ( !ok || !cvalue.value.isInside(cmask.value) ) tqFatal(TQString("Malformed value in mask %1").arg(cmask.name)); cvalue.name = value.attribute("name"); - //if ( names.contains(cvalue.name) ) qFatal(TQString("Value name duplicated in mask %1").arg(cmask.name)); + //if ( names.contains(cvalue.name) ) tqFatal(TQString("Value name duplicated in mask %1").arg(cmask.name)); //names.append(cvalue.name); FOR_EACH(Pic::ConfigNameType, type) cvalue.configNames[type] = TQStringList::split(' ', value.attribute(type.data().key)); processName(cmask, pmask, cvalue); @@ -183,7 +183,7 @@ Pic::Config::Mask toConfigMask(TQDomElement mask, BitValue pmask) processName(cmask, pmask, cvalue); cmask.values.append(cvalue); } - if ( nb<=1 ) qFatal(TQString("Default value used less than twice in mask %1").arg(cmask.name)); + if ( nb<=1 ) tqFatal(TQString("Default value used less than twice in mask %1").arg(cmask.name)); } qHeapSort(cmask.values); return cmask; @@ -194,34 +194,34 @@ Pic::Config::Word toConfigWord(TQDomElement config) uint nbChars = data()->nbCharsWord(MemoryRangeType::Config); Config::Word cword; cword.name = config.attribute("name"); - if ( cword.name.isNull() ) qFatal("Config word name not specified."); + if ( cword.name.isNull() ) tqFatal("Config word name not specified."); bool ok; cword.wmask = fromHexLabel(config.attribute("wmask"), nbChars, &ok); BitValue gmask = data()->mask(MemoryRangeType::Config); - if ( !ok || cword.wmask>gmask ) qFatal(TQString("Missing or malformed config wmask \"%1\"").arg(config.attribute("wmask"))); + if ( !ok || cword.wmask>gmask ) tqFatal(TQString("Missing or malformed config wmask \"%1\"").arg(config.attribute("wmask"))); cword.bvalue = fromHexLabel(config.attribute("bvalue"), nbChars, &ok); - if ( !ok ) qFatal(TQString("Missing or malformed config bvalue \"%1\"").arg(config.attribute("bvalue"))); + if ( !ok ) tqFatal(TQString("Missing or malformed config bvalue \"%1\"").arg(config.attribute("bvalue"))); if ( config.attribute("pmask").isEmpty() ) cword.pmask = 0; else { bool ok; cword.pmask = fromHexLabel(config.attribute("pmask"), nbChars, &ok); - if ( !ok || cword.pmask>gmask ) qFatal("Missing or malformed config pmask"); + if ( !ok || cword.pmask>gmask ) tqFatal("Missing or malformed config pmask"); } cword.ignoredCNames = TQStringList::split(' ', config.attribute("icnames")); for (uint i=0; i<uint(cword.ignoredCNames.count()); i++) - if ( cword.ignoredCNames[i][0]!='_' ) qFatal(TQString("Invalid ignored config name for %1").arg(cword.name)); + if ( cword.ignoredCNames[i][0]!='_' ) tqFatal(TQString("Invalid ignored config name for %1").arg(cword.name)); TQDomNode child = config.firstChild(); while ( !child.isNull() ) { TQDomElement mask = child.toElement(); child = child.nextSibling(); if ( mask.isNull() ) continue; - if ( mask.nodeName()!="mask" ) qFatal(TQString("Non mask child in config %1").arg(cword.name)); - if ( mask.attribute("name").isEmpty() ) qFatal(TQString("Empty mask name in config %1").arg(cword.name)); + if ( mask.nodeName()!="mask" ) tqFatal(TQString("Non mask child in config %1").arg(cword.name)); + if ( mask.attribute("name").isEmpty() ) tqFatal(TQString("Empty mask name in config %1").arg(cword.name)); Config::Mask cmask = toConfigMask(mask, cword.pmask); - if ( !cmask.value.isInside(gmask) ) qFatal(TQString("Mask value not inside mask in config %1").arg(cword.name)); + if ( !cmask.value.isInside(gmask) ) tqFatal(TQString("Mask value not inside mask in config %1").arg(cword.name)); for (uint i=0; i<uint(cword.masks.count()); i++) { - if ( cword.masks[i].name==cmask.name ) qFatal(TQString("Duplicated mask name %1 in config %2").arg(cmask.name).arg(cword.name)); - if ( cmask.value.isOverlapping(cword.masks[i].value) ) qFatal(TQString("Overlapping masks in config %1").arg(cword.name)); + if ( cword.masks[i].name==cmask.name ) tqFatal(TQString("Duplicated mask name %1 in config %2").arg(cmask.name).arg(cword.name)); + if ( cmask.value.isOverlapping(cword.masks[i].value) ) tqFatal(TQString("Overlapping masks in config %1").arg(cword.name)); } cword.masks.append(cmask); } @@ -233,11 +233,11 @@ Pic::Config::Word toConfigWord(TQDomElement config) } else { bool ok; cword.cmask = fromHexLabel(config.attribute("cmask"), nbChars, &ok); - if ( !ok || cword.cmask>gmask ) qFatal("Missing or malformed config cmask"); - //if ( data()->_architecture==Pic::Architecture::P30X &&cword.cmask==cword.wmask ) qFatal(TQString("Redundant cmask in %1").arg(cword.name)); - if ( cword.cmask==mask ) qFatal(TQString("Redundant cmask in %1").arg(cword.name)); + if ( !ok || cword.cmask>gmask ) tqFatal("Missing or malformed config cmask"); + //if ( data()->_architecture==Pic::Architecture::P30X &&cword.cmask==cword.wmask ) tqFatal(TQString("Redundant cmask in %1").arg(cword.name)); + if ( cword.cmask==mask ) tqFatal(TQString("Redundant cmask in %1").arg(cword.name)); } - if ( !cword.pmask.isInside(cword.usedMask()) ) qFatal("pmask should be inside or'ed mask values."); + if ( !cword.pmask.isInside(cword.usedMask()) ) tqFatal("pmask should be inside or'ed mask values."); return cword; } @@ -252,14 +252,14 @@ TQValueVector<Pic::Config::Word> getConfigWords(TQDomElement element) if ( config.isNull() || config.nodeName()!="config" ) continue; bool ok; uint offset = fromHexLabel(config.attribute("offset"), 1, &ok); - if ( !ok ) qFatal("Missing or malformed config offset"); - if ( (offset % data()->addressIncrement(MemoryRangeType::Config))!=0 ) qFatal("Config offset not aligned"); + if ( !ok ) tqFatal("Missing or malformed config offset"); + if ( (offset % data()->addressIncrement(MemoryRangeType::Config))!=0 ) tqFatal("Config offset not aligned"); offset /= data()->addressIncrement(MemoryRangeType::Config); - if ( offset>=nbWords ) qFatal(TQString("Offset too big %1/%2").arg(offset).arg(nbWords)); - if ( !configWords[offset].name.isNull() ) qFatal(TQString("Config offset %1 is duplicated").arg(offset)); + if ( offset>=nbWords ) tqFatal(TQString("Offset too big %1/%2").arg(offset).arg(nbWords)); + if ( !configWords[offset].name.isNull() ) tqFatal(TQString("Config offset %1 is duplicated").arg(offset)); for (uint i=0; i<nbWords; i++) { if ( !configWords[i].name.isNull() && configWords[i].name==config.attribute("name") ) - qFatal(TQString("Duplicated config name %1").arg(configWords[i].name)); + tqFatal(TQString("Duplicated config name %1").arg(configWords[i].name)); } configWords[offset] = toConfigWord(config); } @@ -279,40 +279,40 @@ TQString getChecksumData(TQDomElement checksum) bool ok; uint nb = valueName.toUInt(&ok); uint max = (protection.hasBootBlock() ? 1 : 0) + protection.nbBlocks(); - if ( !ok || nb>max ) qFatal("Invalid number of protected blocks for checksum"); + if ( !ok || nb>max ) tqFatal("Invalid number of protected blocks for checksum"); if ( nb>0 ) cdata.protectedMaskNames += "CPB"; for (uint i=1; i<nb; i++) cdata.protectedMaskNames += "CP_" + TQString::number(i-1); cdata.bbsize = checksum.attribute("bbsize"); const Config::Mask *mask = data()->_config->findMask(protection.bootSizeMaskName()); if ( mask==0 ) { - if ( !cdata.bbsize.isEmpty() ) qFatal("Device does not have a variable boot size (no \"bbsize\" allowed in checksum)"); + if ( !cdata.bbsize.isEmpty() ) tqFatal("Device does not have a variable boot size (no \"bbsize\" allowed in checksum)"); } else if ( cdata.bbsize.isEmpty() ) { - if ( nb==1 ) qFatal("\"bbsize\" should be define in checksum for \"protected_blocks\"==1"); + if ( nb==1 ) tqFatal("\"bbsize\" should be define in checksum for \"protected_blocks\"==1"); } else { const Config::Value *value = data()->_config->findValue(protection.bootSizeMaskName(), cdata.bbsize); - if ( value==0 ) qFatal("Invalid \"bbsize\" in checksum"); + if ( value==0 ) tqFatal("Invalid \"bbsize\" in checksum"); valueName += "_" + cdata.bbsize; } } else { valueName = checksum.attribute("protected"); if ( protection.family()==Protection::NoProtection && !valueName.isEmpty() ) - qFatal("Checksum protected attribute for device with no code protection"); + tqFatal("Checksum protected attribute for device with no code protection"); } - if ( data()->_checksums.contains(valueName) ) qFatal("Duplicate checksum protected range"); + if ( data()->_checksums.contains(valueName) ) tqFatal("Duplicate checksum protected range"); TQString s = checksum.attribute("constant"); if ( s.isEmpty() ) cdata.constant = 0x0000; else { bool ok; cdata.constant = fromHexLabel(s, 4, &ok); - if ( !ok ) qFatal("Malformed checksum constant"); + if ( !ok ) tqFatal("Malformed checksum constant"); } s = checksum.attribute("type"); if ( s.isEmpty() ) cdata.algorithm = Checksum::Algorithm::Normal; else { cdata.algorithm = Checksum::Algorithm::fromKey(s); - if ( cdata.algorithm==Checksum::Algorithm::Nb_Types ) qFatal("Unrecognized checksum algorithm"); + if ( cdata.algorithm==Checksum::Algorithm::Nb_Types ) tqFatal("Unrecognized checksum algorithm"); } s = checksum.attribute("mprotected"); @@ -320,32 +320,32 @@ TQString getChecksumData(TQDomElement checksum) TQStringList list = TQStringList::split(" ", s); for (uint i=0; i<uint(list.count()); i++) { const Config::Mask *mask = data()->config().findMask(list[i]); - if ( mask==0 ) qFatal(TQString("Not valid mask name for \"protected\" tag in checksum: %1").arg(list[i])); + if ( mask==0 ) tqFatal(TQString("Not valid mask name for \"protected\" tag in checksum: %1").arg(list[i])); if ( mask->values.count()==2 ) continue; for (uint k=0; k<uint(mask->values.count()); k++) { TQString valueName = mask->values[k].name; if ( valueName.isEmpty() ) continue; if ( !protection.isNoneProtectedValueName(valueName) && !protection.isAllProtectedValueName(valueName) ) - qFatal(TQString("Not switch protection from mask name for \"protected\" tag in checksum: %1").arg(list[i])); + tqFatal(TQString("Not switch protection from mask name for \"protected\" tag in checksum: %1").arg(list[i])); } } cdata.protectedMaskNames = list; } s = checksum.attribute("bchecksum"); - if ( s.isEmpty() ) qFatal("No blank checksum"); + if ( s.isEmpty() ) tqFatal("No blank checksum"); else { bool ok; cdata.blankChecksum = fromHexLabel(s, 4, &ok); - if ( !ok ) qFatal("Malformed blank checksum"); + if ( !ok ) tqFatal("Malformed blank checksum"); } s = checksum.attribute("cchecksum"); - if ( s.isEmpty() ) qFatal("No check checksum"); + if ( s.isEmpty() ) tqFatal("No check checksum"); else { bool ok; cdata.checkChecksum = fromHexLabel(s, 4, &ok); - if ( !ok ) qFatal("Malformed check checksum"); + if ( !ok ) tqFatal("Malformed check checksum"); } data()->_checksums[valueName] = cdata; @@ -358,24 +358,24 @@ virtual void processDevice(TQDomElement device) TQString arch = device.attribute("architecture"); data()->_architecture = Architecture::fromKey(arch); - if ( data()->_architecture==Architecture::Nb_Types ) qFatal(TQString("Unrecognized architecture \"%1\"").arg(arch)); + if ( data()->_architecture==Architecture::Nb_Types ) tqFatal(TQString("Unrecognized architecture \"%1\"").arg(arch)); if ( (data()->_architecture==Architecture::P18F && data()->_name.contains("C")) - || (data()->_architecture==Architecture::P18F && data()->_name.contains("J")) ) qFatal("Not matching family"); + || (data()->_architecture==Architecture::P18F && data()->_name.contains("J")) ) tqFatal("Not matching family"); bool ok; TQString pc = device.attribute("pc"); data()->_nbBitsPC = data()->_architecture.data().nbBitsPC; if ( data()->_nbBitsPC==0 ) { data()->_nbBitsPC = pc.toUInt(&ok); - if ( !ok || data()->_nbBitsPC==0 ) qFatal("Malformed or missing PC"); - } else if ( !pc.isEmpty() ) qFatal("No PC should be provided for this device architecture"); + if ( !ok || data()->_nbBitsPC==0 ) tqFatal("Malformed or missing PC"); + } else if ( !pc.isEmpty() ) tqFatal("No PC should be provided for this device architecture"); TQString sw = device.attribute("self_write"); data()->_selfWrite = (data()->_memoryTechnology!=Device::MemoryTechnology::Flash ? SelfWrite::No : data()->_architecture.data().selfWrite); if ( data()->_selfWrite==SelfWrite::Nb_Types ) { data()->_selfWrite = SelfWrite::fromKey(sw); - if ( data()->_selfWrite==SelfWrite::Nb_Types ) qFatal("Malformed or missing self-write field"); - } else if ( !sw.isEmpty() ) qFatal("Self-write is set for the whole family or non-flash device"); + if ( data()->_selfWrite==SelfWrite::Nb_Types ) tqFatal("Malformed or missing self-write field"); + } else if ( !sw.isEmpty() ) tqFatal("Self-write is set for the whole family or non-flash device"); // device ids FOR_EACH(Device::Special, special) { @@ -385,7 +385,7 @@ virtual void processDevice(TQDomElement device) if ( special==Device::Special::Normal ) data()->_ids[special] = 0x0000; } else { data()->_ids[special] = fromHexLabel(id, 4, &ok); - if ( !ok ) qFatal("Malformed id"); + if ( !ok ) tqFatal("Malformed id"); } } @@ -396,16 +396,16 @@ virtual void processDevice(TQDomElement device) if ( !getVoltages(vtype, device) ) { switch (vtype.type()) { case ProgVoltageType::Vpp: - case ProgVoltageType::VddBulkErase: qFatal(TQString("Voltage \"%1\" not defined").arg(vtype.key())); + case ProgVoltageType::VddBulkErase: tqFatal(TQString("Voltage \"%1\" not defined").arg(vtype.key())); case ProgVoltageType::VddWrite: data()->_voltages[ProgVoltageType::VddWrite] = data()->_voltages[ProgVoltageType::VddBulkErase]; break; case ProgVoltageType::Nb_Types: Q_ASSERT(false); break; } } } - //if ( data()->vddMin()>data()->_voltages[ProgVoltageType::VddWrite].min ) qFatal("Vdd min higher than VddWrite min"); - //if ( data()->vddMax()<data()->_voltages[ProgVoltageType::VddWrite].max ) qFatal("Vdd max lower than VddWrite max"); - if ( data()->_voltages[ProgVoltageType::VddWrite].min>data()->_voltages[ProgVoltageType::VddBulkErase].min ) qFatal("VddWrite min higher than VddBulkErase min"); - if ( data()->_voltages[ProgVoltageType::VddWrite].max<data()->_voltages[ProgVoltageType::VddBulkErase].max ) qFatal("VddWrite max lower than VddBulkErase max"); + //if ( data()->vddMin()>data()->_voltages[ProgVoltageType::VddWrite].min ) tqFatal("Vdd min higher than VddWrite min"); + //if ( data()->vddMax()<data()->_voltages[ProgVoltageType::VddWrite].max ) tqFatal("Vdd max lower than VddWrite max"); + if ( data()->_voltages[ProgVoltageType::VddWrite].min>data()->_voltages[ProgVoltageType::VddBulkErase].min ) tqFatal("VddWrite min higher than VddBulkErase min"); + if ( data()->_voltages[ProgVoltageType::VddWrite].max<data()->_voltages[ProgVoltageType::VddBulkErase].max ) tqFatal("VddWrite max lower than VddBulkErase max"); checkTagNames(device, "voltages", names); // memory ranges @@ -426,12 +426,12 @@ virtual void processDevice(TQDomElement device) Address start2 = data()->_ranges[i].start + data()->_ranges[i].hexFileOffset; Address end2 = data()->_ranges[i].end + data()->_ranges[i].hexFileOffset; if ( end1>=start2 && start1<=end2 ) - qFatal(TQString("Overlapping memory ranges (%1 and %2)").arg(k.key()).arg(i.key())); + tqFatal(TQString("Overlapping memory ranges (%1 and %2)").arg(k.key()).arg(i.key())); } } checkTagNames(device, "memory", names); if ( XOR(data()->_ids[Device::Special::Normal]!=0x0000, (data()->_ranges[MemoryRangeType::DeviceId].properties & Present)) ) - qFatal("Id present and device id memory range absent or the opposite"); + tqFatal("Id present and device id memory range absent or the opposite"); // config words TQValueVector<Config::Word> cwords = getConfigWords(device); @@ -440,7 +440,7 @@ virtual void processDevice(TQDomElement device) FOR_EACH(Pic::ConfigNameType, type) { TQMap<TQString, TQString> cnames; // cname -> mask name for (uint i=0; i<nbWords; i++) { - if ( cwords[i].name.isNull() ) qFatal(TQString("Config word #%1 not defined").arg(i)); + if ( cwords[i].name.isNull() ) tqFatal(TQString("Config word #%1 not defined").arg(i)); data()->_config->_words[i] = cwords[i]; const Config::Word &word = data()->_config->_words[i]; for (uint j=0; j<uint(word.masks.count()); j++) { @@ -450,7 +450,7 @@ virtual void processDevice(TQDomElement device) for (uint l=0; l<uint(vcnames.count()); l++) { if ( vcnames[l].startsWith("0x") ) continue; if ( cnames.contains(vcnames[l]) && cnames[vcnames[l]]!=mask.name ) - qFatal(TQString("Duplicated config name for %1/%2").arg(mask.name).arg(mask.values[k].name)); + tqFatal(TQString("Duplicated config name for %1/%2").arg(mask.name).arg(mask.values[k].name)); cnames[vcnames[l]] = word.masks[j].name; } } @@ -466,7 +466,7 @@ virtual void processDevice(TQDomElement device) const Config::Value &value = mask.values[k]; if ( !value.isValid() ) continue; if ( !data()->_config->checkValueName(mask.name, value.name) ) - qFatal(TQString("Malformed value name \"%1\" in mask %2").arg(value.name).arg(mask.name)); + tqFatal(TQString("Malformed value name \"%1\" in mask %2").arg(value.name).arg(mask.name)); } } } @@ -477,14 +477,14 @@ virtual void processDevice(TQDomElement device) const Config::Mask &mask = word.masks[j]; BitValue::const_iterator it; for (it=mask.value.begin(); it!=mask.value.end(); ++it) - if ( !hasValue(mask, *it) ) qFatal(TQString("Value %1 not defined in mask %2").arg(toHexLabel(*it, data()->nbCharsWord(MemoryRangeType::Config))).arg(mask.name)); + if ( !hasValue(mask, *it) ) tqFatal(TQString("Value %1 not defined in mask %2").arg(toHexLabel(*it, data()->nbCharsWord(MemoryRangeType::Config))).arg(mask.name)); } } // checksums (after config bits!) TQDomElement checksums = findUniqueElement(device, "checksums", TQString(), TQString()); if ( checksums.isNull() ) { - // qFatal("No checksum defined"); // #### FIXME + // tqFatal("No checksum defined"); // #### FIXME } else { TQMap<TQString, bool> valueNames; const Pic::Protection &protection = data()->_config->protection(); @@ -497,17 +497,17 @@ virtual void processDevice(TQDomElement device) TQDomNode child = checksums.firstChild(); while ( !child.isNull() ) { if ( !child.isElement() ) continue; - if ( child.nodeName()!="checksum" ) qFatal("Childs of \"checksums\" should \"checksum\""); + if ( child.nodeName()!="checksum" ) tqFatal("Childs of \"checksums\" should \"checksum\""); TQString valueName = getChecksumData(child.toElement()); if ( protection.family()==Protection::BasicProtection ) { - if ( !valueNames.contains(valueName) ) qFatal("Unknown protected attribute"); + if ( !valueNames.contains(valueName) ) tqFatal("Unknown protected attribute"); valueNames[valueName] = true; } child = child.nextSibling(); } TQMap<TQString, bool>::const_iterator it; for (it=valueNames.begin(); it!=valueNames.end(); ++it) - if ( !it.key().isEmpty() && !it.data() ) qFatal(TQString("Missing checksum \"%1\"").arg(it.key())); + if ( !it.key().isEmpty() && !it.data() ) tqFatal(TQString("Missing checksum \"%1\"").arg(it.key())); } } @@ -516,16 +516,16 @@ void processMirrored(TQDomElement element) TQValueVector<RangeData> mirrored; TQDomNode child = element.firstChild(); while ( !child.isNull() ) { - if ( !child.isElement() ) qFatal("\"mirror\" child should be an element"); + if ( !child.isElement() ) tqFatal("\"mirror\" child should be an element"); TQDomElement e = child.toElement(); - if ( e.nodeName()!="range" ) qFatal("\"mirror\" child should be \"range\""); + if ( e.nodeName()!="range" ) tqFatal("\"mirror\" child should be \"range\""); RangeData rd; bool ok; rd.start = fromHexLabel(e.attribute("start"), &ok); Address end = fromHexLabel(e.attribute("end"), &ok); rd.length = end-rd.start+1; if ( !mirrored.isEmpty() && rd.length!=mirrored[0].length ) - qFatal("Mirrored are not of the same length"); + tqFatal("Mirrored are not of the same length"); mirrored.append(rd); child = child.nextSibling(); } @@ -537,43 +537,43 @@ void processUnused(TQDomElement e) RangeData rd; bool ok; rd.start = fromHexLabel(e.attribute("start"), &ok); - if (!ok) qFatal("Malformed start for unused register"); + if (!ok) tqFatal("Malformed start for unused register"); Address end = fromHexLabel(e.attribute("end"), &ok); rd.length = end-rd.start+1; - if (!ok) qFatal("Malformed end for unused register"); + if (!ok) tqFatal("Malformed end for unused register"); static_cast<RegistersData *>(data()->_registersData)->unused.append(rd); } void processSfr(TQDomElement e) { TQString name = e.attribute("name"); - if ( name.isEmpty() ) qFatal("SFR cannot have empty name"); + if ( name.isEmpty() ) tqFatal("SFR cannot have empty name"); if ( data()->registersData().sfrs.contains(name) || data()->registersData().combined.contains(name) ) - qFatal("SFR name is duplicated"); + tqFatal("SFR name is duplicated"); bool ok; uint address = fromHexLabel(e.attribute("address"), &ok); - if ( !ok ) qFatal(TQString("SFR %1 address %2 is malformed").arg(name).arg(e.attribute("address"))); + if ( !ok ) tqFatal(TQString("SFR %1 address %2 is malformed").arg(name).arg(e.attribute("address"))); uint rlength = data()->registersData().nbBanks * data()->architecture().data().registerBankLength; - if ( address>=rlength ) qFatal(TQString("Address %1 outside register range").arg(toHexLabel(address, 3))); + if ( address>=rlength ) tqFatal(TQString("Address %1 outside register range").arg(toHexLabel(address, 3))); RegisterData rdata; rdata.address = address; uint nb = data()->registersData().nbBits(); - if ( nb>Device::MAX_NB_PORT_BITS ) qFatal(TQString("Need higher MAX_NB_PORT_BITS: %1").arg(nb)); + if ( nb>Device::MAX_NB_PORT_BITS ) tqFatal(TQString("Need higher MAX_NB_PORT_BITS: %1").arg(nb)); TQString access = e.attribute("access"); - if ( uint(access.length())!=nb ) qFatal("access is missing or malformed"); + if ( uint(access.length())!=nb ) tqFatal("access is missing or malformed"); TQString mclr = e.attribute("mclr"); - if ( uint(mclr.length())!=nb ) qFatal("mclr is missing or malformed"); + if ( uint(mclr.length())!=nb ) tqFatal("mclr is missing or malformed"); TQString por = e.attribute("por"); - if ( uint(por.length())!=nb ) qFatal("por is missing or malformed"); + if ( uint(por.length())!=nb ) tqFatal("por is missing or malformed"); for (uint i=0; i<nb; i++) { uint k = nb - i - 1; bool ok; rdata.bits[k].properties = RegisterBitProperties(fromHex(access[i].latin1(), &ok)); - if ( !ok || rdata.bits[k].properties>MaxRegisterBitProperty ) qFatal(TQString("Malformed access bit %1").arg(k)); + if ( !ok || rdata.bits[k].properties>MaxRegisterBitProperty ) tqFatal(TQString("Malformed access bit %1").arg(k)); rdata.bits[k].mclr = RegisterBitState(fromHex(mclr[i].latin1(), &ok)); - if ( !ok || rdata.bits[k].mclr>Nb_RegisterBitStates ) qFatal(TQString("Malformed mclr bit %1").arg(k)); + if ( !ok || rdata.bits[k].mclr>Nb_RegisterBitStates ) tqFatal(TQString("Malformed mclr bit %1").arg(k)); rdata.bits[k].por = RegisterBitState(fromHex(por[i].latin1(), &ok)); - if ( !ok || rdata.bits[k].por>Nb_RegisterBitStates ) qFatal(TQString("Malformed por bit %1").arg(k)); + if ( !ok || rdata.bits[k].por>Nb_RegisterBitStates ) tqFatal(TQString("Malformed por bit %1").arg(k)); } static_cast<RegistersData *>(data()->_registersData)->sfrs[name] = rdata; } @@ -581,19 +581,19 @@ void processSfr(TQDomElement e) void processCombined(TQDomElement e) { TQString name = e.attribute("name"); - if ( name.isEmpty() ) qFatal("Combined register cannot have empty name"); + if ( name.isEmpty() ) tqFatal("Combined register cannot have empty name"); if ( data()->registersData().sfrs.contains(name) || data()->registersData().combined.contains(name) ) - qFatal("Combined register name is duplicated"); + tqFatal("Combined register name is duplicated"); bool ok; CombinedData rdata; rdata.address = fromHexLabel(e.attribute("address"), &ok); - if ( !ok ) qFatal(TQString("Combined %1 address %2 is malformed").arg(name).arg(e.attribute("address"))); + if ( !ok ) tqFatal(TQString("Combined %1 address %2 is malformed").arg(name).arg(e.attribute("address"))); uint rlength = data()->registersData().nbBanks * data()->architecture().data().registerBankLength; - if ( rdata.address>=rlength ) qFatal(TQString("Address %1 outside register range").arg(toHexLabel(rdata.address, 3))); + if ( rdata.address>=rlength ) tqFatal(TQString("Address %1 outside register range").arg(toHexLabel(rdata.address, 3))); rdata.nbChars = 2*e.attribute("size").toUInt(&ok); - if ( !ok || rdata.nbChars<2 ) qFatal(TQString("Combined %1 size %2 is malformed").arg(name).arg(e.attribute("size"))); + if ( !ok || rdata.nbChars<2 ) tqFatal(TQString("Combined %1 size %2 is malformed").arg(name).arg(e.attribute("size"))); Address end = rdata.address + rdata.nbChars/2 - 1; - if ( end>=rlength ) qFatal(TQString("Address %1 outside register range").arg(toHexLabel(end, 3))); + if ( end>=rlength ) tqFatal(TQString("Address %1 outside register range").arg(toHexLabel(end, 3))); static_cast<RegistersData *>(data()->_registersData)->combined[name] = rdata; } @@ -601,7 +601,7 @@ void processDeviceRegisters(TQDomElement element) { TQString s = element.attribute("same_as"); if ( !s.isEmpty() ) { - if ( !_map.contains(s) ) qFatal(TQString("Registers same as unknown device %1").arg(s)); + if ( !_map.contains(s) ) tqFatal(TQString("Registers same as unknown device %1").arg(s)); const Pic::Data *d = static_cast<const Pic::Data *>(_map[s]); data()->_registersData = d->_registersData; return; @@ -610,12 +610,12 @@ void processDeviceRegisters(TQDomElement element) RegistersData &rdata = *static_cast<RegistersData *>(data()->_registersData); bool ok; rdata.nbBanks = element.attribute("nb_banks").toUInt(&ok); - if ( !ok || data()->registersData().nbBanks==0 ) qFatal("Malformed number of banks"); + if ( !ok || data()->registersData().nbBanks==0 ) tqFatal("Malformed number of banks"); if ( data()->is18Family() ) { rdata.accessBankSplit = fromHexLabel(element.attribute("access_bank_split_offset"), &ok); - if ( !ok || rdata.accessBankSplit==0 || rdata.accessBankSplit>=0xFF ) qFatal("Malformed access bank split offset"); + if ( !ok || rdata.accessBankSplit==0 || rdata.accessBankSplit>=0xFF ) tqFatal("Malformed access bank split offset"); rdata.unusedBankMask = fromHexLabel(element.attribute("unused_bank_mask"), &ok); - if ( !ok || rdata.unusedBankMask>=maxValue(NumberBase::Hex, rdata.nbBanks) ) qFatal("Malformed access unused bank mask"); + if ( !ok || rdata.unusedBankMask>=maxValue(NumberBase::Hex, rdata.nbBanks) ) tqFatal("Malformed access unused bank mask"); } else { rdata.accessBankSplit = 0; rdata.unusedBankMask = 0; @@ -623,13 +623,13 @@ void processDeviceRegisters(TQDomElement element) TQDomNode child = element.firstChild(); while ( !child.isNull() ) { - if ( !child.isElement() ) qFatal("\"device\" child should be an element"); + if ( !child.isElement() ) tqFatal("\"device\" child should be an element"); TQDomElement e = child.toElement(); if ( e.nodeName()=="mirror" ) processMirrored(e); else if ( e.nodeName()=="unused" ) processUnused(e); else if ( e.nodeName()=="combined" ) processCombined(e); else if ( e.nodeName()=="sfr" ) processSfr(e); - else qFatal(TQString("Node name \"%1\" is not recognized").arg(e.nodeName())); + else tqFatal(TQString("Node name \"%1\" is not recognized").arg(e.nodeName())); child = child.nextSibling(); } @@ -640,11 +640,11 @@ void processDeviceRegisters(TQDomElement element) TQString trisname = rdata.trisName(i); if ( trisname.isEmpty() ) continue; bool hasTris = rdata.sfrs.contains(trisname); - if ( !hasPort && hasTris ) qFatal(TQString("%1 needs %2 to be present").arg(trisname).arg(portname)); + if ( !hasPort && hasTris ) tqFatal(TQString("%1 needs %2 to be present").arg(trisname).arg(portname)); TQString latchname = rdata.latchName(i); if ( latchname.isEmpty() ) continue; bool hasLatch = rdata.sfrs.contains(latchname); - if ( !hasPort && hasLatch ) qFatal(TQString("%1 needs %2 to be present").arg(latchname).arg(portname)); + if ( !hasPort && hasLatch ) tqFatal(TQString("%1 needs %2 to be present").arg(latchname).arg(portname)); } } @@ -652,15 +652,15 @@ void processRegistersFile(const TQString &filename, TQStringList &devices) { TQDomDocument doc = parseFile(filename); TQDomElement root = doc.documentElement(); - if ( root.nodeName()!="registers" ) qFatal("root node should be \"registers\""); + if ( root.nodeName()!="registers" ) tqFatal("root node should be \"registers\""); for (TQDomNode child=root.firstChild(); !child.isNull(); child = child.nextSibling()) { - if ( child.isComment() ) qDebug("comment: %s", child.toComment().data().latin1()); + if ( child.isComment() ) tqDebug("comment: %s", child.toComment().data().latin1()); else { - if ( !child.isElement() ) qFatal("\"registers\" child should be an element"); - if ( child.nodeName()!="device" ) qFatal("Device node should be named \"device\""); + if ( !child.isElement() ) tqFatal("\"registers\" child should be an element"); + if ( child.nodeName()!="device" ) tqFatal("Device node should be named \"device\""); TQDomElement device = child.toElement(); TQString name = device.attribute("name"); - if ( devices.contains(name) ) qFatal(TQString("Registers already defined for %1").arg(name)); + if ( devices.contains(name) ) tqFatal(TQString("Registers already defined for %1").arg(name)); if ( _map.contains(name) ) { _data = _map[name]; processDeviceRegisters(device); @@ -680,18 +680,18 @@ void processRegisters() TQMap<TQString, Device::Data *>::const_iterator it = _map.begin(); for (; it!=_map.end(); ++it) { _data = it.data(); - if ( !devices.contains(it.key()) ) qWarning("Register description not found for %s", it.key().latin1()); + if ( !devices.contains(it.key()) ) tqWarning("Register description not found for %s", it.key().latin1()); } } virtual void checkPins(const TQMap<TQString, uint> &pinLabels) const { - if ( !pinLabels.contains("VDD") ) qFatal("No VDD pin specified"); - if ( !pinLabels.contains("VSS") ) qFatal("No VSS pin specified"); + if ( !pinLabels.contains("VDD") ) tqFatal("No VDD pin specified"); + if ( !pinLabels.contains("VSS") ) tqFatal("No VSS pin specified"); TQMap<TQString, uint>::const_iterator it; for (it=pinLabels.begin(); it!=pinLabels.end(); ++it) { if ( it.key()=="VDD" || it.key()=="VSS" || it.key().startsWith("CCP") ) continue; - if ( it.data()!=1 ) qFatal(TQString("Duplicated pin \"%1\"").arg(it.key())); + if ( it.data()!=1 ) tqFatal(TQString("Duplicated pin \"%1\"").arg(it.key())); } const Pic::RegistersData &rdata = static_cast<const Pic::RegistersData &>(*_data->registersData()); for (uint i=0; i<Device::MAX_NB_PORTS; i++) { @@ -699,7 +699,7 @@ virtual void checkPins(const TQMap<TQString, uint> &pinLabels) const for (uint k=0; k<Device::MAX_NB_PORT_BITS; k++) { if ( !rdata.hasPortBit(i, k) ) continue; TQString name = rdata.portBitName(i, k); - if ( !pinLabels.contains(name) ) qFatal(TQString("Pin \"%1\" not present").arg(name)); + if ( !pinLabels.contains(name) ) tqFatal(TQString("Pin \"%1\" not present").arg(name)); } } } |