OpenEdv-开源电子网

标题: STM32F4+FreeRTOS+lwip程序跑飞问题求助 [打印本页]

作者: veblen    时间: 2018-3-5 11:42
标题: STM32F4+FreeRTOS+lwip程序跑飞问题求助
        将开发板放在室外测试,过了一段时间(超过2天),程序跑飞,开发板死机,放在室内测试运行超过半个月都没有问题,请问这个问题如何查找原因?随便求问有没有好的办法获取STM32在运行过程中的内存使用率,我担心可能会有内存泄漏的问题,希望大家不吝赐教,谢谢了

作者: augustedward    时间: 2018-3-5 11:42
可以试试//        uint8_t pcWriteBuffer[500];
        pvParameters=pvParameters;
//        float temp=0.0f;

       
        uint16_t i=0;
        float V_res;   
        float ADC2temp=0;
        T_Adc_Init();
        InitADC();
        while(1)
        {

//                temp=T_Get_Temp();
//               
//                PRINTF("\n\r");
//          PRINTF("D¾Æ¬Î¶èÖμÎa:%4.2f\n",temp);
//                PRINTF("\n\r");
               
                IWDG_Feed();
//                DPRINTF("=================================================\r\n");
//                DPRINTF("èÎÎñÃû      èÎÎñ×′ì¬ óÅÏè¼¶   ê£óàÕ» èÎÎñDòoÅ\r\n");
//                vTaskList((char *)&pcWriteBuffer);
//                DPRINTF("%s\r\n", pcWriteBuffer);
//       
//                DPRINTF("\r\nèÎÎñÃû       ÔËDD¼Æêy         ê1óÃÂê\r\n");
//                vTaskGetRunTimeStats((char *)&pcWriteBuffer);
//                DPRINTF("%s\r\n", pcWriteBuffer);

看被屏蔽的部分
作者: augustedward    时间: 2018-3-5 13:30
一般都是堆栈出问题,容易跑飞死机。
作者: augustedward    时间: 2018-3-5 13:33
E:\1.png
作者: augustedward    时间: 2018-3-5 13:34
看图片吧
作者: veblen    时间: 2018-3-5 13:55
augustedward 发表于 2018-3-5 13:34
看图片吧

谢谢您的回复,您说的方法我之前已经实现了,但是这种方法只能检测线程栈会不会出现溢出问题,没有办法动态查看整个系统的ram使用情况,所以也无法知道整个系统是否存在内存泄漏的问题
作者: 正点原子    时间: 2018-3-6 00:47
veblen 发表于 2018-3-5 13:55
谢谢您的回复,您说的方法我之前已经实现了,但是这种方法只能检测线程栈会不会出现溢出问题,没有办法动 ...

可以试试隔一段时间打印内存剩余量,然后观察一天,看变化规律,基本可以确定是否 有泄漏了
作者: veblen    时间: 2018-3-6 10:58
正点原子 发表于 2018-3-6 00:47
可以试试隔一段时间打印内存剩余量,然后观察一天,看变化规律,基本可以确定是否 有泄漏了

原子哥,怎么计算系统的内存剩余量呢?有什么好的方法或者链接分享下,谢谢了




欢迎光临 OpenEdv-开源电子网 (http://openedv.com/) Powered by Discuz! X3.4