14307|53

228

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

修改config.bib,配置内存分配 [复制链接]

大家好:
我在修改config.bib文件,但是修改后,系统不能启动,大家看看是怎么回事.还有修改config.bib还需要修改其他文件吗?

config.bib原文件
MEMORY

;#define CHAIN_ADDRESS        81E40000
;        CHAIN                        $(CHAIN_ADDRESS)    00001000        RESERVED
;        pdwXIPLoc                00000000  $(CHAIN_ADDRESS)      FIXUPVAR

;;; Tarzan Debug mode
        NK                        8C200000  01e00000  RAMIMAGE
;        NK                        80040000  01E00000  RAMIMAGE
;        CHAIN                        81E40000  00001000  RESERVED
;        DRIVERS                        81E41000  001BF000  RAMIMAGE

;        RESERVE                     8df00000  00080000
;        RAM                         8c200000  01D00000  RAM
        RAM                         8e000000  02000000  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
;        CAMERA                        8c050000  000A0000  RESERVED
        CAMERA                        8c088000  00140000  RESERVED
;        DISPLAY                        8c100000  00100000  RESERVED   
;        DISPLAY                        8c1d0000  00030000  RESERVED
    DISPLAY                        8c100000  00100000  RESERVED  

CONFIG
        AUTOSIZE=ON
        ROM_AUTOSIZE=ON
        COMPRESSION=ON
        KERNELFIXUPS=ON

IF IMGPROFILER   
        PROFILE=ON
ENDIF

IF IMGPROFILER !
        PROFILE=OFF
ENDIF

IF IMGTRUSTROMONLY
        IF IMGNOTALLKMODE
                ROMFLAGS=12
        ENDIF
        IF IMGNOTALLKMODE !
                ROMFLAGS=10
        ENDIF
ENDIF

IF IMGTRUSTROMONLY !
        IF IMGNOTALLKMODE
                ROMFLAGS=2
        ENDIF
        IF IMGNOTALLKMODE !
                ROMFLAGS=0
        ENDIF
ENDIF
        ROMSTART=8C200000   
        ROMWIDTH=32
        ROMSIZE=01e00000

我修改的config.bibMEMORY

.....(省略的与上相同)

        NK                        8C200000  01400000  RAMIMAGE
;        NK                        80040000  01E00000  RAMIMAGE
;        CHAIN                        81E40000  00001000  RESERVED
;        DRIVERS                        81E41000  001BF000  RAMIMAGE

;        RESERVE                     8df00000  00080000
;        RAM                         8c200000  01D00000  RAM
;        RAM                         8e000000  02000000  RAM
    RAM                         8d600000  02000000  RAM

.....(省略的与上相同)


CONFIG
        AUTOSIZE=ON
        FSRAMPERCENT=0x30303040
        ROM_AUTOSIZE=ON
        COMPRESSION=ON
        KERNELFIXUPS=ON
......省略的与上面相同
        ROMSTART=8C200000   
        ROMWIDTH=32
        ROMSIZE=01400000

最新回复

楼主的内存分配调好了没有,弄好了分享一下啦。  详情 回复 发表于 2009-2-7 11:22
点赞 关注

回复
举报

77

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
ROMSTART=8C200000
NK 8C200000  01e00000  RAMIMAGE

看看这个红色部分虚拟地址在OEMAddresstable中映射到哪个物理地址了,
——————————————————————————————————
如果是三星的BSP,这个DNW的configuration中的地址就是要填这个物理地址才能启动的。

——你的串口信息是什么,你这样也不知道你的程序在哪里死了。
 
 

回复

48

帖子

0

TA的资源

禁止发言

板凳
 
lz修改之前能启动的话,应该不是这个地址8C200000的问题。用串口把信息打印出来吧,看看死在哪里了?
另外,lz修改完之后重新sysgen没有啊?
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(中级)

4
 
修改Config没有必要Sysgen
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

5
 
1.检查NK.bin大小有没有越界
2. RAM        8d600000  02000000  RAM 改回原来的,看系统能不能起来
3.如果可以起来的的话检查bootloader加载的时候是不是按原来的大小在装载Image,这样有可能把RAM的前面那一块地址数据冲掉,建议在Bootloader里跳转到Image前,清一下0x8d600000开始的RAM用的SDRAM空间
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 3 楼 hzdysymbol 的回复:
修改Config没有必要Sysgen


不用Sysgen不行啊,
下面是串口信息
YCTek 2440 Boot Tools Menu:
---------------------------------------
F) FORMAT Flash
S) Store NK to FLash
---------------------------------------

Enter your selection: s
System ready!
Preparing for download...
OEMLaunch: (IMAGE_TYPE_RAMIMAGE|IMAGE_TYPE_BINFS)
+WriteRegionsToBootMedia: ImageStart: 0x8C200000, ImageLength: 0x1D00000, LaunchAddr:0x8C200000
dwRegionStart: 0x8C200000, dwRegionLength: 0x1D00000, dwStoreOffset: 0x0
Updateded TOC!
-WriteRegionsToBootMedia
+TOC_Write
Erasing Block: 1

FMD_WriteSector.............

FMD_ReadSector.............

memcmp.............

TOC {
dwSignature: 0x434F544E
BootCfg {
  ConfigFlags: 0x800
  BootDelay: 0xF
  ImageIndex: 1
  IP: 0.0.0.0
  MAC Address: 00:00:00:00:00:00
  Port: 0.0.0.0
  SubnetMask: 255.255.255.255
}
ID[0] {
  dwVersion: 0x10002
  dwSignature: 0x45424F54
  String: 'eboot.nb0'
  dwImageType: 0x2
  dwTtlSectors: 0x100
  dwLoadAddress: 0x8C038000
  dwJumpAddress: 0x8C038000
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x40
  sgList[0].dwLength: 0x100
}
ID[1] {
  dwVersion: 0x1
  dwSignature: 0x43465349
  String: ''
  dwImageType: 0x6
  dwTtlSectors: 0xE800
  dwLoadAddress: 0x8C200000
  dwJumpAddress: 0x8C200000
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x2A0
  sgList[0].dwLength: 0xE800
}
chainInfo.dwLoadAddress: 0X00000000
chainInfo.dwFlashAddress: 0X00000000
chainInfo.dwLength: 0X00000000
}
-TOC_Write
TOC {
dwSignature: 0x434F544E
BootCfg {
  ConfigFlags: 0x800
  BootDelay: 0xF
  ImageIndex: 1
  IP: 0.0.0.0
  MAC Address: 00:00:00:00:00:00
  Port: 0.0.0.0
  SubnetMask: 255.255.255.255
}
ID[0] {
  dwVersion: 0x10002
  dwSignature: 0x45424F54
  String: 'eboot.nb0'
  dwImageType: 0x2
  dwTtlSectors: 0x100
  dwLoadAddress: 0x8C038000
  dwJumpAddress: 0x8C038000
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x40
  sgList[0].dwLength: 0x100
}
ID[1] {
  dwVersion: 0x1
  dwSignature: 0x43465349
  String: ''
  dwImageType: 0x6
  dwTtlSectors: 0xE800
  dwLoadAddress: 0x8C200000
  dwJumpAddress: 0x8C200000
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x2A0
  sgList[0].dwLength: 0xE800
}
chainInfo.dwLoadAddress: 0X00000000
chainInfo.dwFlashAddress: 0X00000000
chainInfo.dwLength: 0X00000000
}

Jumping to image at virtual address 0x8C200000h
+ToPhysicalAddr:0x8C200000
-ToPhysicalAddr:0x30200000

::: Physical Launch Address: 0x30200000h

停在这里不动了
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 4 楼 hzdysymbol 的回复:
1.检查NK.bin大小有没有越界
2. RAM        8d600000  02000000  RAM 改回原来的,看系统能不能起来
3.如果可以起来的的话检查bootloader加载的时候是不是按原来的大小在装载Image,这样有可能把RAM的前面那一块地址数据冲掉,建议在Bootloader里跳转到Image前,清一下0x8d600000开始的RAM用的SDRAM空间


可能是NK越界了,我看了下,NK.bin有25M,我设置才20M,现在改一下看看
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

8
 
我用PB编译的系统大小才14M多,在PB上看,怎么NK那么大.
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 1 楼 gooogleman 的回复:
ROMSTART=8C200000
NK 8C200000  01e00000  RAMIMAGE

看看这个红色部分虚拟地址在OEMAddresstable中映射到哪个物理地址了,
——————————————————————————————————
如果是三星的BSP,这个DNW的configuration中的地址就是要填这个物理地址才能启动的。

——你的串口信息是什么,你这样也不知道你的程序在哪里死了。


看看8C200000  是否映射到0x30200000了?

我用PB编译的系统大小才14M多,在PB上看,怎么NK那么大.
——+————————
这个是你的NK 8C200000  01e00000  RAMIMAGE 的01e00000  决定了NK.nb0 30M吧,
但是你的NK.bin是你的实际大小,关于NK.nb0 和NK.bin的关系,在论坛很多人问了,
搜出来看看吧,这里就不说了。
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

10
 
恩 NK越界
YCTEK 2440 不给源代码,很讨厌
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

11
 
修改 MMU 映射表里面的的定义,确保和你的 Config.bib 文件定义的虚拟地址一致。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

12
 
现在遇到新问题了,在sysgen时出错
弹出错误如下
(Microsoft Visual C++ Runtime Library)

Runtime Error!

Progrem...

this application has requested the runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

现在卡在编译处了,不能继续下去了
 
 
 

回复

51

帖子

0

TA的资源

一粒金砂(初级)

13
 
引用 11 楼 wang19847277 的回复:
现在遇到新问题了,在sysgen时出错
弹出错误如下
(Microsoft Visual C++ Runtime Library)

Runtime Error!

Progrem...

this application has requested the runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

现在卡在编译处了,不能继续下去了

重新启动电脑,估计你编译PB太频繁了,哈哈
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

14
 
重起了,还是那个错误啊
这是编译的最后部分信息,还有两个错误,没有什么明显的提示

total space 289716 in 166 ranges
Writing F:\wince5project\NEWYC2440\RelDir\smdk2440_ARMV4I_Release\NK.bin
makeimg: FATAL ERROR: Command returned non-zero exit code 3 (dec).
makeimg: FATAL ERROR: Command returned non-zero exit code 3 (dec).
驱动器 F 中的卷是 E
卷的序列号是 0424-FCBA
F:\wince5project\NEWYC2440\RelDir\smdk2440_ARMV4I_Release 的目录
2008-12-30  16:28        26,725,647 NK.bin
               1 个文件     26,725,647 字节
               0 个目录  2,834,923,520 可用字节
BLDDEMO: YC2440 build complete.

YC2440 - 2 error(s), 104 warning(s)


我发现,为什么有的时候,错误数量提示是红色的字,有时是蓝色?
上面的"2 error(s)"就是蓝色
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

15
 
NK.bin已经生成了,
估计没有生成NK.nb0
你修改了config.bib吧,这个不能乱改的。
如果你所设定的ROMSIZE大小不能小于nk.bin的实际大小
这样才能保证NK.nb0>=nk.bin
ROMSIZE涉及两处改动,一个是开头的NK处。
NK 8C200000  01e00000(ROMSIZE)  RAMIMAGE

后面ROMSIZE=01e00000>=nk.bin才行的。否则打包失败的。

如果你没有修改过,就把工程里面除了工程以外的工程删除了,重新sysgen。
good luck
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

16
 
真是莫名其妙,除了修改过config.bib外什么也没动过,怎么就出这样的错误呢?
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

17
 
引用 15 楼 wang19847277 的回复:
真是莫名其妙,除了修改过config.bib外什么也没动过,怎么就出这样的错误呢?


贴出来,帮你解决
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

18
 
这个是你的NK 8C200000  01e00000  RAMIMAGE 的01e00000  决定了NK.nb0 30M吧,
但是你的NK.bin是你的实际大小,关于NK.nb0 和NK.bin的关系,在论坛很多人问了,
搜出来看看吧,这里就不说了。

这个01e00000根本不是决定nb0大小的地方
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

19
 
引用 13 楼 wang19847277 的回复:
重起了,还是那个错误啊
这是编译的最后部分信息,还有两个错误,没有什么明显的提示

total space 289716 in 166 ranges
Writing F:\wince5project\NEWYC2440\RelDir\smdk2440_ARMV4I_Release\NK.bin
makeimg: FATAL ERROR: Command returned non-zero exit code 3 (dec).
makeimg: FATAL ERROR: Command returned non-zero exit code 3 (dec).
驱动器 F 中的卷是 E
卷的序列号是 0424-FCBA
F:\wince5project\NEW…

到Release目录下面的makeimg.out里看错误,有可能是脚本的问题
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

20
 
再重申一次,更改config.bib不需要做sysgen
但改了config.bib后需要把它拷贝到Release目录下再Makeimage
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
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
快速回复 返回顶部 返回列表