6746|12

80

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

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的主程序入口地址在哪里呢?

最新回复

最终搞定没  详情 回复 发表于 2010-7-1 00:03
点赞 关注

回复
举报

88

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
nb0 文件的确是有前四K是0

最开始是nb0文件的标志吧。在MSDN有粗略的讲法。

wince的BSP放到WM的PB不能运行吧。要专用的BSP的。
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
wince的BSP放到WM的PB不能运行。要专用的BSP的。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

4
 
我那个bsp三星针对WM5的我WM6里修改了使之能编译通过,gooogleman兄是这方面的专家希望能多给我指点
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

5
 
"可是eboot的主程序入口地址在哪里呢", 在你 eboot.bib 內有描述, 再搭配你的 OEMAddressTable 即可知.

Paul, Chao @ Techware
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

6
 
;------------------------------------------------------------------------------
;
; TABLE FORMAT
;       cached address, physical address, size
;------------------------------------------------------------------------------

g_oalAddressTable

        DCD     0x80000000, 0x30000000, 64      ; 32 MB DRAM BANK 6
        DCD     0x84000000, 0x10000000, 32      ; nGCS2: PCMCIA/PCCARD
        DCD     0x86000000, 0x18000000, 32      ; 32 MB SROM(SRAM/ROM) BANK 3
        DCD     0x88000000, 0x20000000, 32      ; 32 MB SROM(SRAM/ROM) BANK 4
        DCD     0x8A000000, 0x28000000, 32      ; 32 MB SROM(SRAM/ROM) BANK 5
        DCD     0x8C000000, 0x08000000, 32      ; 32 MB DRAM BANK 6
        DCD     0x90800000, 0x48000000,  1      ; Memory control register
        DCD     0x90900000, 0x49000000,  1      ; USB Host register
        DCD     0x90A00000, 0x4A000000,  1      ; Interrupt Control register
        DCD     0x90B00000, 0x4B000000,  1      ; DMA control register
        DCD     0x90C00000, 0x4C000000,  1      ; Clock & Power register
        DCD     0x90D00000, 0x4D000000,  1      ; LCD control register
        DCD     0x90E00000, 0x4E000000,  1      ; NAND flash control register
        DCD     0x90F00000, 0x4F000000,  1      ; Camera control register
                DCD     0x91000000, 0x50000000,  1      ; UART control register
        DCD     0x91100000, 0x51000000,  1      ; PWM timer register
        DCD     0x91200000, 0x52000000,  1      ; USB device register
        DCD     0x91300000, 0x53000000,  1      ; Watchdog Timer register
        DCD     0x91400000, 0x54000000,  1      ; IIC control register
        DCD     0x91500000, 0x55000000,  1      ; IIS control register
        DCD     0x91600000, 0x56000000,  1      ; I/O Port register
        DCD     0x91700000, 0x57000000,  1      ; RTC control register
        DCD     0x91800000, 0x58000000,  1      ; A/D convert register
        DCD     0x91900000, 0x59000000,  1      ; SPI register
        DCD     0x91A00000, 0x5A000000,  1      ; SD Interface register
        DCD     0x92000000, 0x00000000, 32      ; 32 MB SROM(SRAM/ROM) BANK 0
        DCD     0x00000000, 0x00000000,  0      ; end of table

;------------------------------------------------------------------------------
MEMORY
;   Name     Start     Size      Type
;   -------  --------  --------  ----
    ARGS     80020000  00000800  RESERVED
    RAM      80026000  00006000  RAM   
    STACK    8002c000  00004000  RESERVED
    EBOOT    80038000  00040000  RAMIMAGE
    BINFS    80080000  00021000  RESERVED
   
; Area used to cache nk.bin while programming flash
    FLSCACHE 80200000  01400000  RESERVED
    DISPLAY  83F00000  00100000  RESERVED

CONFIG
        COMPRESSION=OFF
        PROFILE=OFF
        KERNELFIXUPS=ON
        ROMOFFSET=25FC8000
        SRE=ON
        ROMSTART=80038000
        ROMWIDTH=32
        ROMSIZE=40000

我把boot.bib 和OEMAddressTable 贴出来了,请问paul_chao具体怎么计算?g_oalAddressTable这个表我没有做过修改,可能与我的开发板有出入,我得先查下原理图看看我的sram是接什么片选
 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

7
 
1. In Eboot.bib
EBOOT    80038000  00040000  RAMIMAGE
ROMSTART=80038000

所以你 eboot 的起始位置是 VA=0x80038000

2. In OEMAddressTable
DCD    0x80000000, 0x30000000, 64      ; 32 MB DRAM BANK 6

故 VA=0x80000000 => PA=0x30000000

所以 Physical Address 的起始位置 0x80038000 - 0x80000000 + 0x30000000 = 0x30038000

故請修改 stepldr, 將 eboot 的位置改為 0x30038000.

Paul, Chao @ Techware
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

8
 
谢谢Paul, Chao的提醒,我在axd里反汇编了这段代码[0xea0003fe]   b        0x30039000
0xea0003fe这是条跳转指令,直接跳到了0x30039000地址看来很有意思,这也能解释eboot里为什么中间留了一大堆00啦
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

9
 
看来我的问题已经很明朗了,之前我怀疑eboot.nb0无法在nandflash里单独执行是错误的,eboot.nb0完全是可以执行的,至于在哪里挂掉了还的debug一下
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

10
 
斑竹加我Q吧
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

11
 
斑竹加我Q吧
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

12
 
斑竹加我Q吧
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

13
 
最终搞定没
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
Microchip 直播|利用motorBench开发套件高效开发电机磁场定向控制方案 报名中!
直播主题:利用motorBench开发套件高效开发电机磁场定向控制方案
直播时间:2025年3月25日(星期二)上午10:30-11:30
快来报名!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表