PICSimLab - Programmable IC Simulator Laboratory 0.9.2
PICSimLab - API
All Classes Functions Variables Pages
bsim_ucsim.h
1/* ########################################################################
2
3 PICSimLab - Programmable IC Simulator Laboratory
4
5 ########################################################################
6
7 Copyright (c) : 2010-2025 Luis Claudio Gambôa Lopes <lcgamboa@yahoo.com>
8
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
12 any later version.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
20 along with this program; if not, write to the Free Software
21 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22
23 For e-mail suggestions : lcgamboa@yahoo.com
24 ######################################################################## */
25
26#ifndef BOARD_UCSIM_H
27#define BOARD_UCSIM_H
28
29#include "../lib/board.h"
30#include "../lib/serial_port.h"
31
32class bsim_ucsim : virtual public board {
33public:
34 bsim_ucsim(void);
35 int DebugInit(int dtyppe) override;
36 std::string GetDebugName(void) override { return "uCsim"; };
37 void DebugLoop(void) override;
38 int CpuInitialized(void) override;
39 void MSetSerial(const char* port) override;
40 int MInit(const char* processor, const char* fname, float freq) override;
41 void MEnd(void) override;
42 int MGetArchitecture(void) override;
43 int MDumpMemory(const char* fname) override;
44 void MEraseFlash(void) override;
45 void MSetFreq(float freq) override;
46 float MGetFreq(void) override;
47 void MSetVCC(float vcc) override;
48 float MGetVCC(void) override;
49 float MGetInstClockFreq(void) override;
50 int MGetPinCount(void) override;
51 std::string MGetPinName(int pin) override;
52 void MSetPin(int pin, unsigned char value) override;
53 void MSetPinDOV(int pin, unsigned char ovalue) override;
54 void MSetPinOAV(int pin, float value) override;
55 void MSetAPin(int pin, float value) override;
56 unsigned char MGetPin(int pin) override;
57 const picpin* MGetPinsValues(void) override;
58 float* MGetPinOAVPtr(int pin) override;
59 void MStep(void) override;
60 void MStepResume(void) override;
61 int MReset(int flags) override;
62 int MGetResetPin(void) override;
63 int MGetIOUpdated(void) override;
64 void MClearIOUpdated(void) override;
65
66protected:
67 void pins_reset(void);
68 picpin pins[MAX_PIN_COUNT];
69 unsigned int serialbaud;
70 float serialexbaud;
71 float freq;
72#ifdef _WIN_
73 HANDLE serialfd;
74#else
75 int serialfd;
76#endif
77 int procid;
78 unsigned short ports[4];
79};
80
81#endif /* BOARD_UCSIM_H */
Board class.
Definition board.h:114
Definition bsim_ucsim.h:32
unsigned char MGetPin(int pin) override
board microcontroller get digital pin value
Definition bsim_ucsim.cc:236
void MSetSerial(const char *port) override
Set serial port name to use.
Definition bsim_ucsim.cc:56
std::string MGetPinName(int pin) override
board microcontroller pin name
Definition bsim_ucsim.cc:137
float MGetInstClockFreq(void) override
board microcontroller get cpu internal clock (in PIC frequency/4)
Definition bsim_ucsim.cc:127
void DebugLoop(void) override
debug step (pooling)
Definition bsim_ucsim.cc:135
void MStep(void) override
board microcontroller run one step
Definition bsim_ucsim.cc:271
const picpin * MGetPinsValues(void) override
board microcontroller get all pins list struct
Definition bsim_ucsim.cc:263
float MGetVCC(void) override
board microcontroller get vcc
Definition bsim_ucsim.cc:123
void MSetAPin(int pin, float value) override
board microcontroller set analog pin
Definition bsim_ucsim.cc:232
int MReset(int flags) override
board microcontroller reset
Definition bsim_ucsim.cc:240
int CpuInitialized(void) override
return true if microcontroller is initialized
Definition bsim_ucsim.cc:131
void MSetPin(int pin, unsigned char value) override
board microcontroller set digital pin
Definition bsim_ucsim.cc:220
int MInit(const char *processor, const char *fname, float freq) override
board microcontroller init
Definition bsim_ucsim.cc:62
int MGetIOUpdated(void) override
get microcontroler status IO updated
Definition bsim_ucsim.cc:255
float * MGetPinOAVPtr(int pin) override
board microcontroller get pointer to digital pin average value
Definition bsim_ucsim.cc:267
void MSetVCC(float vcc) override
board microcontroller set vcc
Definition bsim_ucsim.cc:119
int MGetArchitecture(void) override
Return board microcontroller architecture.
Definition bsim_ucsim.cc:91
int MDumpMemory(const char *fname) override
board microcontroller save non volatile memory to hex file
Definition bsim_ucsim.cc:146
void MEraseFlash(void) override
board microcontroller erase flash memory (program)
Definition bsim_ucsim.cc:106
int MGetPinCount(void) override
board microcontroller pin count
Definition bsim_ucsim.cc:155
void MEnd(void) override
board microcontroller end
Definition bsim_ucsim.cc:87
void MClearIOUpdated(void) override
clear microcontroler status IO updated
Definition bsim_ucsim.cc:259
std::string GetDebugName(void) override
Get debug interface name.
Definition bsim_ucsim.h:36
void MSetFreq(float freq) override
board microcontroller set frequency
Definition bsim_ucsim.cc:110
int MGetResetPin(void) override
Get the Reset pin of microcontroller.
Definition bsim_ucsim.cc:251
void MSetPinDOV(int pin, unsigned char ovalue) override
board microcontroller set Default Open Value (external pull)
Definition bsim_ucsim.cc:224
void MSetPinOAV(int pin, float value) override
board microcontroller set digital pin output average value
Definition bsim_ucsim.cc:228
float MGetFreq(void) override
board microcontroller get frequency
Definition bsim_ucsim.cc:115
int DebugInit(int dtyppe) override
Start debug support.
Definition bsim_ucsim.cc:150
void MStepResume(void) override
board microcontroller run one or two steps to resume instruction
Definition bsim_ucsim.cc:301