Commit 77b4f1e9 authored by Milan Kupcevic's avatar Milan Kupcevic

Import Upstream version 0.1.7+dfsg

parents
This diff is collapsed.
# SimulIDE
Electronic Circuit Simulator
![SimulIDE screenshot](resources/data/images/simulide-screenshot.png)
SimulIDE is a simple real time electronic circuit simulator.
It's intended for general purpose electronics and microcontroller simulation, supporting PIC, AVR and Arduino.
PIC simulation is provided by gpsim and avr simulation by simavr.
This is not an accurate simulator for circuit analisis, it aims to be the fast, simple and easy to use, so this means simple and not very accurate electronic models and limited features.
Intended for hobbist or students to learn and experiment with simple circuits.
SimulIDE also features a code Editor and Debugger for GcBasic, Arduino, PIC asm and AVR asm.
Editor/Debugger is still in it's firsts stages of development, with basic functionalities, but it is possible to write, compile and basic debugging with breakpoints, watch registers and global variables.
## Building SimulIDE:
Build dependencies:
- Qt5 dev packages
- Qt5Core
- Qt5Gui
- Qt5Xml
- Qt5Widgets
- Qt5Concurrent
- Qt5svg dev
- Qt5 Multimedia dev
- Qt5 Serialport dev
- Qt5 qmake
- libelf dev
- gpsim dev
- glib-2.0 dev
- gcc-avr
- avr-libc
Once installed go to build_XX folder, then:
```
$ qmake
$ make
```
In folder build_XX/release/SimulIDE_x.x.x you will find executable and all needed to run SimulIDE.
## Running SimulIDE:
Run time dependencies:
- Qt5Core
- Qt5Gui
- Qt5Xml
- Qt5svg
- Qt5Widgets
- Qt5Concurrent
- Qt5 Multimedia
- Qt5 Multimedia Plugins
- Qt5 Serialport
- libelf
- gpsim
- glib-2.0
SimuliDE executable is in bin folder.
No need for installation, place SimulIDE folder wherever you want and run the executable.
###########################################################################
# Copyright (C) 2012 by santiago González #
# santigoro@gmail.com #
# #
# This program is free software; you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation; either version 3 of the License, or #
# (at your option) any later version. #
# #
# This program is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with this program; if not, see <http://www.gnu.org/licenses/>. #
# #
###########################################################################
VERSION = "0.1.7"
TEMPLATE = app
QT += svg
QT += xml
QT += widgets
QT += concurrent
QT += serialport
QT += multimedia widgets
SOURCES += ../src/*.cpp \
../src/gui/*.cpp \
../src/gui/circuitwidget/*.cpp \
../src/gui/circuitwidget/components/*.cpp \
../src/gui/circuitwidget/components/mcu/*.cpp \
../src/gui/oscopewidget/*.cpp \
../src/gui/plotterwidget/*.cpp \
../src/gui/terminalwidget/*.cpp \
../src/gui/QPropertyEditor/*.cpp \
../src/gui/componentselector/*.cpp \
../src/gui/filebrowser/*.cpp \
../src/gui/editorwidget/*.cpp \
../src/gui/editorwidget/findreplacedialog/*.cpp \
../src/gui/serialporwidget/*.cpp \
../src/simulator/*.cpp \
../src/simulator/elements/*.cpp \
../src/simulator/elements/processors/*.cpp \
../src/misc/simuapi_apppath.cpp \
../src/simavr/sim/*.c \
../src/simavr/cores/*.c
HEADERS += ../src/*.h \
../src/gui/*.h \
../src/gui/circuitwidget/*.h \
../src/gui/circuitwidget/components/*.h \
../src/gui/circuitwidget/components/mcu/*.h \
../src/gui/oscopewidget/*.h \
../src/gui/plotterwidget/*.h \
../src/gui/terminalwidget/*.h \
../src/gui/QPropertyEditor/*.h \
../src/gui/componentselector/*.h \
../src/gui/filebrowser/*.h \
../src/gui/editorwidget/*.h \
../src/gui/editorwidget/findreplacedialog/*.h \
../src/gui/serialporwidget/*.h \
../src/simulator/*.h \
../src/simulator/elements/*.h \
../src/simulator/elements/processors/*.h \
../src/misc/simuapi_apppath.h \
../src/simavr/sim/*.h \
../src/simavr/sim/avr/*.h \
../src/simavr/cores/*.h
INCLUDEPATH += ../src \
../src/gui \
../src/gui/circuitwidget \
../src/gui/circuitwidget/components \
../src/gui/circuitwidget/components/mcu \
../src/gui/oscopewidget \
../src/gui/plotterwidget \
../src/gui/terminalwidget \
../src/gui/QPropertyEditor \
../src/gui/componentselector \
../src/gui/filebrowser \
../src/gui/editorwidget \
../src/gui/editorwidget/findreplacedialog \
../src/gui/serialporwidget \
../src/simulator \
../src/simulator/elements \
../src/simulator/elements/processors \
../src/misc \
../src/simavr \
../src/simavr/sim \
../src/simavr/sim/avr \
../src/simavr/cores
RESOURCES = ../src/application.qrc
QMAKE_CXXFLAGS_DEBUG -= -O
QMAKE_CXXFLAGS_DEBUG -= -O1
QMAKE_CXXFLAGS_DEBUG -= -O2
QMAKE_CXXFLAGS_DEBUG -= -O3
QMAKE_CXXFLAGS_DEBUG += -O0
QMAKE_CXXFLAGS_RELEASE -= -O
QMAKE_CXXFLAGS_RELEASE -= -O1
QMAKE_CXXFLAGS_RELEASE -= -O2
QMAKE_CXXFLAGS_RELEASE *= -O3
QMAKE_CXXFLAGS += -Wno-unused-parameter
QMAKE_CXXFLAGS += -Wno-missing-field-initializers
QMAKE_CFLAGS += --std=gnu11
QMAKE_CFLAGS += -Wno-unused-result
QMAKE_CFLAGS += -Wno-unused-parameter
QMAKE_CFLAGS += -Wno-missing-field-initializers
QMAKE_CFLAGS += -Wno-implicit-function-declaration
QMAKE_CFLAGS += -Wno-int-conversion
QMAKE_CFLAGS += -Wno-sign-compare
QMAKE_CFLAGS += -O2
QMAKE_CFLAGS += -fPIC
QMAKE_LIBS += -lelf
LIBS += -lgpsim
CONFIG += qt
CONFIG += warn_on
CONFIG += no_qml_debug
CONFIG *= c++11
CONFIG += link_pkgconfig
PKGCONFIG += glib-2.0
DEFINES += MAINMODULE_EXPORT=
DEFINES += APP_VERSION=\\\"$$VERSION\\\"
TARGET_NAME = SimulIDE_$$VERSION$$
CONFIG(release, debug|release) {
TARGET_PREFIX = $$BUILD_DIR/release/$$TARGET_NAME
_OBJECTS_DIR = $$OUT_PWD/build/release
}
CONFIG(debug, debug|release) {
TARGET_PREFIX = $$BUILD_DIR/debug/$$TARGET_NAME
_OBJECTS_DIR = $$OUT_PWD/build/debug
}
OBJECTS_DIR *= $$_OBJECTS_DIR
MOC_DIR *= $$_OBJECTS_DIR
INCLUDEPATH += $$OBJECTS_DIR
DESTDIR = $$TARGET_PREFIX/bin
TARGET = SimulIDE_$$VERSION
mkpath($$TARGET_PREFIX/bin)
copy2dest.commands = \
$(MKDIR) $$TARGET_PREFIX/share/simulide/data ; \
#$(MKDIR) $$TARGET_PREFIX/share/simulide/examples ; \
$(COPY_DIR) ../resources/data $$TARGET_PREFIX/share/simulide ; \
#$(COPY_DIR) ../resources/examples $$TARGET_PREFIX/share/simulide
QMAKE_EXTRA_TARGETS += copy2dest
POST_TARGETDEPS += copy2dest
message( "-----------------------------" )
message( " " $$TARGET_NAME )
message( " TARGET_PREFIX=" $$TARGET_PREFIX )
message( "-----------------------------" )
BUILD_DIR = $$PWD
include(../SimulIDE.pro)
<!DOCTYPE SimulIDE>
<!-- *************************************************************************** -->
<!-- * Copyright (C) 2017 by santiago González * -->
<!-- * santigoro@gmail.com * -->
<!-- * * -->
<!-- * This program is free software; you can redistribute it and/or modify * -->
<!-- * it under the terms of the GNU General Public License as published by * -->
<!-- * the Free Software Foundation; either version 3 of the License, or * -->
<!-- * (at your option) any later version. * -->
<!-- * * -->
<!-- * This program is distributed in the hope that it will be useful, * -->
<!-- * but WITHOUT ANY WARRANTY; without even the implied warranty of * -->
<!-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -->
<!-- * GNU General Public License for more details. * -->
<!-- * * -->
<!-- * You should have received a copy of the GNU General Public License * -->
<!-- * along with this program; if not, see <http://www.gnu.org/licenses/>. * -->
<!-- * * -->
<!-- *************************************************************************** -->
<package name="arduinoNano" pins="30" width="8" height="18">
<pin side="left" pos="2" type="bidir" id="PD1" label=" 1 Tx"/>
<pin side="left" pos="3" type="bidir" id="PD0" label=" 0 Rx"/>
<pin side="left" pos="4" type="reset" id="PC6" label=" Rst" />
<pin side="left" pos="5" type="gnd" id="GND0" label=" Gnd" />
<pin side="left" pos="6" type="bidir" id="PD2" label=" 2" />
<pin side="left" pos="7" type="pwm2B" id="PD3" label=" 3 ~" />
<pin side="left" pos="8" type="bidir" id="PD4" label=" 4" />
<pin side="left" pos="9" type="pwm0B" id="PD5" label=" 5 ~" />
<pin side="left" pos="10" type="pwm0A" id="PD6" label=" 6 ~" />
<pin side="left" pos="11" type="bidir" id="PD7" label=" 7" />
<pin side="left" pos="12" type="bidir" id="PB0" label=" 8" />
<pin side="left" pos="13" type="pwm1A" id="PB1" label=" 9 ~" />
<pin side="left" pos="14" type="pwm1B" id="PB2" label=" 10~"/>
<pin side="left" pos="15" type="pwm2A" id="PB3" label=" 11~"/>
<pin side="left" pos="16" type="open" id="PB4" label=" 12" />
<pin side="right" pos="2" type="vin" id="Vin" label="Vin "/>
<pin side="right" pos="3" type="gnd" id="GND1" label="Gnd "/>
<pin side="right" pos="4" type="reset" id="PC6" label="Rst "/>
<pin side="right" pos="5" type="v5v" id="V5V" label="5V " />
<pin side="right" pos="6" type="adc7" id="PC7" label="A7 " />
<pin side="right" pos="7" type="adc6" id="PC6" label="A6 " />
<pin side="right" pos="8" type="adc5" id="PC5" label="A5 " />
<pin side="right" pos="9" type="adc4" id="PC4" label="A4 " />
<pin side="right" pos="10" type="adc3" id="PC3" label="A3 " />
<pin side="right" pos="11" type="adc2" id="PC2" label="A2 " />
<pin side="right" pos="12" type="adc1" id="PC1" label="A1 " />
<pin side="right" pos="13" type="adc0" id="PC0" label="A0 " />
<pin side="right" pos="14" type="aref" id="AREF" label="Arf "/>
<pin side="right" pos="15" type="v3v" id="V3V" label="3V3 "/>
<pin side="right" pos="16" type="led" id="PB5" label="13 " />
</package>
<!DOCTYPE SimulIDE>
<!-- *************************************************************************** -->
<!-- * Copyright (C) 2017 by santiago González * -->
<!-- * santigoro@gmail.com * -->
<!-- * * -->
<!-- * This program is free software; you can redistribute it and/or modify * -->
<!-- * it under the terms of the GNU General Public License as published by * -->
<!-- * the Free Software Foundation; either version 3 of the License, or * -->
<!-- * (at your option) any later version. * -->
<!-- * * -->
<!-- * This program is distributed in the hope that it will be useful, * -->
<!-- * but WITHOUT ANY WARRANTY; without even the implied warranty of * -->
<!-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -->
<!-- * GNU General Public License for more details. * -->
<!-- * * -->
<!-- * You should have received a copy of the GNU General Public License * -->
<!-- * along with this program; if not, see <http://www.gnu.org/licenses/>. * -->
<!-- * * -->
<!-- *************************************************************************** -->
<package name="arduinoUno" pins="28" width="20" height="28">
<pin side="left" pos="2" type="bidir" id="PD0" label=" 0 RX "/>
<pin side="left" pos="3" type="bidir" id="PD1" label=" 1 TX "/>
<pin side="left" pos="4" type="bidir" id="PD2" label=" 2 "/>
<pin side="left" pos="5" type="pwm2B" id="PD3" label=" 3 PWM"/>
<pin side="left" pos="6" type="bidir" id="PD4" label=" 4 "/>
<pin side="left" pos="7" type="pwm0B" id="PD5" label=" 5 PWM"/>
<pin side="left" pos="8" type="pwm0A" id="PD6" label=" 6 PWM"/>
<pin side="left" pos="9" type="bidir" id="PD7" label=" 7" />
<pin side="left" pos="11" type="bidir" id="PB0" label=" 8" />
<pin side="left" pos="12" type="pwm1A" id="PB1" label=" 9 PWM"/>
<pin side="left" pos="13" type="pwm1B" id="PB2" label=" 10 PWM"/>
<pin side="left" pos="14" type="pwm2A" id="PB3" label=" 11 PWM"/>
<pin side="left" pos="15" type="open" id="PB4" label=" 12 "/>
<pin side="left" pos="16" type="led" id="PB5" label=" 13 "/>
<pin side="left" pos="17" type="gnd" id="GND0" label=" GND "/>
<pin side="left" pos="18" type="aref" id="AREF" label=" Aref "/>
<pin side="right" pos="2" type="adc5" id="PC5" label="A5 "/>
<pin side="right" pos="3" type="adc4" id="PC4" label="A4 "/>
<pin side="right" pos="4" type="adc3" id="PC3" label="A3 "/>
<pin side="right" pos="5" type="adc2" id="PC2" label="A2 "/>
<pin side="right" pos="6" type="adc1" id="PC1" label="A1 "/>
<pin side="right" pos="7" type="adc0" id="PC0" label="A0 "/>
<pin side="right" pos="9" type="vin" id="Vin" label="Vin "/>
<pin side="right" pos="10" type="gnd" id="GND1" label="GND "/>
<pin side="right" pos="11" type="gnd" id="GND2" label="GND "/>
<pin side="right" pos="12" type="v5v" id="V5V" label="5V "/>
<pin side="right" pos="13" type="v3v" id="V3V" label="3V3 "/>
<pin side="right" pos="14" type="reset" id="PC6" label="RST "/>
</package>
<!DOCTYPE SimulIDE>
<!-- *************************************************************************** -->
<!-- * Copyright (C) 2017 by santiago González * -->
<!-- * santigoro@gmail.com * -->
<!-- * * -->
<!-- * This program is free software; you can redistribute it and/or modify * -->
<!-- * it under the terms of the GNU General Public License as published by * -->
<!-- * the Free Software Foundation; either version 3 of the License, or * -->
<!-- * (at your option) any later version. * -->
<!-- * * -->
<!-- * This program is distributed in the hope that it will be useful, * -->
<!-- * but WITHOUT ANY WARRANTY; without even the implied warranty of * -->
<!-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -->
<!-- * GNU General Public License for more details. * -->
<!-- * * -->
<!-- * You should have received a copy of the GNU General Public License * -->
<!-- * along with this program; if not, see <http://www.gnu.org/licenses/>. * -->
<!-- * * -->
<!-- *************************************************************************** -->
<package name="arduinoUno" pins="28" width="20" height="28">
<pin side="left" pos="2" type="bidir" id="PD2" label=" 0 RX "/>
<pin side="left" pos="3" type="bidir" id="PD3" label=" 1 TX "/>
<pin side="left" pos="4" type="bidir" id="PD1" label=" 2 "/>
<pin side="left" pos="5" type="pwm2B" id="PD0" label=" 3 PWM"/>