你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
any012 发表于 2017-4-15 11:02 应该就是pcWriteBuffer数组定义太小的原因,我试了定义为50,100,200个字节大小,前两次都不行,和你描述 ...
查看全部评分
没问题,说的完成正确!!
评分
查看全部评分
void Debugging_Task(void *pvParameters)//可视化调试任务
{
char pcWriteBuffer[50];
//portTickType xLastWakeTime;//最后一次释放时时间
pvParameters = pvParameters;
//xLastWakeTime=xTaskGetTickCount();
while(1)
{
USART1_RX485_Gets();
if(rece==1)
{
rece=0;
vTaskList((char *)&pcWriteBuffer);
/*任务状态:r:运行,R:就绪,B:阻塞,S:挂起,D:删除*/
printf("任务名 任务状态 优先级 剩余栈 任务序号\r\n");
printf("%s\r\n",pcWriteBuffer);
vTaskGetRunTimeStats((char *)&pcWriteBuffer);
printf("\r\n任务名 运行计数 使用率\r\n");
printf("%s\r\n",pcWriteBuffer);
printf("剩余动态内存为:%d\r\n",xPortGetFreeHeapSize());
}
else
{}
//TaskDelayUntil(&xLastWakeTime,1000);//使用这个函数能完成精确周期调用
vTaskDelay(500); //系统延时的心跳数,可设置
}
}
这是我可视化调试的打印部分函数
是不是pcWriteBuffer[50]设的太小了?
我看的安富莱德教程,是设的500个字节。相应的任务栈要分配的空间也要大于500字节。
我这阵子也遇到了类似问题。
一开始是任务给的栈太小了,我用的20k byte RAM的片子。用CUBE生成工程时默认给每个任务分配128words,而按教程里任务里一开始就减了500字节的数组,结果任务空间不够用了。后来给该任务分配了2k RAM。
输出任务使用率这部分,一开始我这里也没有显示出来。后来发现,调试信息用的定时器,我忘记了打开。
评分
查看全部评分