自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 资源 (1)
  • 收藏
  • 关注

转载 STM32菜鸟成长记录---普通定时器应用

一、STM32通用定时器原理                             STM32 系列的CPU,有多达8个定时器,其中TIM1和TIM8是能够产生三对PWM互补输出的高级定时器,常用于三相电机的驱动,它们的时钟由APB2的输.

2020-07-27 15:30:21 154

转载 STM32菜鸟成长记录---普通定时器应用

2020-07-27 15:22:01 48

转载 Java的个人见解

@[TOC](这里写自定义目录标题) 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选

2020-07-22 15:40:27 66

新建文本文档.txt

刚开始接触这个STM32Cube+FreeRTOS的时候也是遇到这个问题,这个问题的原因是没有足够的内存分配给栈空间,以下是我的分析过程: 1.出现了调度器无法调度的问题,追查调度函数osKernelStart和vTaskStartScheduler发现错误出现在以下位置: xReturn = xTaskCreate( prvIdleTask, "IDLE", tskIDLE_STACK_SIZE, ( void * ) NULL, ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), NULL ); 也就是说创建IDLE任务时失败,使得xReturn 不等于 pdPASS,那么vTaskStartScheduler代码后续的: if(xRetern == pdPass) { ...... } 就不会执行,调度器就无法工作 2.继续跟踪读IDLE任务分配的代码,一直到函数xTaskGenericCreate,发现程序在这个地方出错: pxNewTCB = prvAllocateTCBAndStack( usStackDepth, puxStackBuffer ); if(pxNewTCB != NULL) { ...... } 最后会返回内存不足的错误,如下代码: xReturn = errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY; traceTASK_CREATE_FAILED(); 这个地方给任务分配TCB控制块和栈的内存空间,产生了失败 3.您可以继续跟踪prvAllocateTCBAndStack函数,看看内存可用空间是怎么定义的 4.我给出的具体方法是减小栈空间字节数或者其他内存节省办法 我将原来是128的栈空间修改成了64就可以成功运行3个任务了,但是我认为随着任务的增多还是会出现这个内存不足的问题,以下是创建任务的代码,供你参考: while(NULL == defaultTaskHandle) { osThreadDef(test_task, test_task, osPriorityNormal, 1, 64);//128); defaultTaskHandle = osThreadCreate(osThread(test_task), NULL); } while(NULL == uc1recv_TaskHandle) { osThreadDef(uc1recv_task, uc1recv_task, osPriorityHigh, 1, 64);//128); uc1recv_TaskHandle = osThreadCreate(osThread(uc1recv_task), NULL); } #if 1 while(NULL == uc2recv_TaskHandle) { osThreadDef(uc2recv_task, uc2recv_task, osPriorityAboveNormal, 1, 64);//128); uc2recv_TaskHandle = osThreadCreate(osThread(uc2recv_task), NULL); } #endif osKernelStart();

2020-07-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除