ly830102624 发表于 2015-1-7 09:38:37

(求助)调试K64的wab_server时,只能打开两个网页,其他打不...


各位好,如题:
(求助)调试K64的wab_server时,只能打开两个网页,其他打不开。
debug调试时,浏览器中输入IP地址成功打开网页时,程序停止运行。具体请看附件截图。

想请教,为什么会出现这现象?如何解决?

ly830102624 发表于 2015-1-12 15:28:18

0flame0 发表于 2015-1-8 17:15
MQX+RTCS?是不是任务之间出现问题了?

见下图
HVAC_task和uart_msg_task是两个自启动任务,uart_msg_task中创建两个任务。
创建后,HVAC_Task就挂掉,这个任务是我用来初始化网络,接收web_server访问的。uart_msg_task中创建两个任务任务起来之后就不能进行web_server访问了

superrf 发表于 2015-1-7 10:07:36

用的哪个协议栈,看代码应该不是uIP也不是lwip

jinyi7016 发表于 2015-1-7 10:48:58

还没用过,纯属来学习的

ly830102624 发表于 2015-1-7 12:25:19

superrf 发表于 2015-1-7 10:07
用的哪个协议栈,看代码应该不是uIP也不是lwip

http,应该是这个吧。
新手上路请包涵

0flame0 发表于 2015-1-8 17:15:45

MQX+RTCS?是不是任务之间出现问题了?

ly830102624 发表于 2015-1-8 17:38:13

0flame0 发表于 2015-1-8 17:15
MQX+RTCS?是不是任务之间出现问题了?

是MQX+RTCS。

的确是两个任务之间出问题。
现在的情况是:有两个任务,hvac_task是web_server的任务,uart_msg_task是串口收发任务。
其定义见截图。
单独运行,都可以。多任务运行时,uart_msg_task任务正常,web_server无法访问页面,ping的通。
若把uart_msg_task任务放到hvac_task启动,task_creat函数创建任务成功,但是uart_msg_task任务没有跑起来。

Juggernaut 发表于 2015-1-8 18:33:27

如果有一张显示正确,那就不应该是server的问题

ly830102624 发表于 2015-1-8 18:43:31

本帖最后由 ly830102624 于 2015-1-8 19:14 编辑

Juggernaut 发表于 2015-1-8 18:33
如果有一张显示正确,那就不应该是server的问题

现在发现两个任务之间冲突,具体见6楼。
有遇到这样的问题吗?

only_lu 发表于 2015-1-8 18:58:10

路过学习中~~

0flame0 发表于 2015-1-9 09:04:25

ly830102624 发表于 2015-1-8 17:38
是MQX+RTCS。

的确是两个任务之间出问题。


你得分析你的程序了,从这上面看好像没问题

Ray______ 发表于 2015-1-9 11:06:12

没玩过不好说

ly830102624 发表于 2015-1-9 11:19:37

0flame0 发表于 2015-1-9 09:04
你得分析你的程序了,从这上面看好像没问题

工程时从K60转到K64上的,工程在K60shangkey运行,在K64上出现这现象。
目前还在研究中

0flame0 发表于 2015-1-13 08:27:52

ly830102624 发表于 2015-1-12 15:28
见下图
HVAC_task和uart_msg_task是两个自启动任务,uart_msg_task中创建两个任务。
创建后,HVAC_Task就 ...

楼主可以逐一屏蔽你创建的那两个任务,看看到底是哪个任务阻塞了你的网页访问任务,再看这个阻塞的任务到底做了哪些操作,
在rtcs内的http协议内每次访问都会重新创建一个任务,你在看看你ram容量是否足够

FSL_TICS_DANIEL 发表于 2015-1-13 11:04:59

楼主用PC 机 ping 板子看看, 是否一直能够ping 通。如果有时候可以,有时候不行的话,就检查下硬件的跳线

ly830102624 发表于 2015-1-13 14:35:13

FSL_TICS_DANIEL 发表于 2015-1-13 11:04
楼主用PC 机 ping 板子看看, 是否一直能够ping 通。如果有时候可以,有时候不行的话,就检查下硬件的跳线 ...

ping一直都ping的通,只是加载其他任务后,
server = HTTPSRV_init(&params);
      if(!server)
      {
            printf("Error: HTTP server init error.\n");
      }
这个web_server初始化不成功,所以不能访问网页。

另,MQX加任务模板时,任务时什么样的启动顺序?
不管我是改变两个任务加载顺序,还是改变优先级,都是uart_msg_task任务先启动。
然后hvac_task任务重上面那个web_server初始化不成功。

ly830102624 发表于 2015-1-13 14:36:30

0flame0 发表于 2015-1-13 08:27
楼主可以逐一屏蔽你创建的那两个任务,看看到底是哪个任务阻塞了你的网页访问任务,再看这个阻塞的任务到 ...

谢谢指点,我去试验一下。

ly830102624 发表于 2015-1-13 16:19:15

0flame0 发表于 2015-1-13 08:27
楼主可以逐一屏蔽你创建的那两个任务,看看到底是哪个任务阻塞了你的网页访问任务,再看这个阻塞的任务到 ...

hvac_task中的
server = HTTPSRV_init(&params);
      if(!server)
      {
            printf("Error: HTTP server init error.\n");
      }
和uart_msg_task中的
UART_message_pool = _msgpool_create(sizeof(SERVER_MESSAGE), NUM_CLIENTS, 0, 0);   
if (UART_message_pool == MSGPOOL_NULL_POOL_ID) {
        printf("\nuart_msg_task could not create a message pool\n");
       _task_block();
}
冲突,两个函数执行其中一个,另一个就不能执行。
两个任务分配的资源没有冲突,这都是调用库函数,应该不会有什么冲突才对?

sblpp 发表于 2015-1-13 16:28:01

楼主应该把debug下 任务的状态情况、内存的使用情况等等 截图贴出来 才方便分析的
还有配置在调用rtcs_create的时候 是怎样配置的呢?

jiang887786 发表于 2015-1-13 17:00:09

我是纯过来学习的,K64很复杂啊赶脚!好好听课。

0flame0 发表于 2015-1-14 08:42:40

程序部分就得楼主自己分析了,先保证web_server任务正常,再注意添加其他任务,就能知道哪个任务有冲突,在查看这两个任务之间有什么联系。

ly830102624 发表于 2015-1-14 14:52:59

sblpp 发表于 2015-1-13 16:28
楼主应该把debug下 任务的状态情况、内存的使用情况等等 截图贴出来 才方便分析的
还有配置在调用rtcs_crea ...

CW还没有用熟,不知道怎么查看任务状态及内存。
新手上路,还请多多指教。

FSL_TICS_DANIEL 发表于 2015-2-5 11:12:58

楼主这个问题解决了吗? 另外楼主使用的是K64的官方例程吗,还是自己修改了程序。
页: [1]
查看完整版本: (求助)调试K64的wab_server时,只能打开两个网页,其他打不...