windows 환경에서 동작하는 arm emulator(simulator)
DESCRIPTION
Windows 환경에서 동작하는 Arm Emulator(Simulator). 발표자 : 이원재. 시스템 흐름도 . Emulation Part DLL( by C ). User Interface Part ( by C# ). Fetch. Timer Event. Call. Decode. Execute. Display Result. Result. Return. Emulation 을 위한 주요변수 1. EZ-S3C2440 메모리 맵. Char SRAMBuffer[4K]. - PowerPoint PPT PresentationTRANSCRIPT
Windows 환경에서 동작하는 Arm Emulator(Simulator)
발표자 : 이원재
Timer Event
Emulation Part DLL( by C )
User Interface Part ( by C# )
Call
Return
Fetch
Decode
Execute
ResultDisplay Result
시스템 흐름도
EZ-S3C2440 메모리 맵
Char SDRAMBuffer[64M]
Char NANDBuffer[64M]
Char SRAMBuffer[4K]
UINT32 R[16]
UINT32 CPSR
UINT32 SPSR
UINT32 Register[136]
Arm Register
S3C2440 Special Regis-ter
Emulation 을 위한 주요변수 1
FAd-
dress
DAd-
dress
EAd-
dress
FCom-mand
DCom-mand
ECom-mand
UINT32 pipeLine[2][3]
UINT32 iWhatCommand[2]D
Command in-dex
ECommand in-
dex
Emulation 을 위한 주요변수 2
pipe
Emulation 의 주요 함수 - Fetch()
CharSDRAM-Buffer(64M)
4byte추출
Little-Endian 4byte2
FAd-
dress
DAd-
dress
EAd-
dress
FCom-mand
DCom-mand
ECom-mand
UINT32 pipeLine[2][3]
3Function Line
Decode()
Fetch()
Execute()F
Ad-dress
DAd-
dress
EAd-
dress
FCom-mand
DCom-mand
ECom-mand
UINT32 pipeLine[2][3]1
Little-Endian 4byte2
FAd-
dress
DAd-
dress
EAd-
dress
FCom-mand
DCom-mand
ECom-mand
UINT32 pipeLine[2][3]
3
Function Line
Fetch()
Decode()
Execute()
Opcode 분석 루틴
UINT32 iWhatCommand[2]D
Command in-dex
ECommand in-
dex
4
Emulation 의 주요 함수 - De-code()
UINT32 iWhatCommand[2]D
Command in-dex
ECommand in-
dex
1
FAd-
dress
DAd-
dress
EAd-
dress
FCom-mand
DCom-mand
ECom-mand
UINT32 pipeLine[2][3]UINT32 iWhatCommand[2]D
Command in-dex
ECommand in-
dex
1
Function Line
Fetch()
Execute()
Decode()
SDRAMBuffer, Register, special Register
2
3
Emulation 의 주요 함수 - Exe-cute()
시연
주요 함수 코드C# 에서 C 로 작성된 DLL 호출 -1
참고 : http://www.codeproject.com/KB/cs/usecdlllibincs.aspx
호출
선언
DLL
C – DLL
C#
주요 함수 코드C# 에서 C 로 작성된 DLL 호출 -2
참고 : http://classname.tistory.com/18?srchid=BR1http%3A%2F%2Fclassname.tistory.com%2F18
● PInvoke( Platform Invocation Service) – 관리코드에서 비관리 코드를 호출하는 것
Why?
C#
Win32 API
주요 함수 코드C# 에서 C 로 작성된 DLL 호출 -3
참고 : http://classname.tistory.com/18?srchid=BR1http%3A%2F%2Fclassname.tistory.com%2F18
주요 함수 코드C or C++ 를 이용한 DLL 작성법
주요 이용 toolsIDA-Pro 소개
참고 : http://www.hex-rays.com/idapro/
주요 이용 toolsIDA-Pro 1
주요 이용 toolsSource Insight 소개
http://www.sourceinsight.com/
주요 이용 toolsSource Insight-1
주요 이용 Sitehttp://www.codeproject.com/
http://forum.falinux.com/zbxe/
Q & A