(求助)调试K64的wab_server时,只能打开两个网页,其他打不...
各位好,如题:
(求助)调试K64的wab_server时,只能打开两个网页,其他打不开。
debug调试时,浏览器中输入IP地址成功打开网页时,程序停止运行。具体请看附件截图。
想请教,为什么会出现这现象?如何解决? 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访问了 用的哪个协议栈,看代码应该不是uIP也不是lwip 还没用过,纯属来学习的 superrf 发表于 2015-1-7 10:07
用的哪个协议栈,看代码应该不是uIP也不是lwip
http,应该是这个吧。
新手上路请包涵 MQX+RTCS?是不是任务之间出现问题了? 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任务没有跑起来。
如果有一张显示正确,那就不应该是server的问题 本帖最后由 ly830102624 于 2015-1-8 19:14 编辑
Juggernaut 发表于 2015-1-8 18:33
如果有一张显示正确,那就不应该是server的问题
现在发现两个任务之间冲突,具体见6楼。
有遇到这样的问题吗? 路过学习中~~ ly830102624 发表于 2015-1-8 17:38
是MQX+RTCS。
的确是两个任务之间出问题。
你得分析你的程序了,从这上面看好像没问题 没玩过不好说 0flame0 发表于 2015-1-9 09:04
你得分析你的程序了,从这上面看好像没问题
工程时从K60转到K64上的,工程在K60shangkey运行,在K64上出现这现象。
目前还在研究中 ly830102624 发表于 2015-1-12 15:28
见下图
HVAC_task和uart_msg_task是两个自启动任务,uart_msg_task中创建两个任务。
创建后,HVAC_Task就 ...
楼主可以逐一屏蔽你创建的那两个任务,看看到底是哪个任务阻塞了你的网页访问任务,再看这个阻塞的任务到底做了哪些操作,
在rtcs内的http协议内每次访问都会重新创建一个任务,你在看看你ram容量是否足够 楼主用PC 机 ping 板子看看, 是否一直能够ping 通。如果有时候可以,有时候不行的话,就检查下硬件的跳线 FSL_TICS_DANIEL 发表于 2015-1-13 11:04
楼主用PC 机 ping 板子看看, 是否一直能够ping 通。如果有时候可以,有时候不行的话,就检查下硬件的跳线 ...
ping一直都ping的通,只是加载其他任务后,
server = HTTPSRV_init(¶ms);
if(!server)
{
printf("Error: HTTP server init error.\n");
}
这个web_server初始化不成功,所以不能访问网页。
另,MQX加任务模板时,任务时什么样的启动顺序?
不管我是改变两个任务加载顺序,还是改变优先级,都是uart_msg_task任务先启动。
然后hvac_task任务重上面那个web_server初始化不成功。 0flame0 发表于 2015-1-13 08:27
楼主可以逐一屏蔽你创建的那两个任务,看看到底是哪个任务阻塞了你的网页访问任务,再看这个阻塞的任务到 ...
谢谢指点,我去试验一下。 0flame0 发表于 2015-1-13 08:27
楼主可以逐一屏蔽你创建的那两个任务,看看到底是哪个任务阻塞了你的网页访问任务,再看这个阻塞的任务到 ...
hvac_task中的
server = HTTPSRV_init(¶ms);
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();
}
冲突,两个函数执行其中一个,另一个就不能执行。
两个任务分配的资源没有冲突,这都是调用库函数,应该不会有什么冲突才对? 楼主应该把debug下 任务的状态情况、内存的使用情况等等 截图贴出来 才方便分析的
还有配置在调用rtcs_create的时候 是怎样配置的呢? 我是纯过来学习的,K64很复杂啊赶脚!好好听课。 程序部分就得楼主自己分析了,先保证web_server任务正常,再注意添加其他任务,就能知道哪个任务有冲突,在查看这两个任务之间有什么联系。 sblpp 发表于 2015-1-13 16:28
楼主应该把debug下 任务的状态情况、内存的使用情况等等 截图贴出来 才方便分析的
还有配置在调用rtcs_crea ...
CW还没有用熟,不知道怎么查看任务状态及内存。
新手上路,还请多多指教。 楼主这个问题解决了吗? 另外楼主使用的是K64的官方例程吗,还是自己修改了程序。
页:
[1]