请教WinCE系统启动问题

hxbin1979 2007-01-15 12:12:51
我用的是一块2410的开发板,根据资料说明定制的系统下载到扳子上,系统能正确启动,但是当我使用自定义的系统编译时会提示ROM与RAM的地址冲突,提示错误为:
Copy Section Offset: 8cef6f84
FileSys 4K Chunks/Mbyte: 128 <2Mbyte 128 2-4Mbyte 0 4-6Mbyte 0 >6Mbyte
CPU Type: 01c0h
Extensions Pointer: 8c20248c
Total ROM size: 0220f418 ( 35714072)
Error: Ram start overlaps rom binary
Rom end : 0x8e40f418
Ram start: 0x8e029000
NK
physfirst 8c200000
physlast 8e40f418
ulRAMFree 8e029000

错误应该是因为我自定义的系统比较大,需要在config.bib中增加NK的内存分配,于是修改相应的RAMIMAGE和RAM的内存分配(地址是连续的),pb编译成功,但是下在到扳子上系统无法启动,提示信息为:
Windows CE Firmware Init
INFO: Initializing system interrupts...
INFO: Initializing system clock(s)...
INFO: Initializing driver globals area...
SDMMC config current rGPGCON: ff95fdba
SDMMC config set rGPGCON: ffa5fdba
SDMMC config Init Done.
OEMInit Done...
Sp=ffffc7cc

修改前的config.bib:
; NK name
#define NKNAME NK

; NK Start address
#define NKSTART 8C200000
#define NKLEN 01D00000

#define RAMSTART 8E000000
#define RAMLEN 01F00000

$(NKNAME) $(NKSTART) $(NKLEN) RAMIMAGE
RAM $(RAMSTART) $(RAMLEN) RAM

; NK 80040000 01EB0000 RAMIMAGE
; RAM 8c200000 01C00000 RAM

; Common RAM areas
AUD_DMA 8c002000 00002000 RESERVED
DRV_GLB 8c010000 00010000 RESERVED
DBGSER_DMA 8c022000 00002000 RESERVED
SER_DMA 8c024000 00002000 RESERVED
IR_DMA 8c026000 00002000 RESERVED
SD_DMA 8c028000 00008000 RESERVED
EDBG 8c030000 00020000 RESERVED
CPXIPCHAIN 8c050000 00008000 RESERVED
SLEEP_BUFF 8c058000 00004000 RESERVED
DISPLAY 8c100000 00100000 RESERVED


CONFIG

COMPRESSION=ON
KERNELFIXUPS=ON


IF IMGPROFILER
PROFILE=ON
ENDIF
IF IMGPROFILER !
PROFILE=OFF
ENDIF

ROMFLAGS=0
ROMSTART=$(NKSTART)
ROMWIDTH=32
ROMSIZE=$(NKLEN)

反复做了多次实验,没有得到结果,我又用第一次按资料说明定制的、可以正确启动的系统,将config.bib的RAM启示地址偏移200000,编译成功,下载到扳子上也是不能启动,和上述提示相同。

现在只能把目标定位在Boot Loader系统初始化阶段的内存空间映射,有资料提到内存分配表,但是不知道此表在哪个文件中,是否修改了此表的内存分配就可以了。

我使用的pb4.2,通过USB将NK.bin直接下载到0x30200000
...全文
701 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
slyzhang 2007-01-15
  • 打赏
  • 举报
回复
; NK Start address
#define NKSTART8C200000
#define NKLEN01D00000

#define RAMSTART 8E000000
#define RAMLEN01F00000

这四个地址应该是在一个范围的, 不能顺便修改,必须成对修改,以适应两个地址空间都在以前那个大的地址空间内。

hxbin1979 2007-01-15
  • 打赏
  • 举报
回复
那位兄弟有SMDK2410 BSP的文档资料,给俺发一份zzkn11@163.com
我用的开发板是别人转手的,资料残缺不全,感谢先!
hxbin1979 2007-01-15
  • 打赏
  • 举报
回复
2410的OEMAddressTable在WINCEROOT\PLATFORM\SMDK2410\KERNEL\HAL\ARM和WINCEROOT\PLATFORM\SMDK2410\NBOOT路径下的map.a的文件中
DCD 0x80000000, 0x00000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 0
DCD 0x82000000, 0x08000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 1
DCD 0x84000000, 0x10000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 2
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, 0x30000000, 64 ; 64 MB DRAM BANK 0
Kernel的起始地址是0x30200000,对应的虚拟地址就是8C200000
我最后做的实验是将RAM地址偏移了200000,大小不变,这样ROM+RAM的总空间大于64M,再验证下

DCD 0x80000000, 0x00000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 0
对此句不理解,那位兄弟指点一下.
内容概要:本文提出了一种基于粒子群优化算法(PSO)的风光储能微电网日前经济调度模型,创新性地引入需求响应机制,以实现系统运行成本最小化为目标。该模型综合考虑风力发电、光伏发电、储能系统及可调节负荷的运行特性,构建了包含电力供需平衡、设备出力能力、储能容量约束在内的完整数学模型,并通过Python编程实现PSO算法求解,有效提升了新能源消纳水平并降低了购电成本与运行费用。研究不仅实现了多能源协调优化调度,还为高比例可再生能源接入背景下的微电网经济运行提供了可行的技术路径。; 适合人群:具备一定电力系统基础知识和Python编程能力的科研人员、研究生及从事新能源微电网优化调度相关工作的工程技术人员。; 使用场景及目标:①研究含高比例可再生能源的微电网经济调度问题;②掌握粒子群算法在电力系统优化中的建模与应用方法;③开展计及需求响应的多能源协同调度仿真分析,探索用户侧灵活性资源参与系统优化的潜力。; 阅读建议:建议读者结合提供的Python代码深入理解算法实现细节,重点关注目标函数构建、约束条件处理及PSO参数设置,可进一步拓展至其他智能优化算法对比分析,或引入碳排放、电压稳定性等多目标优化维度进行深化研究。

19,523

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧