X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=sim%2Fucsim%2Fsim.src%2Ftest_mem_speed.cc;h=d2359fdf51cd947b1d2ef322e9bceeb846ce4263;hb=6ba6105dc5975c3b0cc0d1ce53f47a1ddf4be9cf;hp=05a046accf2e6937e6621ca036dcd0f050cf2574;hpb=02d4f3e2b701dcdb88981a3292d226fc818b93b7;p=fw%2Fsdcc diff --git a/sim/ucsim/sim.src/test_mem_speed.cc b/sim/ucsim/sim.src/test_mem_speed.cc index 05a046ac..d2359fdf 100644 --- a/sim/ucsim/sim.src/test_mem_speed.cc +++ b/sim/ucsim/sim.src/test_mem_speed.cc @@ -1,18 +1,66 @@ +#include +#include +#include + #include "memcl.h" +static int go; + +static void +alarmed(int sig) +{ + go= 0; + signal(sig, alarmed); +} + int main(void) { class cl_mem *mem; + class cl_m *m2; t_addr a; t_mem d; + double counter; + + signal(SIGALRM, alarmed); mem= new cl_mem(MEM_SFR, "egy", 0x10000, 8); - for (a= 0; a < mem->size; a++) - { - t_mem d2= a; - mem->write(a, &d2); - d= mem->read(a); - } + go= 1; + counter= 0; + alarm(10); + while (go) + for (a= 0; go && a < mem->size; a++) + { + t_mem d2; + for (d2= 0; d2 <= 255; d2++) + { + mem->write(a, &d2); + d= mem->read(a); + if (d != d2) + printf("%ld written to mem and %ld read back!\n", d2, d); + counter+= 1; + } + } + printf("%g operations on classic memory within 10 sec\n", counter); + + m2= new cl_m(0x10000, 8); + go= 1; + counter= 0; + alarm(10); + while (go) + for (a= 0; go && a < m2->size; a++) + { + t_mem d2; + for (d2= 0; d2 <= 255; d2++) + { + m2->write(a, &d2); + d= m2->read(a); + if (d != d2) + printf("%ld written to m2 and %ld read back!\n", d2, d); + counter+= 1; + } + } + printf("%g operations on new memory within 10 sec\n", counter); + return(0); }