keil报错(reentrant用法)
源程序:#include "httpd.h"
#include "fs.h"
#include <stdio.h>
#include <string.h>
static u8_t print_stats(u8_t next) reentrant;
static u8_t file_stats(u8_t next);
static u8_t tcp_stats(u8_t next) reentrant;
cgifunction code cgitab[] = {
print_stats, /* CGI function "a" */
file_stats, /* CGI function "b" */
tcp_stats, /* CGI function "c" */
};
static u8_t
print_stats(u8_t next)reentrant
{...}
static u8_t
file_stats(u8_t next)
{...}
static u8_t
tcp_stats(u8_t next)
{...}
Build target 'Target 1'
compiling cgi.c...
CGI.C(75): warning C182: pointer to different objects
CGI.C(77): warning C182: pointer to different objects
CGI.C(182): error C231: 'tcp_stats': redefinition
Target not created
重点是:
static u8_t print_stats(u8_t next) reentrant;
static u8_t file_stats(u8_t next);
static u8_t tcp_stats(u8_t next) reentrant;部分
原来我没有添加reentrant是, keil的报警是:
*** WARNING L13: RECURSIVE CALL TO SEGMENT
SEGMENT: ?CO?CGI
CALLER: ?PR?_PRINT_STATS?CGI
*** WARNING L13: RECURSIVE CALL TO SEGMENT
SEGMENT: ?CO?CGI
CALLER: ?PR?_TCP_STATS?CGI
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_ETHERDEV_DELAY_MS?ETHERDEV
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_UIP_UNLISTEN?UIP
然后我依据网上的建议添加了reentrant关键字,又有新的问题出现了。
请哪位大侠告诉我应该怎么改!不胜感激(上述程序为uIP0.9中的cgi.c文件)
#include "fs.h"
#include <stdio.h>
#include <string.h>
static u8_t print_stats(u8_t next) reentrant;
static u8_t file_stats(u8_t next);
static u8_t tcp_stats(u8_t next) reentrant;
cgifunction code cgitab[] = {
print_stats, /* CGI function "a" */
file_stats, /* CGI function "b" */
tcp_stats, /* CGI function "c" */
};
static u8_t
print_stats(u8_t next)reentrant
{...}
static u8_t
file_stats(u8_t next)
{...}
static u8_t
tcp_stats(u8_t next)
{...}
Build target 'Target 1'
compiling cgi.c...
CGI.C(75): warning C182: pointer to different objects
CGI.C(77): warning C182: pointer to different objects
CGI.C(182): error C231: 'tcp_stats': redefinition
Target not created
重点是:
static u8_t print_stats(u8_t next) reentrant;
static u8_t file_stats(u8_t next);
static u8_t tcp_stats(u8_t next) reentrant;部分
原来我没有添加reentrant是, keil的报警是:
*** WARNING L13: RECURSIVE CALL TO SEGMENT
SEGMENT: ?CO?CGI
CALLER: ?PR?_PRINT_STATS?CGI
*** WARNING L13: RECURSIVE CALL TO SEGMENT
SEGMENT: ?CO?CGI
CALLER: ?PR?_TCP_STATS?CGI
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_ETHERDEV_DELAY_MS?ETHERDEV
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_UIP_UNLISTEN?UIP
然后我依据网上的建议添加了reentrant关键字,又有新的问题出现了。
请哪位大侠告诉我应该怎么改!不胜感激(上述程序为uIP0.9中的cgi.c文件)
...全文
相关推荐
简析单片机keil常见问题
如果在c51程序中使用了汇编语言,注意在keil编译器中需要激活Properties中的“Generate Assembler SRC File” 和“Assembler SRC File ”两个选项。本文主要从五个方面来说:混合编程、中断使用、关于reentrant的使用方法、变量声明有关、类型有关。
KEIL警告: MULTIPLE CALL TO SEGMENT
今天来说说*** WARNING L15: MULTIPLE CALL TO SEGMENT这个问题!
单片机keil常见问题
本文主要简单介绍了单片机keil 常见问题
Keil 中的报警错误
Keil 中的报警错误:WARNING L15: MULTIPLE CALL TO SEGMENT 今天调试时遇到了这个问题,以前都不注意这些警告错误,现在看来争取要做到:0错误,0警告。
Keil c51调试总结
Keil c51调试有关问题总结 1.出现warning C182 : pointer to different objects. re: A pointer was assigned the address of a different type. 2.出现warning L16 : uncalled segment, ignored for overlay proess segment


单片机/工控
