草庐IT

Phytium-FreeRTOS

全部标签

STM32 FreeRTOS处理LVGL+串口双任务相关问题总结

目录前情提要:1、LVGL部分2、串口部分3代码部分3.1串口代码部分:3.2LVGL代码部分总结:前情提要:最近在做一个项目,用到了LVGL+串口来调,碰到了巨多坑,调了我两天才调出来,特此写该博文以作记录。1、LVGL部分这个我就不赘述了,可以参考我的这篇文章来移植;这次我没有用Gui-Guider来生成GUI代码,为啥?因为它是NXP家的软件,新版本的只支持他自己家的板子,其他板子很难移植...(难绷,只能自己手撸LVGL代码了,以后有空了可以用LVGL官方代码生成软件SquareLineStudio)。好了闲话不多说,记录一下所碰到的问题吧!2、串口部分stm32串口有一个好用的组合:

基于XG24-EK2703A的BLE HID蓝牙键盘+鼠标复合设备功能开发(BLE+HID+FreeRTOS+Gecko SDK)

目录项目介绍硬件介绍项目设计开发环境及工程参考总体流程图硬件基本配置应用初始化按键中断回调定时器回调按键响应任务蓝牙事件回调BLEHIDReportMap及报文键盘设备鼠标设备复合设备发送字符串上/下滚动功能展示项目总结👉【Funpack3-1】基于XG24-EK2703A的BLEHID蓝牙键盘+鼠标复合设备👉Github:EmbeddedCamerata/XG24_ble_hid_keymouse项目介绍本项目基于SiliconLabsXG24-EK2703A开发板,通过HID协议实现了一个蓝牙键盘+鼠标复合设备,可通过按键实现上下翻页、发送字符功能。使用板载两个按键,当BTN0按下,向上翻

STM32 FreeRTOS 内存问题

1.STM32L151C8T6内存,64Kb的Flash(代码就是烧录在这里面的),16Kb的RAM,程序跑起来之后的内存,相当于我们高考时发的草稿纸,直接影响程序的运行速度,可以用STM32CubeMx软件直接下载数据手册datasheet2.实际使用64KBFlash(ROM),10KBRAM,ROM还没用完了3.编译信息提供的内存具体大小4.搞OLED的时候搞了一个2KB的全局数组,直接导致程序运行不起来,Debug都进不了main主函数了,把数组调小一点,就可以正常运行起来,所以怀疑是内存溢出了#defineOLED_SCREEN_PAGE8//page[7-0]#defineOLED

STM32 Hal库FreeRTOS统计CPU占比 找出有问题的任务 仅需一个函数搞定 超简单

一、实现目标STM32F103基于Hal库跑FreeRTOS,统计CPU占比找出有问题的任务,类似实现一个windows系统的任务查看界面。代码运行结果如下二、思路记录任务的时间点,相减获得任务所占用的时间,所得时间/总时间,得到该CPU占比。 三、实现函数只需要调用一个vTaskGetRunTimeStats:获得任务的运行信息,形式为可读的字符串。voidvTaskGetRunTimeStats(signedchar*pcWriteBuffer);四、操作步骤1、连接串口后,在freertos.c里面定义一个全局变量,存在所有任务的栈的信息,注意,pcWriteBuffer必须足够大。st

基于SkyEye仿真飞腾处理器:运行U-Boot并加载Phytium-FreeRTOS

仿真平台在帮助提升研发效率、加快产品面市时间上的作用已得到诸多验证,通过对处理器进行仿真来支持嵌入式系统及软件的虚拟化开发、测试和验证成为目前应用较为广泛的方法。天目全数字实时仿真软件SkyEye是一款基于可视化建模的硬件行为级仿真平台,在众多仿真工具中有着国产自主可控、所支持的处理器种类更为全面等优点。本文主要关于如何基于SkyEye实现飞腾处理器的仿真,以及如何在飞腾仿真处理器上运行U-Boot并通过网络加载Phytium-FreeRTOS。01.U-BootU-Boot(UniversalBootloader)是一个用于嵌入式系统与设备的轻量级引导加载程序,主要用于在启动时初始化硬件并加

STM32 hal库使用笔记之FreeRTOS—任务创建、删除,任务挂起、恢复,任务中断管理

一、简介1.FreeRTOS简介  RTOS全称为:RealTimeOS,就是实时操作系统,强调的是:实时性。而Free显而易见体现的是其免费性。总的来说这是一个免费的嵌入式实时操作系统。  其特点是:免费开源、可剪裁(独立性强,适应范围广)、简单、优先级/任务不限(但是受到不同开发环境和硬件的限制,一般受限)、支持三种方式的任务调度。  与裸机的区别:裸机的应用程序整体来看放在整个大循环里,很多时候资源浪费即“空等待”;而RTOS是多个优先级相同的任务每个任务执行一个时间片(时间长度可以调节),来回切换,最终效果是所有优先级相同的任务同时进行,而且有任务被“阻塞”时,会释放cpu资源。2.任

[XR806开发板试用] XR806——基于FreeRTOS下部署竞技机器人先进模糊控制器

前言很荣幸参与到由“极术社区和全志在线联合组织”举办的XR806开发板试用活动。本人热衷于各种的开发板的开发,同时更愿意将其实现到具体项目中。秉承以上原则,发现大家的重心都放在开发中的环境构建过程,缺少了不少实际应用场景的运用,虽然环境搭建确实痛苦。本文主要使用XR806的FreeRTOS到实际的机器人控制应用中,并实现部署模糊控制器。环境搭建本文简要略写,大家可以看社区其它优秀的文章。文章中应用到的无线控制和多维状态机两个重要的开发应用,会在后面的文章中陆续更新。使用环境1.本人使用window10+VMware+ubuntu18.04这里不多阐述2.按照官方文档移植XR806的FreeRT

实战一:STM32cubemx+LWIP+FreeRTOS

简介本文章主要是针对想要快速配置STM32cubemx+LWIP+FreeRTOS用户所使用,没有太多的理论知识,纯实战教学,可以让你快速掌握如何使用LWIP进行简单的操作主要采用的是STMH743IGT6开发板,网口使用LAN8720(其实这些都是大同小异的不必过多计较)代码部分都是来自网上各位大佬的,本人纯属小白Pro,更多的是去使用,写本次教学的目的是为了让大家少走弯路有目标的去学习,减少烦躁!!!!主要参考来自《STM32H743LWIP开发手册V1.0》注意事项(重点查阅)STM32cubemx使用版本v6.5.0!!!STM32cubemx使用版本v6.5.0!!!STM32cub

跟着野火学FreeRTOS:第一段(任务延时列表)

     既然是延时列表,那肯定要先定义相应的链表,延时列表的定义如下。这里定义了两条延时列表(其实就是前面小节里面提到的链表的根节点),一条是准备当记录SystickSystickSystick周期个数的变量xTickCountxTickCountxTickCount溢出的时候使用的。这里还定义了指向两条链表的指针。/*List_txDelayedTaskList1;/*List_txDelayedTaskList2;/*List_t*volatilepxDelayedTaskList;/*List_t*volatilepxOverflowDelayedTaskList;     延时列表实

STM32 FreeRTOS (四) 信号量

一、简介信号量:概述信号量是操作系统中重要的一部分,信号量一般用来进行资源管理和任务同步,FreeRTOS中信号量又分为二值信号量、计数型信号量、互斥信号量和递归互斥信号量。不同的信号量其应用场景不同,但有些应用场景是可以互换着使用的。信号量的特性信号量这个名字很恰当:信号:起通知作用量:还可以用来表示资源的数量当"量"没有限制时,它就是"计数型信号量"(CountingSemaphores)当"量"只有0、1两个取值时,它就是"二进制信号量"(BinarySemaphores)支持的动作:"give"给出资源,计数值加1;"take"获得资源,计数值减1计数型信号量的典型场景是:计数:事件产