在main中,SP基地址是0xc00000,而且在任务中,由于是为任务定义堆栈是以数组形式存在的,其基地址是0x147fbe,除此之外,我也想不到还有什么别的原因能够影响到。
( g1 Q" g/ V3 Rwww.mcuos.com太变态了,我单独定义了一个文件,stackmalloc.c文件,对任务的堆栈做了定义 + y3 M) ^7 f' T R" h0 a0 n
#include "global.h"
^2 B) Q0 |5 O) u9 b; x8 E嵌入式开发联盟#include "ucos_ii.h" 我们只做简洁、专业的嵌入式开发技术论坛。6 C! |4 ~6 a% V8 J9 L
2 I1 J% V, Z; A' z8 A' v/ P我们只做简洁、专业的嵌入式开发技术论坛。OS_STK TaskStk1[512];
7 @5 Q4 ?& \8 j. D7 _5 VOS_STK TaskStk2[10240];
# { {7 w" t" B. K9 `嵌入式开发联盟OS_STK TaskStk3[10240];
3 ^) E" N4 M1 ^# B- u9 G' z5 w+ J) @www.mcuos.comOS_STK TaskStk4[10240]; /* GUI任务,堆栈一定要大于8KBytes */
; r9 l$ G' a3 _4 }arm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,
4 |/ k( G2 j6 X: Y8 ^' B嵌入式开发联盟然后,在.scf文件中把stackmallo.o加在了系统真正的堆栈之上,我在task中连续申请60个64KBytes的空间,成功了!
. [" x2 z) L! O' e我们只做简洁、专业的嵌入式开发技术论坛。RAM_LOAD 0x00000000 嵌入式开发联盟9 Z- F( Y( Y! u7 y# K2 S& _
{
) T2 K% h. t5 S; w2 }嵌入式开发联盟 VECT 0x0
+ F l- |( u0 f* ~3 Earm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye, {
$ Y# v. Z: @2 F4 a% D嵌入式开发联盟 vectors.o(Vect, +First)
% |$ I% B" m. C$ W6 C ;anon$$obj.o
2 K) l3 s' h' M$ qwww.mcuos.com __main.o(!!!) arm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,& X- j0 s2 m* e* C
}
- B8 n; I4 |% \) z; V1 n& P' c我们只做简洁、专业的嵌入式开发技术论坛。 - 我们只做简洁、实用、专业的嵌入式开发技术论坛。- h1 {$ r9 i8 f& J2 z
RAM +0
7 o3 ~3 X5 {7 `6 X嵌入式开发联盟 { www.mcuos.com K( T& M1 j$ l+ N9 H0 ~
init.o(Init, +First)
6 r, d+ @ E$ S我们只做简洁、专业的嵌入式开发技术论坛。 * (+RO)
9 g/ j$ B. ?+ M$ o$ e7 fwww.mcuos.com * (+RW,+ZI)
, K6 }! j' ]- d3 f嵌入式开发联盟 }
' Z/ ~( @# f" Q* q嵌入式开发联盟
4 o! N" g0 w; F, o- x b- [" Y' I- 我们只做简洁、实用、专业的嵌入式开发技术论坛。 HEAP 0x400000 UNINIT 嵌入式开发联盟1 L* F) F; W5 I9 f, { {: I
{ arm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,: R- E' i$ h o% S
heap.o (+ZI) arm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,- v8 ?$ M& Y# o4 ]
} www.mcuos.com4 d2 s4 E! Z" \. U f
嵌入式开发联盟( R; A& G& m* p* U9 |
STACK 0xc00000 UNINIT
4 Z) U0 F. @: J我们只做简洁、专业的嵌入式开发技术论坛。 {
# A8 ?* z2 c* e0 j" p: ]3 d- 我们只做简洁、实用、专业的嵌入式开发技术论坛。 stack.o (+ZI) 嵌入式开发联盟. b& Y) t* r- i: U# r8 a9 D/ h
stackmalloc.o (+ZI);任务的堆栈 嵌入式开发联盟7 w y# N$ e9 Q9 q9 v
}
& L, a8 {- |# n8 `( hwww.mcuos.com}
$ X4 X% i9 ?( r/ f1 v- m! u; j我们只做简洁、专业的嵌入式开发技术论坛。这个华邦的arm第一次用,不知道为舍会这样!!!
' x+ r+ ^; [% S5 _- 我们只做简洁、实用、专业的嵌入式开发技术论坛。$ S: v* {( |) K" S3 I
再试了一把,把stackmalloc.o (+ZI);任务的堆栈 放在大于堆的地址空间上,就行,如果任务堆栈小于堆的地址空间,就不行,不知道是不是跟一段模式中R1>R0,R0~R1之间的做为heap,这个有关。