SMDK2440bsp for WINDOW MOBILE移植问题?
我是wince菜鸟经过几个月的潜水修炼中自觉可以出来提些问题。最近公司将上马window mobile所以我先找公司借了块扬创的开发板来移植练手。
我所用的开发板配置:
(1)S3C2440A:32bit ARM920T 内核,标称工作频率:400MHz
(2)系统时钟:内部PLL 产生400MHz CPU 内核工作频率,外部总线频率:100~133MHz
(3)LCD 控制器:CPU 内置STN/CSTN/TFT LCD 控制器,支持1024*768 分辨率以下的各种液晶
(4)触摸屏控制器:CPU 内置4 线制电阻式触摸屏控制器
(5)100MHz 以太网控制器
(6)1 通道5 线制串口,2 通道3 线制串口
(7)1 通道USB1.1 主机接口,可接usb hub,扩充多个usb 主口
(8)1 通道USB1.1 设备接口
(9)SD/MMC 卡接口
(10)音频输入输出接口
(12)LCD 接口,可接3.5 寸/7 寸/4.3 寸/2.8 寸/10 寸等等尺寸TFT 真彩液晶屏
(13)专用复位电路
(16)触摸屏控制器
(17)RTC 实时时钟及大容量后备锂电池
(18)标准20pin JTAG 调试接口
(20)4 只自定义功能LED 指示灯
(21)电源指示灯
(22)6 只自定义按键,用户可以组合为“上”“下”“左”“右”“确认”“取消”6 个常见功能键
(23)电源开关
(24)复位按键
(29)SPI 接口
(31)标准配置64MBytes Nand-Flash
(32)标准配置64MBtyes SDRAM
基于SMDK2440三星原厂提供的forWINDOW MOBILE bsp包做的移植。
我的移植步骤是
(1)stepldr,这部分移植涉及一些芯片时序修改,还有就是nandflash的块页数的调整,以及串口gpio口配置的修改,
此部分已经完成,
在我的超级终端里可以打印出以下信息
Step ldr
NandFlash checking is passed ,then read !!
pCopyfir:0x30138000
*pCopyfir:0xea0003fe
Jump to the image...
在stepldr 里我把eboot的代码copy到了0x30138000这个物理内存地址起始的内存空间里
(2)eboot,这部分无法进行下去了。原因是当程序跳转到0x30138000地址没有任何反应了。
我打开eboot.nb0用hex方式查看这个bin文件看到其实处内容FE 03 00 EA 之后是一大段的00,在相隔了4k地址的地方才出现连续的非00区域;与stepldr.nb1这个文件头完全不一样,在stepldr的里我可以看到0A 00 00 EA 起始的ARM执行文件的文件头,可是在eboot.nb0里是没有的,我很怀疑这个eboot.nb0的单独执行能力?不知有哪位仁兄能给我解释一下这个eboot的文件头结构?同时也有可能是我的思路有问题,希望有经验的同仁能给我指引!
同时我在stepldr的startup.s没有看到MMU的使能代码可以肯定stepldr用的是实地址模式,我很怀疑这个跳转地址不是一个真正的eboot主程序的入口地址因此eboot无法执行,可是eboot的主程序入口地址在哪里呢?