硬件环境:F103ZET6,DM9000
软件环境:ucosii,lwip1.4.1
在学习过程中,在任务中调用lwip的tcp_out()方法,会出现系统进入HardFault_Handler崩溃的问题,再对tcp_out方法增加了OS_ENTER_CRITICAL()与OS_EXIT_CRITICAL()后,又出现了任务被挂起的问题。因此,打算做一个对ucos多任务进行监控的任务,来监测几个主要任务的调度情况。
实现思路:
(1)增加一个ucos任务,优先级设定比其他任务要高
(2)增加全局变量,为每个任务建立一个对应的全局变量
(3) 其他任务被调度后,对应的变量加1,要保证被调度后该值不为0
(4)监控任务设定为2-5秒执行1次,每次执行检查各变量值是否为0;为0则复位系统,不为0则清0;