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 메모리 맵 Arm Register Char SDRAMBuffer[64M] Char NANDBuffer[64M] Char SRAMBuffer[4K] UINT32 R[16] UINT32 CPSR UINT32 SPSR UINT32 Register[136] Arm Register S3C2440 Special Register
Emulation을 위한 주요변수 2 F Address D E UINT32 pipeLine[2][3] Command UINT32 pipeLine[2][3] UINT32 iWhatCommand[2] Command index pipe 컴퓨터 구조에서 Fetch와 Decode, Execute가 순차적으로 일어나지 않습니다. 즉, 동시에 일어나게 됩니다. 즉 새로운 명령어를 Fetch하게 되면 그 명령어가 해석되고, 실행되는 것이 아니라 새로운 명령어를 Fetch하면 그전에 Fetch했던 명령어를 Decode하고
Emulation의 주요 함수 - Fetch() UINT32 pipeLine[2][3] F Command D Command E Command Function Line 3 Char SDRAMBuffer (64M) Decode() Fetch() Execute() F Address D Address E Address 추출 4byte Little-Endian 4byte 2 1 UINT32 pipeLine[2][3] F Command D Command E Command F Address D Address E Address
Emulation의 주요 함수 - Decode() UINT32 pipeLine[2][3] F Command D Command E Command Opcode 분석 루틴 Function Line Fetch() F Address D Address E Address Decode() Little-Endian 4byte 2 3 4 1 UINT32 iWhatCommand[2] D Command index E Execute() UINT32 iWhatCommand[2] D Command index E
1 2 3 Emulation의 주요 함수 - Execute() UINT32 iWhatCommand[2] D E Command index E Function Line Fetch() Execute() Decode() F Address D E Command UINT32 pipeLine[2][3] 1 2 3 SDRAMBuffer, Register, special Register
시연
주요 함수 코드 C#에서 C로 작성된 DLL 호출-1 선언 호출 참고: http://www.codeproject.com/KB/cs/usecdlllibincs.aspx
주요 함수 코드 C#에서 C로 작성된 DLL 호출-2 ● PInvoke( Platform Invocation Service) – 관리코드에서 비관리 코드를 호출하는 것 C# Win32 API Why? 참고: http://classname.tistory.com/18?srchid=BR1http%3A%2F%2Fclassname.tistory.com%2F18
주요 함수 코드 C#에서 C로 작성된 DLL 호출-3 참고: http://classname.tistory.com/18?srchid=BR1http%3A%2F%2Fclassname.tistory.com%2F18
주요 함수 코드 C or C++를 이용한 DLL 작성법
주요 이용tools IDA-Pro 소개 참고: http://www.hex-rays.com/idapro/
주요 이용tools IDA-Pro 1
주요 이용tools Source Insight 소개 http://www.sourceinsight.com/
주요 이용tools Source Insight-1
주요 이용 Site http://www.codeproject.com/ http://forum.falinux.com/zbxe/
Q & A