⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_mem_speed.cc

📁 Small Device C Compiler 面向Inter8051
💻 CC
字号:
#include <signal.h>#include <unistd.h>#include <stdio.h>#include "memcl.h"#include "hwcl.h"#include "newcmdcl.h"static int go;static voidalarmed(int sig){  go= 0;  signal(sig, alarmed);}class cl_hw_test: public cl_hw{public:  cl_hw_test(void): cl_hw(0, HW_PORT, 0, "0") {}  virtual t_mem r(class cl_cell *cell, t_addr addr);  virtual void write(class cl_mem *mem, t_addr addr, t_mem *val);};t_memcl_hw_test::r(class cl_cell *cell, t_addr addr){  return(cell->get());}voidcl_hw_test::write(class cl_mem *mem, t_addr addr, t_mem *val){}doubledo_rw_test(class cl_mem *mem, int time){  double counter;  t_addr a;  t_mem d;  go= 1;  counter= 0;  alarm(time);  while (go)    for (a= 0; go && a < mem->size; a++)      {	t_mem d2;	for (d2= 0; go && d2 <= 255; d2++)	  {	    d2= mem->write(a, d2);	    d= mem->read(a);	    if (d != d2)	      printf("%"_M_"d written to mem and %"_M_"d read back!\n", d2, d);	    counter+= 1;	  }      }  return(counter);}intmain(void){  int i;  class cl_mem *mem;  class cl_m *m2;  class cl_console *con;  signal(SIGALRM, alarmed);  con= new cl_console(stdin, stdout, 0);  mem= new cl_mem(MEM_SFR, "egy", 0x10000, 8);  mem->init();  printf("%g operations on classic memory within 5 sec\n",	 do_rw_test(mem, 5));  //mem->dump(con);  m2= new cl_m(MEM_TYPES, "test", 0x10000, 8);  m2->init();  printf("%g operations on new memory within 5 sec\n",	 do_rw_test(m2, 5));  class cl_hw_test *hw= new cl_hw_test();  for (i= 0; i < 0x10000; i++)    {      class cl_cell *c= m2->get_cell(i);      if (c)	c->add_hw(hw);    }  printf("%g operations on new memory within 5 sec with hw read\n",	 do_rw_test(m2, 5));  //m2->dump(con);  return(0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -