分类 默认分类 下的文章 - 田帅康学习笔记

【经验分享】怎样在ESP32平台上实现高效刷图动画

怎样在ESP32上流畅的播放动画最近有一个预研项目,在ESP32上播放动画,于是来测试一下ESP32刷动态图的极限性能1. 硬件以及内容描述名称描述CPUESP32S3@240MhzRAM512KB (IRAM (192KB ) + DRAM( 328KB ))LCDILI9341分辨率240*240图像位深16bit RGB565SPI速率60Mbps图像数量400张原始数据总大小45MB图片占

- 阅读全文 -

TLSF内存算法

TLSF内存算法1、动态内存算法管理背景项目中经常需要使用malloc进行动态内存分配,但是存在两个缺陷由于分配算法的复杂度,分配时间不确定在不断地申请、释放过程中,容易因为内存对齐产生碎片内存这两个缺点在项目中华通常是不被允许的,因此需要一套较为合理且时间可确定的动态内存管理机制,目前有以下两种解决方案:动态内存堆管理算法(mmheap),用于不定长分配静态内存池管理算法(mmblk),用于定长

- 阅读全文 -

【技能储备】J-link RTT的使用

技能储备系列是一些暂时由于时间或者其他客观因素暂时无法进行的工作,但是觉得很有用,因此做个记录,文章参考自Snow_2018在CSDN上的文章,原文链接为点击我写在前面本文介绍了J-Link RTT的部分使用内容,很多地方参考和使用了J-Link的官方资料,有的地方可能翻译的不太准确,请见谅。什么是RTT?RTT(Real Time Transfer)是一种用于嵌入式中与用户进行交互的技术,它结合

- 阅读全文 -

vscode 自定义任务

vscode 自定义任务vscode是一款优秀的代码编辑器,并且内置了任务系统,意味着用户可以根据自身需求使用快捷键的方式运行自己的命令或者脚本,从而提升工作效率1.给任务绑定快捷键使用快捷键打开键盘快捷方式界面,默认快捷键为CTRL+K+S,在当前界面搜索任务,双击运行任务这个命令可以添加快捷键,我这里使用的是CTRL+'2.创建任务在代码根目录中创建.vscode文件夹,并且在该文件夹下新增t

- 阅读全文 -

数字加密的基本原理和典型应用场景

一、数字加密的概念1.1 加密概念数据加密技术是指一条消息通过加密密钥和加密函数转换成无意义的密文,接收者通过解密函数和解密密钥将密文还原成明文。这样,我们就可以保护数据不被非法窃取和读取。提高计算机安全水平的基础是掌握数据加密的本质,数据加密由明文(未加密报文)、密文(加密报文)、加解密设备或算法、加解密密钥四部分组成。加密方法有很多种,但主要有对称加密算法、非对称加密算法和不可逆加密算法。密钥

- 阅读全文 -

C语言中常见的内存踩踏现象

程序员在C编码时需要尽量考虑所有的异常情况,否则解决问题需要花费制造问题的数倍1、数组操作越界,造成相邻内存中的数据踩踏在下面示例代码中,arr_a[i] = 10 越界访问造成了arr_b中的数据被修改uint8_t arr_a[5] = {0,1,2,3,4} ; uint8_t arr_b[5] = {4,3,2,1,0} ; void log_arr(uint8_t *arr , uin

- 阅读全文 -

STM32G0系列的bootloader启动问题

问题描述:最近在使用STM32G0的bootloader下载时,发现拉高boot0后,空片只能烧录一次,然后无论如何拉boot0,再也无法线刷固件了,通过查看文档解决了此问题1、STM32G0系列与旧款STM32启动的不同之处旧款STM32 boot启动方式:STM32G0 boot启动方式:不同之处:简单来说,G0系列多了个选项标志位,也就是nBOOT_SEL,如果nBOOT_SEL为0,则外部

- 阅读全文 -

嵌入式组件-----层次状态机

前段时间写了一篇文章描述FSM(有限状态机),但是在有些情况下业务比较复杂,就会使用到HFSM(层次状态机),使用层次状态机,将复杂的业务分解为几个大状态,每个大状态再维护自身内部的小状态,可以使代码更加条理,增加代码的可读性与可维护性1、层次状态机思想类似于FSM,层次状态机也具有这几个部分:状态、事件、转换、运行。状态(State):系统或程序可能处于的不同状态,例如"待机"、"运行"、"暂停

- 阅读全文 -

lvgl静态文件系统

1. 前言在lvgl中经常需要显示大量图片,但是MCU的内部flash不足以保存大量的图片,因此需要将图片保存在外部flash上,通过SPI或者QSPI方式读取。适用于嵌入式的文件系统较多,例如fatfs,但是较为占用资源,并且在文件较多的情况下,读取文件需要查目录,导致速度慢,fatfs的增删改功能我们也用不上,因此想到写一个精简版的静态文件系统。2.实现过程lvgl静态文件系统就是将文件保存在

- 阅读全文 -

LVGL双缓冲处理流程

1、LVGL单缓冲区刷屏流程任务启动之后,lvgl按需往屏幕上刷数据,阻塞等待刷屏完成,继续运行lvgl任务,重复此流程2、LVGL双缓冲区刷屏流程启动之后,lvgl按需往屏幕上刷数据,在触发SPI DMA发送后,前台继续处理LVGL任务,并且渲染在另一个缓冲区中,SPI传输则在后台发送,不占用CPU时间,等到后台的SPI传输完成,向上告知LVGL可以继续刷屏了,lvgl再将另一个缓冲区的数据推到

- 阅读全文 -