首页>>论坛 >>技术社区 >>STM32社区ST MCU技术论坛 >>STM32
|
我要发帖  | 我要投票  | 我要回复  | 收藏
1

(求助)为何定义的局部变量数组无法赋值?

(求助)为何定义的局部变量数组无法赋值?
 

我用的片子是STM32F103ZE,工具是IAR 5.20,编译的程序是ucos ii V2.86 我在App_TaskStart中建的数组,代码如下:

 

static  void  App_TaskStart (void *p_arg)

{

INT8U m_n8uTestArry[10];

    (void)p_arg;                                                /* See Note #1                                              */

App_InitValue();

    BSP_Init();                                                 /* Initialize BSP functions                                 */

    OS_CPU_SysTickInit();                                       /* Initialize the SysTick.                              */

    App_EventCreate();                                           /* Create application events                                */

    App_TaskCreate();                                            /* Create application tasks                                 */

m_n8uTestArry[0]=0xaa;

m_n8uTestArry[1]=0xbb;

m_n8uTestArry[2]=0xcc;

m_n8uTestArry[3]=0xdd;

m_n8uTestArry[4]=0xee;

m_n8uTestArry[5]=0xff;

    BSP_LED_Off(0);

    while (DEF_TRUE) {       /* Task body, always written as an infinite loop.            */

BSP_LED_On(1);

OSTimeDlyHMSM(0, 0, 1, 0);

BSP_LED_Off(1);

OSTimeDlyHMSM(0, 0, 1, 0);

    }

}

但是通过仿真器看m_n8uTestArry根本没有赋上值,我查了汇编代码是
MOVS R0,#0xAA
STRB R0,[SP]
MOVS R0,#0xBB
STRB R0,[SP,#0x1]
MOVS R0,#0xCC
STRB R0,[SP,#0x2]
MOVS R0,#0xDD
STRB R0,[SP,#0x3]
MOVS R0,#0xEE
STRB R0,[SP,#0x4]
MOVS R0,#0xFF
STRB R0,[SP,#0x5]
 
其中SP=0x200003D0; 堆栈定义在STM32F103ZE_FLASH.icf中
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x400;
define symbol __ICFEDIT_size_heap__ = 0x200;
/**** End of ICF editor section. ###ICF###*/
不知道到底是什么原因?哪位高手能帮忙解答一下,谢谢!

 

[最后修改于2009-06-19 13:06]
此主题悬赏5积分[未解决]。
 
相关主题
回复 链接 收藏
 
回复:(求助)为何定义的局部变量数组无法赋值?
 

 问题已解决,将RDI模式换成SWD模式就行了

 
回复 链接 收藏
 
我要发帖  | 我要投票  | 我要回复  | 收藏
1