Previous versions

Version 0.3.20
May 26, 2020
Kopycat now is a fully open-source project. In this release we have tried to do our best to run different widespread systems on the emulator. Previous release could run STM32F0xx with FreeRTOS operating system. This time we have added various examples of firmwares for unit testing emulator and to work with different peripheral modules. The most exciting addition is that Kopycat runs Linux on ARM MCU's ARM1176JZ. All these examples are presented in sources and as prebuild modules. A lot of bugs have been fixed in the emulator core and modules.
  • Core: full open-source release
  • Core: moved to OpenJDK and version updated to 11.0.x
  • Core: register bank system ARegisterBankNG to simplify configuring processor core (currently only in ARM)
  • Core: implemented fast wait-for-interrupt processing
  • Auxiliary: NANDGen - NAND modules generator based on standard NAND parameters
  • Auxiliary: NANDPart - NAND dump loader to partition dump by pages and add ECC in spares
  • ARM: implemented partially MCU ARM1176JZ (enough to run Linux 2.6.x)
  • ARM: implemented ARMv6 Coprocessor and MMU
  • ARM: implemented generic timer for ARMv6
  • ARM: implemented NS16550 UART-controller
  • ARM: implemented PL190 (VIC) Vector Interrupt Controller
  • ARM: implemented VirtARM - a virtual ARM-based device
  • ARM: U-boot and Linux prebuild binaries based on buildroot in example
  • ARM: implemented DMA-controller in STM32F042
  • Others: different examples to show possible cases how to use Kopycat in projects
  • Others: tested development of firmware to STM32 controller using CLion and Kopycat
  • Gradle: Kopycat build plugin to simplify a configuration build.gradle of new emulator modules
  • Gradle: dokkaMultilang build plugin to generate documentation on multiple languages, each language tags with "{EN}"/"{RU}" tokens
Modified / fixed
  • Core: embedded Python interpreter fixes, add autodetect of Python version and Jep library path
  • ARM: fixed a lot of bugs in CPU's instructions
  • ARM: fixed bugs in STM32F042
Version 0.3.1
December 25, 2019
Kopycat ver. 0.3.1 release:
  • Core: Dynamically loading the JEP library (Python2 only)
  • Core: Passing the value to be written to the beforeWrite method (in register) - necessary to intercept and determine the mode of access to the hardware registers
  • Core: Added the ability to log bus calls
  • Core: Ability to connect a slave port to two different buses
Modified / fixed
  • Core: Changed the order in which tracer methods are called:
  • Core: Changed the debugger interface method to continue execution from exec to cont. Due to incompatibility of methods in Python
  • Core: General Correction of Corrections to Tires
  • x86: Fixed bus connections in the kernel
  • x86: Code refactored towards Kotlin-way
  • x86: Fixed memory access error when crossing two pages (for Paging access mode)
  • x86: Bug shift instructions fixed: rol, ror
  • x86: Implemented some instructions: hlt, btr, partial fpu support

Version 0.3.0
May 7, 2019
First Kopycat public release:
  • ARM, x86, MIPS, V850ES, MSP430
  • Cortex-M0, MSP430x44x, STM32F042

Version 0.2.12-Rhino
March 27, 2019
Conference Test Device Emulator: SMARTRHINO 2018
  • Microcontroller: STM32F042
  • Bluetooth module: SPBT2632C2A
  • UART module