新手,求解决,访问个数组居然进了HardFault_Handler

2019-07-21 00:13发布

int main(void)
{
        unsigned char  Image[20000];
        int a=0,b=0,i=0,k=0,l=0,m=0;
        //u8  ShowBuf[]={"Image Show Test"};

        SystemInit();

        //RCC->APB2ENR|=(1<<0);  //使能AFIO时钟
        RCC->APB2ENR|=(1<<2);  //使能PORTA时钟
        RCC->APB2ENR|=(1<<3);  //使能PORTB时钟
        RCC->APB2ENR|=(1<<4);  //使能PORTC时钟
        RCC->APB2ENR|=(1<<5);  //使能PORTD时钟                    
        RCC->APB2ENR|=(1<<6);  //使能PORTE时钟
        RCC->APB2ENR|=(1<<7);  //使能PORTF时钟
        RCC->APB2ENR|=(1<<8);  //使能PORTG时钟

        GPIO_Init();
        LCD_Init();
        LCD_Clear(WHITE);

                while(1){
                        for(a=0;a<100;a++)
                                for(i=0;i<200;i++)
                                Image[200]=gImage_c1[200];//注释掉就可以运行,没注释掉就会进入HardFault_Handler,gImage_c1[]是一个图片解码数组,里面有20000
                        //                Show_BMP(0,0,100,100,(u8*)&Image[0]);//
               
                                delay(10000);
                }
               
                               
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
潇潇熊
1楼-- · 2019-07-21 03:37
不要在函数里定义很大的局部数组,这样在退出该函数时CPU释放该数组就会进入HardFault_Handler。以前遇到过,把数组定义为全局变量解决。
solo
2楼-- · 2019-07-21 05:49
 精彩回答 2  元偷偷看……
popo139700
3楼-- · 2019-07-21 09:47
 精彩回答 2  元偷偷看……

一周热门 更多>