●○●求助大師,执行uClinux出现问题…….●○●
我的板子只有8M Sdram 1M flash,但是lumit的板子为16M sdram
要如何将lumit所提供的uClinux
改成8MB Sdram,
我已经改过
vendors/Samsung/4510B/config.linux-2.4.x
linux-2.4.x./arch/armnommu/configin
DRAM_BASE=0x00000000
DRAM_SIZE=0x00800000
FLASH_MEM_BASE=0x01000000
FLASH_SIZE=0x00100000
但是还是出现如下错误,
请问要如何改uClinux的sdram , flash的大小?
还有下面的错误是因为sdram , flash的大小没设对的关系吗?
麻烦版大解答,小弟感激不尽…..
U-Boot 1.1.2 (Jul3 2005 - 22:53:42)
U-Boot code: 007D0000 -> 007E5EA4BSS: -> 007F0100
IRQ Stack: 007aef7c
FIQ Stack: 007adf7c
RAM Configuration:
Bank #0: 000000008 MB
flash_init(): Unable to detect PHYS_FLASH_1: 0x01000000
Flash:0 kB
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot:0
evb4510 # tftp 8000 image.ram
TFTP from server 10.0.0.1; our IP address is 10.0.0.11
Filename 'image.ram'.
Load address: 0x8000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
######
done
Bytes transferred = 1694444 (19daec hex)
evb4510 # go 8000
## Starting application at 0x00008000 ...
Linux version 2.4.20-uc0 ([email protected]) (gcc version 2.95.3 20010315 (release)(ColdFire patches - 20010318 from http://fiddes.net/coldfire/)(uClinux XIP and shared lib patches from http://www.snapgear.com/)) #8 Mon Jul 18 22:41:42 EDT 2005
Processor: Samsung S3C4510B revision 6
Architecture: SNDS100
On node 0 totalpages: 4096
zone(0): 0 pages.
zone(1): 4096 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/rom0
Calibrating delay loop... 49.76 BogoMIPS
Memory: 16MB = 16MB total
Memory: 14380KB available (1577K code, 162K data, 40K init)
Dentry cache hash table entries: 2048 (order: 2, 16384 bytes)
Inode cache hash table entries: 1024 (order: 1, 8192 bytes)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
Unhandled fault: alignment exception (53) at 0x00000001
fault-common.c(97): start_code=0x7d01e0, start_stack=0xfeffc3fb)
Internal error: Oops: 0
CPU: 0
pc : [<0002b108>] lr : [<00ffe000>] Not tainted
sp : 0019fe98ip : 001f5190fp : 0019fec0
r10: 001a309cr9 : 00000001r8 : 00fff000
r7 : 08d56501r6 : 001f5420r5 : 000001d0r4 : 00000000
r3 : 00000000r2 : 017d2640r1 : e08e210cr0 : 08d56501
Flags: nzCvIRQs onFIQs offMode SVC_32Segment kernel
Control: 0
Process swapper (pid: 0, stackpage=0019f000)
Stack:
0019fe80: 00ffe000 0002b10820000053 ffffffff 001f5420 001f5428
0019fea0: 000001d0 60000053 00000000 00000000001a309c 0019fee4 0019fec4 0002b514
0019fec0: 0002aff0 fffffff4 00000000 0000000000000000 00000000 0019ff04 0019fee8
0019fee0: 000352f4 0002b3e0 fffffff4 0000000000000000 00000000 0019ff30 0019ff08
0019ff00: 00035a30 000352ec fffffff4 0000000000000000 001a309c 00000000 001a6640
0019ff20: 00000000 0019ff50 0019ff34 00035d6400035a24 fffffff4 001f9120 000b5f98
0019ff40: 001a309c 0019ff78 0019ff54 00035f7000035d50 000001ff 00000200 00000000
0019ff60: 001b0704 001b06fc 00000000 0019ff980019ff7c 0000d60c 00035eec 000001ff
0019ff80: 00000200 00000000 001b0704 0019ffc40019ff9c 0000d9ac 0000d5fc 00000000
0019ffa0: 00000000 00000000 00001000 001a664400000000 001c5138 0019ffe4 0019ffc8
0019ffc0: 0000d3d0 0000d880 00000000 00000000001af0bc 001c5138 0019fffc 0019ffe8
0019ffe0: 00008634 0000d2e0 001a0db8 0000000000000000 001a0000 007d57e4 00008564
Backtrace:
Function entered at [<0002afe0>] from [<0002b514>]
Function entered at [<0002b3d0>] from [<000352f4>]
r8 = 00000000r7 = 00000000r6 = 00000000r5 = 00000000
r4 = FFFFFFF4
Function entered at [<000352dc>] from [<00035a30>]
r7 = 00000000r6 = 00000000r5 = 00000000r4 = FFFFFFF4
Function entered at [<00035a14>] from [<00035d64>]
Function entered at [<00035d40>] from [<00035f70>]
r7 = 001A309Cr6 = 000B5F98r5 = 001F9120r4 = FFFFFFF4
Function entered at [<00035edc>] from [<0000d60c>]
Function entered at [<0000d5ec>] from [<0000d9ac>]
r7 = 001B0704r6 = 00000000r5 = 00000200r4 = 000001FF
Function entered at [<0000d870>] from [<0000d3d0>]
r8 = 001C5138r7 = 00000000r6 = 001A6644r5 = 00001000
r4 = 00000000
Function entered at [<0000d2d0>] from [<00008634>]
r5 = 001C5138r4 = 001AF0BC
Function entered at [<00008554>] from [<007d57e4>]
r4 = 00000000
Code: e0844003 e3a03000 (e5873010) e5874008 e0883004
Kernel panic: Attempted to kill the idle task!
In idle task - not syncing 这种问题实在不太好说,内核出错是最麻烦的了,和你的硬件设计有关,建议最好参考一下和你的板子硬件设计相仿的移植版本,lumit 上的 uclinux 移植方法不一定适用。 那請問版主
我已经改过
vendors/Samsung/4510B/config.linux-2.4.x
linux-2.4.x./arch/armnommu/configin
DRAM_BASE=0x00000000
DRAM_SIZE=0x00800000
FLASH_MEM_BASE=0x01000000
FLASH_SIZE=0x00100000
為何uClinux執行還是顯示16MB,
Kernel command line: root=/dev/rom0
Calibrating delay loop... 49.76 BogoMIPS
Memory: 16MB = 16MB total
Memory: 14380KB available (1577K code, 162K data, 40K init)
Dentry cache hash table entries: 2048 (order: 2, 16384 bytes)
還有什麼地方要改嗎?謝謝。 如果我碰到这个问题,只能在kernel源码里面 grep DRAM_SIZE * ,看看哪里会用到 DRAM_SIZE,这个宏定义和 Memory: xMB 有没有直接关系? 在hardware.h文件中把SDRAM Bank0的定义中大小改为8M,其实就是SDRAM的配置寄存器的值进行修改即可 在hardware.h文件中把SDRAM Bank0的定义中大小改为8M,其实就是SDRAM的配置寄存器的值进行修改即可
沒錯,我也發現了,
當我要上來回覆時就看到了這位大大跟我要表達的一樣。
OK,果然是DRAM大小沒設對的問題
首先,先謝謝各位大的熱情相助。
其實還少修改
uClinux-dist/linux-2.4.x/include/asm-armnommu/arch-snds100/hardware.h
這個檔案
把其中
#define SDRAM_BASE0_R ((0x01000000>>16)<<10)
#define SDRAM_NEXT0_R ((0x01800000>>16)<<20)
#define SDRAM_BASE0_B ((0x00000000>>16)<<10)
#define SDRAM_NEXT0_B ((0x00800000>>16)<<20)
改成8MB就可以正常運行了。
页:
[1]