avr_bdm.cc

来自「AVR 单片机程序设计用到的模拟器」· CC 代码 · 共 82 行

CC
82
字号
/* $Id: AVR_BDM.cc,v 1.6 2000/10/01 17:00:42 pure Exp $ */#include "AVR_BDM.h"AVR_BDM::AVR_BDM(unsigned _ramsize, unsigned _romsize, unsigned _model,		 unsigned _mhz) : AVR(_ramsize, _romsize, _model, _mhz), Thread(){	break_signal = running = 0;	codesize = _romsize / 2;	bp = new char[codesize];	arise();}AVR_BDM::~AVR_BDM(){	delete bp;}void AVR_BDM::setbp(int pc){	if ((!running) && (pc >= 0) && (pc < codesize))	    bp[pc] = 1;}void AVR_BDM::clearbp(int pc){	if (!running) {		if ((pc >= 0) && (pc < codesize))	    		bp[pc] = 0;		if (pc == -1)		    	for (int n = 0; n < codesize; n++)				bp[n] = 0;	}}void AVR_BDM::singlestep(){	if (!running)	    execute();}void AVR_BDM::run(){	break_signal = 0;	running = 1;	sem_run.signal();}void AVR_BDM::stop(){	if (running) {	        break_signal = 1;		sem_stopped.wait();		running = 0;	}}void AVR_BDM::action(){	while(1) {		sem_run.wait();		while (!break_signal) {		    	execute();		}		sem_stopped.signal();	}}void AVR_BDM::load(const char* name){	FILE* fp = fopen(name, "r");	if (!fp) return;	int addr = 0;	int c;	while ((c = fgetc(fp)) != -1) {		ROM.writeb(addr++, c);	}	fclose(fp);}

⌨️ 快捷键说明

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