OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3213|回复: 2

H750的UCOSIII+WEB实验开启POST程序卡死直接进HardFault_Handler

[复制链接]

3

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2018-10-9
在线时间
32 小时
发表于 2020-6-5 09:25:47 | 显示全部楼层 |阅读模式
2金钱
北极星H750的扩展例程带UCOSIII的NECTCONN_WEB实验,将LWIP_HTTPD_SUPPORT_POST   1 这个宏定义置1程序卡死了,编译都能通过,调试看main都没进,直接就进HardFault_Handler了。有遇到过类似问题的朋友吗?一起交流一下呀。

最佳答案

查看完整内容[请看2#楼]

已解决,将atoi函数替换如下即可: int myatoi(const char *nptr) { int c; /* current char */ int total; /* current total */ int sign; /* if '-', then negative, otherwise positive */ /* skip whitespace */ while ( myisspace((int)(unsigned char)*nptr)) ++nptr; c = (int)(unsigned char)*nptr++; sig ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2018-10-9
在线时间
32 小时
 楼主| 发表于 2020-6-5 09:25:48 | 显示全部楼层
已解决,将atoi函数替换如下即可:
int myatoi(const char *nptr)
{
        int c;              /* current char */
        int total;         /* current total */
        int sign;           /* if '-', then negative, otherwise positive */
        /* skip whitespace */
        while ( myisspace((int)(unsigned char)*nptr))
            ++nptr;
        c = (int)(unsigned char)*nptr++;
        sign = c;           /* save sign indication */
        if (c == '-' || c == '+')
            c = (int)(unsigned char)*nptr++;    /* skip sign */
        total = 0;
        while (myisdigit(c)) {
            total = 10 * total + (c - '0');     /* accumulate digit */
            c = (int)(unsigned char)*nptr++;    /* get next char */
        }
        if (sign == '-')
            return -total;
        else
            return total;   /* return result, negated if necessary */
}

int myisspace(int x)
{
if(x==' '||x=='\t'||x=='\n'||x=='\f'||x=='\b'||x=='\r')
  return 1;
else  
  return 0;
}
int myisdigit(int x)
{
if(x<='9'&&x>='0')         
  return 1;
else
  return 0;
}
回复

使用道具 举报

3

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2018-10-9
在线时间
32 小时
 楼主| 发表于 2020-6-5 11:52:30 | 显示全部楼层
层层递进去找,最后在http_post_request()里找到 注释这一句 content_len = atoi(conten_len_num);就不会卡死了,但是POST没法正常使用。有人知道调用atoi();这个函数卡死是什么问题吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 17:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表