Symbian OS 模拟器编译过程(上)

来源:互联网 发布:电磁波 知乎 编辑:程序博客网 时间:2024/05/16 15:12

先编译

1.EntryPoints项目的

edll工程edll.lib

eexe工程eexe.lib

ekll工程ekll.lib

estub工程estub.lib


2.Emulator项目的

emulator工程emulator.dll


3.User项目的

scppnwdl工程scppnwdl.lib

euser工程生成euser.dll


4.epoc工程生成epoc.exe

5.设置EPOC为启动工程.

6.在estub工程uc_stub.cpp里的 WinMain设置断点

7.运行epoc.exe 可以看到需要加载ekern.exe


8.Kernel项目

编译scppnwdl_kern工程生成scppnwdl_kern.lib

编译ekern工程生成ekern.exe

9.运行epoc.exe 进入内核代码 

文件 os\kernelhwsrv\kernel\eka\kernel\目录下的sinit.cpp中的 KernelMain()方法,

可以看到需要加载ecust.dll


10.Emulator项目

编译ecust工程生成ecust.dll


11.需要将生成epoc.exe的路径中包含\epoc32\release\wins\或\epoc32\release\winscw,并按SDK模拟器的目录与生成路径配置\epoc32\data\目录与epoc.ini文件

文件内容如何下:

LogToDebugger=1
LogToFile=0
Extension=btracex.ldd;elocd.ldd
PlatSecEnforcement=Off
;NoGui=1
JustInTime=1
DebugMask=0
CrazyScheduling=off
TextShell=1

配置正确后 运行epoc.exe 能显示如下提示

[screens] = 1
_epoc_drive_c = e:\vm\symbian\epoc32\wins\c\
_epoc_drive_z = e:\vm\symbian\epoc32\release\wins\bin\debug\z\
CommandLine
ConfigCount = 1
CrazyScheduling = off
DebugMask = 0
EmulatorDataPath = e:\vm\symbian\epoc32\data\
EmulatorImagePath = C:\DOCUME~1\HP\LOCALS~1\Temp\epoc\e\vm\symbian\epoc32\release\wins\bin\debug\
EmulatorMediaPath = e:\vm\symbian\epoc32\data\media\
EmulatorPath = e:\vm\symbian\epoc32\release\wins\bin\debug\
Extension = btracex.ldd;elocd.ldd;?medusiiw.pdd;exstart
JustInTime = 1
LogToDebugger = 1
LogToFile = 0
MachineName = epoc
PlatSecEnforcement = Off
TextShell = 1
PlatSecEnforcement OFF
PlatSecDiagnostics OFF
PlatSecProcessIsolation OFF
PlatSecEnforceSysBin OFF
CrazyScheduling OFF
PlatSecDisabledCaps NONE
       0.000 Thread 0038dd00 created @ 0x38dd00 - Win32 Thread ID 0xaac
       0.000 Thread EKern.exe::Supervisor created @ 0x1372be8 - Win32 Thread ID 0xf6c
       0.000 Thread EKern.exe::DfcThread0 created @ 0x13738f8 - Win32 Thread ID 0x100c
       0.000 Thread EKern.exe::DfcThread1 created @ 0x1373d58 - Win32 Thread ID 0x10b4
       0.000 Thread EKern.exe::DShBufThread created @ 0x13742b0 - Win32 Thread ID 0x15c8
       0.000 Thread EKern.exe::TimerThread created @ 0x13748c8 - Win32 Thread ID 0x838

并报错误提示.


(未完待续)




原创粉丝点击