久久中文视频-久久中文网-久久中文亚洲国产-久久中文字幕久久久久-亚洲狠狠成人综合网-亚洲狠狠婷婷综合久久久久

以文本方式查看主題

-  曙海教育集團論壇  (http://www.xinguifushi.cn/bbs/index.asp)
--  Wince技術討論區  (http://www.xinguifushi.cn/bbs/list.asp?boardid=9)
----  2440 5.0BSP 移植到wince6.0 過程  (http://www.xinguifushi.cn/bbs/dispbbs.asp?boardid=9&id=1366)

--  作者:wangxinxin
--  發布時間:2010-11-16 9:35:21
--  2440 5.0BSP 移植到wince6.0 過程
編譯模擬器的精簡版本,然后把模擬器的OAL相關的代碼進行刪除,換成5.0BSP的代碼(把KITL相關的代碼刪除)并修改相應的sources文件。

二、把C:\\WINCE500\\PLATFORM\\SMDK2440A\\Src\\Common代替H:\\WINCE600\\PLATFORM\\QxCE6BSP\\SRC\\Common
C:\\WINCE500\\PLATFORM\\SMDK2440A\\Src\\Inc代替H:\\WINCE600\\PLATFORM\\QxCE6BSP\\SRC\\Inc

三、編譯OAL的時候會調用H:\\WINCE600\\PLATFORM\\QxCE6BSP\\SRC\\Common下的很多代碼生成的lib,所以我現在首先編譯H:\\WINCE600\\PLATFORM\\QxCE6BSP\\SRC\\Common下面的所有代碼,在VS2005 上點中Common然后右鍵選擇“rebuild”,有錯誤了(有錯誤才是正常的,(*^__^*) 嘻嘻……)
BUILD: [01:0000000039:WARNN ] H:\\WINCE600\\PLATFORM\\QxCE6BSP\\src\\common\\Intr\\.\\intr.c(387) : warning C4013: \'NKCallIntChain\' undefined; assuming extern returning int
BUILD: [01:0000000040圖片點擊可在新窗口打開查看ROGC ] Compiling .\\fiq.c
BUILD: [00:0000000045圖片點擊可在新窗口打開查看ROGC ] Building COMPILE Pass in H:\\WINCE600\\PLATFORM\\QxCE6BSP\\src\\common\\Intr_dvs\\ directory.
BUILD: [01:0000000055圖片點擊可在新窗口打開查看ROGC ] Compiling .\\intr.c
BUILD: [01:0000000058:WARNN ] H:\\WINCE600\\PLATFORM\\QxCE6BSP\\src\\common\\Intr_dvs\\.\\intr.c(637) : warning C4013: \'NKCallIntChain\' undefined; assuming extern returning int
(這個VS2005 唯一不好的地方就是編譯錯誤不是紅色顯示的)
出錯地方
// First find if IRQ is claimed by chain
        sysIntr = NKCallIntChain((UCHAR)irq);

暈,上面僅僅是警告,但是估計也有問題。跑到Common下打開build.err看看,有錯誤。
BUILD: [Thrd:Sequence:Type  ] Message
BUILD: [01:0000000469:ERRORE] fal.lib(falmain.obj) : error LNK2019: unresolved external symbol FMDHOOK_UnhookInterface referenced in function DSK_Deinit
BUILD: [01:0000000470:ERRORE] fal.lib(falmain.obj) : error LNK2019: unresolved external symbol FMDHOOK_HookInterface referenced in function "void __cdecl GetFMDInterface(struct _DEVICE *)" (?GetFMDInterface@@YAXPAU_DEVICE@@@Z)
BUILD: [01:0000000471:ERRORE] H:\\WINCE600\\platform\\QxCE6BSP\\target\\ARMV4I\\debug\\smflash.dll : fatal error LNK1120: 2 unresolved externals


怎么回事呢?
Src\\Common\\Smartmedia\\Dll中的sources文件修改
在SOURCELIBS語句段中原有的兩個庫的基礎上增加下面的庫
$(_COMMONOAKROOT)\\lib\\$(_CPUINDPATH)\\fmdhooklib.lib \\
之后又有新的錯誤了。

BUILD: [Thrd:Sequence:Type  ] Message
BUILD: [01:0000000423:ERRORE] H:\\WINCE600\\PLATFORM\\QxCE6BSP\\src\\common\\Smartmedia\\Dll\\sources(10) :  U1033: syntax error : \'$(_COMMONOAKROOT)\\lib\\$(_CPUINDPATH)\\fal.lib\' unexpected
BUILD: [01:0000000425:ERRORE] NMAKE.EXE TargetLibFiles  -i -c BUILDMSG=Stop.  BUILDROOT=H:\\WINCE600\\PLATFORM\\QxCE6BSP CLEANBUILD=1 LINKONLY=1 NOPASS0=1 failed - rc = 2

暈倒,把sources換成ztg0021的那個就好了!

繼續編譯。
BUILD: [01:0000000030:ERRORE] H:\\WINCE600\\PLATFORM\\QxCE6BSP\\src\\oal\\OALLIB\\.\\init.c(55) : error C2065: \'dwNKDrWatsonSize\' : undeclared identifier

暈倒我的沒有extern DWORD dwNKDrWatsonSize;會提示dwNKDrWatsonSize未定義錯誤,加上就好了,但是ztg0021的卻要屏蔽
extern DWORD dwNKDrWatsonSize 才行的。希望等下不要出亂子。

=================================使用ztg0021的改動OALEXE下面的sources導致好多錯誤=============================
BUILD: [Thrd:Sequence:Type  ] Message
BUILD: [01:0000000056:ERRORE] oal_timer_s3c2440a.lib(timer.obj) : error LNK2001: unresolved external symbol pQueryPerformanceCounter
BUILD: [01:0000000057:ERRORE] oal_timer_s3c2440a.lib(timer.obj) : error LNK2001: unresolved external symbol pQueryPerformanceFrequency
BUILD: [01:0000000058:ERRORE] oal_timer_s3c2440a.lib(timer.obj) : error LNK2001: unresolved external symbol curridlehigh
BUILD: [01:0000000059:ERRORE] oal_timer_s3c2440a.lib(timer.obj) : error LNK2001: unresolved external symbol idleconv
BUILD: [01:0000000060:ERRORE] oal.lib(intr.obj) : error LNK2001: unresolved external symbol g_oalLogMask
BUILD: [01:0000000061:ERRORE] oal_ioctl_s3c2440a.lib(reboot.obj) : error LNK2001: unresolved external symbol g_oalLogMask
BUILD: [01:0000000062:ERRORE] oal.lib(args.obj) : error LNK2001: unresolved external symbol g_oalLogMask
BUILD: [01:0000000063:ERRORE] oal_timer_s3c2440a.lib(timer.obj) : error LNK2001: unresolved external symbol g_oalLogMask
BUILD: [01:0000000064:ERRORE] oal_intr_s3c2440a.lib(intr.obj) : error LNK2001: unresolved external symbol g_oalLogMask
BUILD: [01:0000000065:ERRORE] oal_rtc_s3c2440a.lib(rtc.obj) : error LNK2001: unresolved external symbol g_oalLogMask
BUILD: [01:0000000066:ERRORE] oal.lib(init.obj) : error LNK2001: unresolved external symbol g_oalLogMask
BUILD: [01:0000000067:ERRORE] oal_timer_s3c2440a.lib(timer.obj) : error LNK2001: unresolved external symbol dwReschedTime
BUILD: [01:0000000068:ERRORE] oal_timer_s3c2440a.lib(timer.obj) : error LNK2001: unresolved external symbol CurMSec
BUILD: [01:0000000069:ERRORE] oal_power_s3c2440a.lib(off.obj) : error LNK2019: unresolved external symbol OALKitlPowerOn referenced in function OEMPowerOff
BUILD: [01:0000000070:ERRORE] oal_power_s3c2440a.lib(off.obj) : error LNK2019: unresolved external symbol OALKitlPowerOff referenced in function OEMPowerOff
BUILD: [01:0000000071:ERRORE] oal_rtc_s3c2440a.lib(rtc.obj) : error LNK2019: unresolved external symbol SC_SetLastError referenced in function OALIoCtlHalInitRTC
BUILD: [01:0000000072:ERRORE] oal.lib(init.obj) : error LNK2019: unresolved external symbol OALKitlStart referenced in function OEMInit
BUILD: [01:0000000073:ERRORE] oal.lib(init.obj) : error LNK2001: unresolved external symbol dwNKDrWatsonSize
BUILD: [01:0000000074:ERRORE] oal.lib(init.obj) : error LNK2001: unresolved external symbol CEProcessorType
BUILD: [01:0000000075:ERRORE] oal.lib(ioctl.obj) : error LNK2001: unresolved external symbol OALIoCtlVBridge
BUILD: [01:0000000076:ERRORE] H:\\WINCE600\\platform\\QxCE6BSP\\target\\ARMV4I\\debug\\oal.exe : fatal error LNK1120: 14 unresolved externals
BUILD: [01:0000000081:ERRORE] EDITBIN : fatal error LNK1104: cannot open file \'H:\\WINCE600\\platform\\QxCE6BSP\\target\\ARMV4I\\debug\\oal.exe\'

再次編譯OALLib,莫名出現錯誤        3        Error: Found NULL or missing TOC pointer for nk.exe        ?記得剛才是沒有錯誤了的,真是郁悶。

重新編譯整個OAL

build.err變成
BUILD: [Thrd:Sequence:Type  ] Message
BUILD: [01:0000000127:ERRORE] oal_timer_s3c2440a.lib(timer.obj) : error LNK2001: unresolved external symbol pQueryPerformanceCounter
BUILD: [01:0000000128:ERRORE] oal_timer_s3c2440a.lib(timer.obj) : error LNK2001: unresolved external symbol pQueryPerformanceFrequency
BUILD: [01:0000000129:ERRORE] oal_timer_s3c2440a.lib(timer.obj) : error LNK2001: unresolved external symbol curridlehigh
BUILD: [01:0000000130:ERRORE] oal_timer_s3c2440a.lib(timer.obj) : error LNK2001: unresolved external symbol idleconv
BUILD: [01:0000000131:ERRORE] oal.lib(intr.obj) : error LNK2001: unresolved external symbol g_oalLogMask
BUILD: [01:0000000132:ERRORE] oal_ioctl_s3c2440a.lib(reboot.obj) : error LNK2001: unresolved external symbol g_oalLogMask
BUILD: [01:0000000133:ERRORE] oal.lib(args.obj) : error LNK2001: unresolved external symbol g_oalLogMask
BUILD: [01:0000000134:ERRORE] oal_timer_s3c2440a.lib(timer.obj) : error LNK2001: unresolved external symbol g_oalLogMask
BUILD: [01:0000000135:ERRORE] oal_intr_s3c2440a.lib(intr.obj) : error LNK2001: unresolved external symbol g_oalLogMask
BUILD: [01:0000000136:ERRORE] oal_rtc_s3c2440a.lib(rtc.obj) : error LNK2001: unresolved external symbol g_oalLogMask
BUILD: [01:0000000137:ERRORE] oal.lib(init.obj) : error LNK2001: unresolved external symbol g_oalLogMask
BUILD: [01:0000000138:ERRORE] oal_timer_s3c2440a.lib(timer.obj) : error LNK2001: unresolved external symbol dwReschedTime
BUILD: [01:0000000139:ERRORE] oal_timer_s3c2440a.lib(timer.obj) : error LNK2001: unresolved external symbol CurMSec
BUILD: [01:0000000140:ERRORE] oal_power_s3c2440a.lib(off.obj) : error LNK2019: unresolved external symbol OALKitlPowerOn referenced in function OEMPowerOff
BUILD: [01:0000000141:ERRORE] oal_power_s3c2440a.lib(off.obj) : error LNK2019: unresolved external symbol OALKitlPowerOff referenced in function OEMPowerOff
BUILD: [01:0000000142:ERRORE] oal_rtc_s3c2440a.lib(rtc.obj) : error LNK2019: unresolved external symbol SC_SetLastError referenced in function OALIoCtlHalInitRTC
BUILD: [01:0000000143:ERRORE] oal.lib(init.obj) : error LNK2019: unresolved external symbol OALKitlStart referenced in function OEMInit
BUILD: [01:0000000144:ERRORE] oal.lib(init.obj) : error LNK2001: unresolved external symbol dwNKDrWatsonSize
BUILD: [01:0000000145:ERRORE] oal.lib(init.obj) : error LNK2001: unresolved external symbol CEProcessorType
BUILD: [01:0000000146:ERRORE] oal.lib(ioctl.obj) : error LNK2001: unresolved external symbol OALIoCtlVBridge
BUILD: [01:0000000147:ERRORE] H:\\WINCE600\\platform\\QxCE6BSP\\target\\ARMV4I\\debug\\oal.exe : fatal error LNK1120: 14 unresolved externals
BUILD: [01:0000000152:ERRORE] EDITBIN : fatal error LNK1104: cannot open file \'H:\\WINCE600\\platform\\QxCE6BSP\\target\\ARMV4I\\debug\\oal.exe\'

參照ztg0021的帖子修改之后重新編譯BSP下的Common,最后導致錯Error: Found NULL or missing TOC pointer for nk.exe        ?這是怎么回事呢?

現在整個BSP一起編譯,還會出現如下錯誤,原因是KITL相關東西我現在還沒有加上去。
BUILD: [Thrd:Sequence:Type  ] Message
BUILD: [01:0000000557:ERRORE] oal_power_s3c2440a.lib(off.obj) : error LNK2019: unresolved external symbol OALKitlPowerOn referenced in function OEMPowerOff
BUILD: [01:0000000558:ERRORE] oal_power_s3c2440a.lib(off.obj) : error LNK2019: unresolved external symbol OALKitlPowerOff referenced in function OEMPowerOff
BUILD: [01:0000000559:ERRORE] oal.lib(init.obj) : error LNK2019: unresolved external symbol OALKitlStart referenced in function OEMInit
BUILD: [01:0000000560:ERRORE] H:\\WINCE600\\platform\\QxCE6BSP\\target\\ARMV4I\\debug\\oal.exe : fatal error LNK1120: 3 unresolved externals
BUILD: [01:0000000565:ERRORE] EDITBIN : fatal error LNK1104: cannot open file \'H:\\WINCE600\\platform\\QxCE6BSP\\target\\ARMV4I\\debug\\oal.exe\'



屏蔽上述代碼后,編譯整個BSP,天啊,居然成功了,NK.bin和NK.nb0生成了。
下載到我的產品。暈!,LCD可以看見畫面了!
串口信息如下。

Windows CE Kernel for ARM (Thumb Enabled) Built on Nov 24 2008 at 14:58:23
ProcessorType=0920  Revision=0
OEMAddressTable = 8022a8d0
DCache: 8 sets, 64 ways, 32 line size, 16384 size
ICache: 8 sets, 64 ways, 32 line size, 16384 size
Error Reporting Memory Reserved, dump size = 00020000
Setting up softlog at 0x836cc000 for 0x800 entries
Booting Windows CE version 6.00 for (ARM)
&pTOC = 805a1c1c, pTOC = 80247b04, pTOC->ulRamFree = 805a6000, MemForPT = 00001000

Old or invalid version stamp in kernel structures - starting clean!
Configuring: Primary pages: 12573, Secondary pages: 0, Filesystem pages = 6286

Booting kernel with clean memory configuration:
Memory Sections:
[0] : start: 805a8000, extension: 00007000, length: 0311d000
NKStartup done, starting up kernel.
Windows CE KernelInit
Reserve VM for kernel XIP DLls, first = c0010000, last = c02b0000
g_pprcNK == 0x8059faa0
Updated eptr->e32_vsize to = 00036000
Initializing Memory Mapped File Support
Scheduling the first thread.
Detecting VFP... VFP Not Found!
LoaderInit: Initialing loader
Updated eptr->e32_vsize to = 00036000
Updated eptr->e32_vsize to = 000a2000
Updated eptr->e32_vsize to = 00010000
PGPOOL: Reserved 768 pages for Loader pool
PGPOOL: Reserved 256 pages for File pool
OSAXST0: Platform Name = PLATFORM_TYPE
OSAXST1: >>> Loading Module \'kd.dll\' (0x836B087C) at address 0xC0010000-0xC0045000 in Process \'NK.EXE\' (0x8059FAA0)
KD: Starting kernel debugger software probe (KdStub) - KD API version 22
OSAXST1: >>> Loading Module \'NK.EXE\' (0x8059FAA0) at address 0x80200000-0x80236000 in Process \'NK.EXE\' (0x8059FAA0)
Message Queue support initialized, g_hMsgQHeap = d0080010
OSAXST1: >>> Loading Module \'filesys.dll\' (0x8368B648) at address 0xC0180000-0xC0216000 in Process \'NK.EXE\' (0x8059FAA0)
OSAXST1: >>> Loading Module \'k.fpcrt.dll\' (0x8368B780) at address 0xC0160000-0xC0178000 in Process \'NK.EXE\' (0x8059FAA0)
OSAXST1: >>> Loading Module \'fsdmgr.dll\' (0x8368B8C8) at address 0xC0260000-0xC02A6000 in Process \'NK.EXE\' (0x8059FAA0)
FSDMGR!DllMain: DLL_PROCESS_ATTACH
CertMod.dll not found, using old OEM Trust Model
FileSystem Starting - starting with clean file system
FSDMGR!STOREMGR_Initialize
FSDMGR!InitializeStoreAPI
FSDMGR!MountTable_t::RegisterVolumeName: Registered "StoreMgr" at index 2FSDMGR!MountTable_t::RegisterVolume: Registered volume at index 2 (Name="StoreMgr", MountFlags=0x1)FSDMGR!InitializeROMFileSystem: File System=ROM
OSAXST1: >>> Loading Module \'romfsd.dll\' (0x83674B70) at address 0xC0220000-0xC0227000 in Process \'NK.EXE\' (0x8059FAA0)
FSDMGR!MountTable_t::RegisterVolumeName: Registered "ROM" at index 3FSDMGR!MountTable_t::RegisterVolume: Registered volume at index 3 (Name="ROM", MountFlags=0x71)FSVOL: Opening existing volume
FSVOL: Volume heap already initialized
FSREG: Mounted ROM portion of boot registry
FSVOL: Creating clean virtual volume
FSVOL: Initializing volume heap
FSREG: Mounted RAM portion of boot registry
FS: Creating signal event ReleaseFSD
FSREG: Unable to read value "Start DevMgr" under HKEY_LOCAL_MACHINE\\init\\BootVars
FILESYS: Starting boot phase 0.
FSDMGR!STOREMGR_StartBootPhase BootPhase=0 (PrevBootPhase=-1)
FSDMGR: File security disabled.
FSDMGR!AutoLoadFileSystems: CurrentBootPhase=0, LoadFlags=1
FSDMGR!AutoLoadFileSystem: CurrentBootPhase=0, RootKey=System\\StorageManager\\AutoLoad, FileSystem_t=ObjectStore
FSDMGR!PNPThread: Using PNPUnloadDelay of 4096
FSDMGR!PNPThread: PNPThread starting!
FILESYS: RAM File System FSD_MountDisk registering folder "Object Store"
FSDMGR!MountTable_t::RegisterVolumeName: Registered "Object Store" at index 4FSDMGR!MountTable_t::RegisterVolume: Registered volume at index 4 (Name="", MountFlags=0x46)FILESYS:
主站蜘蛛池模板: 蜜桃欧美性大片 | 免费高清特黄a 大片 | 国产做国产爱免费视频 | 青青影院一区二区免费视频 | 亚洲一区二区三区福利在线 | 在线播放一区二区三区 | 国产日本精品 | 亚洲一区日韩一区欧美一区a | 成年人免费网站视频 | 免费国产精品视频 | 一区二区三区在线 | 香蕉毛片a| 国产亚洲欧美一区 | 好爽~好硬~好紧~蜜芽 | japanese色系tube护士 | 国产一区二区三区四区波多野结衣 | 小明日韩在线看看永久区域 | 欧美成年黄网站色高清视频 | 国产成人欧美视频在线 | 99久久精品全部 | 久久国产片 | 久久久久久网站 | 日韩视频免费一区二区三区 | 欧美日韩国产一区二区三区播放 | 曰韩三级| 久久精品8 | 免费特黄一级欧美大片在线看 | 国产日韩久久久久69影院 | 国产精品久久视频 | 97视频免费播放观看在线视频 | 美女被免费视频网站a国产 美女被免费网站视频软件 美女被免费网站在线软件 美女被免费网站在线视频软件 | 三级国产在线观看 | 国产乱码一区二区三区四川人 | 亚洲国产精品日韩在线观看 | 久久精品国产一区二区 | 日本成人免费在线 | 国产麻豆入在线观看 | 国产精品久久久久久福利 | 亚洲国产欧美一区二区欧美 | 日韩字幕| 国产第二页 |