看到友善之臂的superboot确实很帅,也想实现这样的功能.无意间发现google code中有个开源的iboot.于是拿来用一用;结果调试的时候发现卡壳了,
该开源代码是基于SD卡的,而我打算使用在nand中.目前nand能够读取rtt-tiny6410.bin启动,但是问题在于rtt启动运行一会就死了.
id ecd314a564
1. ddr init/test successful.
mmu 1
mmu 2
mmu 4
mmu 5
mmu 6
mmu 7
4. Jump to BL2, Virtual Address: 0x50008000
ea000013 e59ff014 e59ff014 e59ff014 e59ff014 e59ff014 e59ff014 e59ff014
500080e0 50008120 50008140 50008160 500081a0 500081a4 500081e0 deadbeef
5004e454 5004e054 5004dc54 5004da54 5004e454 e10f0000 e3c0001f e38000d3
e129f000 ee110f10 e3c00401 ee010f10 eb00007e e3a00000 e59f123c e3a02040
e4913004 e4803004 e2522004 1afffffb e3a00000 e59f1224 e59f2224 e1510002
34810004 3afffffc e59f0218 e59f1218 e1500001 a000005 e4902004 e92d0003
e1a0e00f e12fff12 e8bd0003 eafffff7 e51ff004 5000a2c8 e320f000 e320f000
e24dd048 e88d1fff e28d803c e9486000 e588e000 e14f6000 e5886004 e5880008
206e776f 656b6f74 6e 616f6c46 6f6e2074 75732074 726f7070 646574
6e6b6e55 206e776f 626d7973 6c6f 6c6c754e 646f6e20 65 64696f76
0 72616863 0 726f6873 74 746e69 676e6f6c 0
69736e75 64656e67 0 6c6c756e 0 6c656873 3d21206c 5f545220
4c4c554e 0 736e6966 63203a68 6e206e61 6620746f 20646e69 69766564
253a6563 a73 73257325 0 736e6966 3e3e68 63252709 25202c27
30202c64 38302578 a78 2c642509 25783020 a783830 0 4b325b1b
d 25206325 63 6325 4e475f5f 5f5f4355 65687320 a6c6c
6d206f6e 726f6d65 6f662079 68732072 a6c6c65 0 78726873 0
65687374 6c6c 6f6c7366 6b63 656c6966 656d616e 203d2120 4e5f5452
4c4c55 74737973 64206d65 2073656f 20746f6e 70707573 2074726f 6b726f77
20676e69 a726964 0 252f7325 73 6e65704f 20732520 6c696166
a6465 2074756f 6d20666f 726f6d65 a79 64616552 20732520 6c696166
a6465 74697257 73252065 69616620 a64656c 0 656c6544 25206574
61662073 64656c69 a 65726944 726f7463 73252079 a3a 30322d25
73 35322d25 a73 5249443c 3e 35322d25 a756c 20444142
\ | /
- RT - Thread Operating System
/ | \ 0.4.0 build Aug 21 2013
2006 - 2011 Copyright by rt-thread team
CPU: S3C6410@532MHz
ARMclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, (SYNC Mode)
heap[0x50061000 - 0x57ff0000], size 0x7f8f000, 0x7f8f pages
zone size 0x18000, zone page count 0x18
memusage 0x50061000, size 0x20000
rtt step 1 gary
rtt step 2 gary
try to malloc 0xb0 on zone: 18
alloc a new zone: 0x50081000
malloc a large memory 0x10000, page cnt 16, kup 56
startup a thread:init with priority:8
thread resume: init
insert thread, the priority: 8
rtt step 3 gary
__GNUC__ shell
try to malloc 0x300 on zone: 35
alloc a new zone: 0x500a9000
startup a thread:tshell with priority:20
thread resume: tshell
insert thread, the priority: 20
startup a thread:timer with priority:8
thread resume: timer
insert thread, the priority: 8
rtt step 4 gary
startup a thread:tidle with priority:31
thread resume: tidle
insert thread, the priority: 31
rtt step 5 gary
rtt step 6 gary
rtt step 7 gary
[1]switch to priority#8 thread:timer
thread:timer stack overflow
thread pri status sp stack size max used left tick error
-------- ---- ------- ---------- ---------- ---------- ---------- ---
tidle 0x1f ready 0x00000044 0x00000100 0x00000044 0x00000020 000
timer 0x08 ready 0x00000044 0x000 0000 0 0x00000000 0x0000000a 000
tshell 0x14 ready 0x00000044 0x00001000 0x00000044 0x0000000a 000
init 0x08 ready 0x00000044 0x00000000 0x00000000 0x 00000014 000
这个或许是应为配置的
#define RT_INIT_THREAD_STACK_SIZE (64*1024)
难道配置过大?我的可是256MB的sdram啊
更改了栈大小设置后为4K运行一长段时间后,悲剧来了
[1]switch to priority#8 thread:timer
switch in interrupt
[1]switch to priority#8 thread:init
switch in interrupt
[1]switch to priority#8 thread:timer
switch in interrupt
[1]switch to priority#8 thread:init
switch in interrupt
[1]switch to priority#8 thread:timer
switch in interrupt
[1]switch to priority#8 thread:init
switch in interrupt
[1]switch to priority#8 thread:timer
switch in interrupt
[1]switch to priority#8 thread:init
switch in interrupt
[1]switch to priority#8 thread:timer
switch in interrupt
[1]switch to priority#8 thread:init
switch in interrupt
[1]switch to priority#8 thread:timer
switch in interrupt
[1]switch to priority#8 thread:init
switch in interrupt
[1]switch to priority#8 thread:timer
switch in interrupt
[1]switch to priority#8 thread:init
thread:init stack overflow
thread pri status sp stack size max used left tick error
-------- ---- ------- ---------- ---------- ---------- ---------- ---
tidle 0x1f ready 0x00000044 0x00000100 0x00000044 0x00000020 000
timer 0x08 ready 0x00003fc8 0x00004000 0x00003fc8 0x0000000a 000
tshell 0x14 ready 0x00000044 0x00001000 0x00000044 0x0000000a 000
init 0x08 ready 0x00004004 0x00004000 0x00004000 0x00000014 000
结果今天改了很多次stack都是运行就把stack耗尽了.不知道为何.改大了想先前情况,分配stack为0,是不成功么???改小了就被耗尽了
感觉就是stack泄露了.
阅读(141) | 评论(1) | 转发(1) |
<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
该开源代码是基于SD卡的,而我打算使用在nand中.目前nand能够读取rtt-tiny6410.bin启动,但是问题在于rtt启动运行一会就死了.
id ecd314a564
1. ddr init/test successful.
mmu 1
mmu 2
mmu 4
mmu 5
mmu 6
mmu 7
4. Jump to BL2, Virtual Address: 0x50008000
ea000013 e59ff014 e59ff014 e59ff014 e59ff014 e59ff014 e59ff014 e59ff014
500080e0 50008120 50008140 50008160 500081a0 500081a4 500081e0 deadbeef
5004e454 5004e054 5004dc54 5004da54 5004e454 e10f0000 e3c0001f e38000d3
e129f000 ee110f10 e3c00401 ee010f10 eb00007e e3a00000 e59f123c e3a02040
e4913004 e4803004 e2522004 1afffffb e3a00000 e59f1224 e59f2224 e1510002
34810004 3afffffc e59f0218 e59f1218 e1500001 a000005 e4902004 e92d0003
e1a0e00f e12fff12 e8bd0003 eafffff7 e51ff004 5000a2c8 e320f000 e320f000
e24dd048 e88d1fff e28d803c e9486000 e588e000 e14f6000 e5886004 e5880008
206e776f 656b6f74 6e 616f6c46 6f6e2074 75732074 726f7070 646574
6e6b6e55 206e776f 626d7973 6c6f 6c6c754e 646f6e20 65 64696f76
0 72616863 0 726f6873 74 746e69 676e6f6c 0
69736e75 64656e67 0 6c6c756e 0 6c656873 3d21206c 5f545220
4c4c554e 0 736e6966 63203a68 6e206e61 6620746f 20646e69 69766564
253a6563 a73 73257325 0 736e6966 3e3e68 63252709 25202c27
30202c64 38302578 a78 2c642509 25783020 a783830 0 4b325b1b
d 25206325 63 6325 4e475f5f 5f5f4355 65687320 a6c6c
6d206f6e 726f6d65 6f662079 68732072 a6c6c65 0 78726873 0
65687374 6c6c 6f6c7366 6b63 656c6966 656d616e 203d2120 4e5f5452
4c4c55 74737973 64206d65 2073656f 20746f6e 70707573 2074726f 6b726f77
20676e69 a726964 0 252f7325 73 6e65704f 20732520 6c696166
a6465 2074756f 6d20666f 726f6d65 a79 64616552 20732520 6c696166
a6465 74697257 73252065 69616620 a64656c 0 656c6544 25206574
61662073 64656c69 a 65726944 726f7463 73252079 a3a 30322d25
73 35322d25 a73 5249443c 3e 35322d25 a756c 20444142
\ | /
- RT - Thread Operating System
/ | \ 0.4.0 build Aug 21 2013
2006 - 2011 Copyright by rt-thread team
CPU: S3C6410@532MHz
ARMclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, (SYNC Mode)
heap[0x50061000 - 0x57ff0000], size 0x7f8f000, 0x7f8f pages
zone size 0x18000, zone page count 0x18
memusage 0x50061000, size 0x20000
rtt step 1 gary
rtt step 2 gary
try to malloc 0xb0 on zone: 18
alloc a new zone: 0x50081000
malloc a large memory 0x10000, page cnt 16, kup 56
startup a thread:init with priority:8
thread resume: init
insert thread, the priority: 8
rtt step 3 gary
__GNUC__ shell
try to malloc 0x300 on zone: 35
alloc a new zone: 0x500a9000
startup a thread:tshell with priority:20
thread resume: tshell
insert thread, the priority: 20
startup a thread:timer with priority:8
thread resume: timer
insert thread, the priority: 8
rtt step 4 gary
startup a thread:tidle with priority:31
thread resume: tidle
insert thread, the priority: 31
rtt step 5 gary
rtt step 6 gary
rtt step 7 gary
[1]switch to priority#8 thread:timer
thread:timer stack overflow
thread pri status sp stack size max used left tick error
-------- ---- ------- ---------- ---------- ---------- ---------- ---
tidle 0x1f ready 0x00000044 0x00000100 0x00000044 0x00000020 000
timer 0x08 ready 0x00000044 0x000 0000 0 0x00000000 0x0000000a 000
tshell 0x14 ready 0x00000044 0x00001000 0x00000044 0x0000000a 000
init 0x08 ready 0x00000044 0x00000000 0x00000000 0x 00000014 000
这个或许是应为配置的
#define RT_INIT_THREAD_STACK_SIZE (64*1024)
难道配置过大?我的可是256MB的sdram啊
更改了栈大小设置后为4K运行一长段时间后,悲剧来了
[1]switch to priority#8 thread:timer
switch in interrupt
[1]switch to priority#8 thread:init
switch in interrupt
[1]switch to priority#8 thread:timer
switch in interrupt
[1]switch to priority#8 thread:init
switch in interrupt
[1]switch to priority#8 thread:timer
switch in interrupt
[1]switch to priority#8 thread:init
switch in interrupt
[1]switch to priority#8 thread:timer
switch in interrupt
[1]switch to priority#8 thread:init
switch in interrupt
[1]switch to priority#8 thread:timer
switch in interrupt
[1]switch to priority#8 thread:init
switch in interrupt
[1]switch to priority#8 thread:timer
switch in interrupt
[1]switch to priority#8 thread:init
switch in interrupt
[1]switch to priority#8 thread:timer
switch in interrupt
[1]switch to priority#8 thread:init
thread:init stack overflow
thread pri status sp stack size max used left tick error
-------- ---- ------- ---------- ---------- ---------- ---------- ---
tidle 0x1f ready 0x00000044 0x00000100 0x00000044 0x00000020 000
timer 0x08 ready 0x00003fc8 0x00004000 0x00003fc8 0x0000000a 000
tshell 0x14 ready 0x00000044 0x00001000 0x00000044 0x0000000a 000
init 0x08 ready 0x00004004 0x00004000 0x00004000 0x00000014 000
结果今天改了很多次stack都是运行就把stack耗尽了.不知道为何.改大了想先前情况,分配stack为0,是不成功么???改小了就被耗尽了
感觉就是stack泄露了.