flat assembler
Message board for the users of flat assembler.

Index > Non-x86 architectures > SIMA: simple minimalistic core simulator

Author
Thread Post new topic Reply to topic
Andrew Martin



Joined: 30 Sep 2015
Posts: 29
Location: 404, Lugansk
Andrew Martin 31 Oct 2015, 10:32
SIMA is the minimalistic disassembler and core simulator for ARM Cortex-M MCU family. Currently it support only ARMv6-M instruction set, which used in the Cortex-M0 MCU's (for example STM32F0).

SIMA supports limited source-level debug.

Input executable formats:

- only raw binary image (no source level debug)

- raw binary + appropriate *.fas file (source level debug, specialy feature for FASMARM)

- ELF executable with DWARF-2 debug info (commonly used source level debug)

SIMA has easily upgradeable architecture, all that is needed for extension (eg to Cortex-M3, M4) - to write DLL with disassembler and instructions simulator, and peripheral memory model.

Now supported only Cortex-M0 STM32 (cm0_core.dll + stm32f0xx_periph_memory.dll).


Description: Executables + DLL sources
Download
Filename: sima.zip
Filesize: 112.83 KB
Downloaded: 1104 Time(s)



Last edited by Andrew Martin on 11 Nov 2015, 15:49; edited 1 time in total
Post 31 Oct 2015, 10:32
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20355
Location: In your JS exploiting you and your system
revolution 31 Oct 2015, 12:11
You have many *.asm files in the attachment. Which is the start source?

Would it make more sense to have only one *.asm and the rest as *.inc? One *.asm for one *.exe. Just IMO, you can do whatever you want of course.
Post 31 Oct 2015, 12:11
View user's profile Send private message Visit poster's website Reply with quote
Andrew Martin



Joined: 30 Sep 2015
Posts: 29
Location: 404, Lugansk
Andrew Martin 31 Oct 2015, 13:40
There is two main source files for two DLL's.
- cm0_core.asm (for cm0_core.dll);
- stm32f0xx_periph_memory.asm (for stm32f0xx_periph_memory.dll).

sima.exe linked with polink from many object and resource files.

Source code for sima.exe I will publish later. Maybe. Too many sources and resources Smile
A GUI already contains enough functions.

A help and collaboration is needed only in development of disassembler and simulator engine, but this part of code - in DLL's. For this purpose DLL's was written in pure FASM without any third party tools.

Development of project is implied by writing a new libraries according to samples, cm0_core.dll and stm32f0xx_periph_memory.dll (for example cm3_core.dll for Cortex-M3).

MCU peripherals is very complex for understanding and simulation, therefore only MCU core is simulated today.
Post 31 Oct 2015, 13:40
View user's profile Send private message Reply with quote
Andrew Martin



Joined: 30 Sep 2015
Posts: 29
Location: 404, Lugansk
Andrew Martin 09 Jan 2017, 13:35
Hi all! SIMA 1.1 is now available.
Fixed many bugs in disassembler and simulator, GUI also has been improved.
Here is full sources.


Description: Binaries + DLL sources + GUI sources
Download
Filename: sima_v1_1_0_0.zip
Filesize: 298.34 KB
Downloaded: 1011 Time(s)

Post 09 Jan 2017, 13:35
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.