[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Simulavr-devel] [PATCH] Reduce warnings about registers not simulated
From: |
Torsten Duwe |
Subject: |
[Simulavr-devel] [PATCH] Reduce warnings about registers not simulated |
Date: |
Wed, 22 Feb 2012 11:07:42 +0100 (CET) |
User-agent: |
Alpine 2.00 (LNX 1167 2008-08-23) |
Hi All,
First, thanks a lot for this great and quite accurate simulator!
Packaging 1.0.0 for our build service
https://build.opensuse.org/package/show?package=simulavr&project=CrossToolchain%3Aavr
I made 2 patches, the first of which I'd like you to consider for upstream
inclusion. Please comment or apply.
Torsten
-----8<-----
NotSimulatedRegister warns on stdout about each r/w access to each
instance. This causes not only the regular startup messages to scroll off
screen, but also warnings about config registers used only once during
device initialisation. This patch makes simulavr warn only once for every
register written, and for the 10 first registers' read-before-write
accesses.
Signed-off-by: Torsten Duwe <address@hidden>
--- simulavr-1.0.0/src/rwmem.h.orig 2012-02-12 16:26:38.000000000 +0100
+++ simulavr-1.0.0/src/rwmem.h 2012-02-22 10:03:19.000000000 +0100
@@ -144,6 +144,7 @@ class InvalidMem : public RWMemoryMember
class NotSimulatedRegister : public RWMemoryMember {
private:
const char * message_on_access;
+ bool have_warned;
public:
NotSimulatedRegister(const char * message_on_access);
--- simulavr-1.0.0/src/rwmem.cpp.orig 2012-02-12 16:26:38.000000000 +0100
+++ simulavr-1.0.0/src/rwmem.cpp 2012-02-22 10:03:19.000000000 +0100
@@ -125,15 +125,22 @@ void InvalidMem::set(unsigned char c) {
}
NotSimulatedRegister::NotSimulatedRegister(const char * message_on_access_)
- : message_on_access(message_on_access_) {}
+ : message_on_access(message_on_access_) {have_warned = false;}
unsigned char NotSimulatedRegister::get() const {
- avr_warning(message_on_access);
+ static unsigned warn_count = 0;
+
+ if(!have_warned) {
+ if (warn_count++ < 10)
+ avr_warning(message_on_access);
+ }
return 0;
}
void NotSimulatedRegister::set(unsigned char c) {
- avr_warning(message_on_access);
+ if(!have_warned)
+ avr_warning(message_on_access);
+ have_warned = true;
}
- [Simulavr-devel] [PATCH] Reduce warnings about registers not simulated,
Torsten Duwe <=