- 博客(20)
- 收藏
- 关注
原创 【嵌入式linux】qt+eglfs 修改drm颜色深度
最近在STM32MP157上捣鼓spi显示屏,根据内核的st7735的驱动熟悉drm的使用方式,自己写了个ST7789的驱动,自己编写的程序能调用drm接口实现图像的显示,但是使用qt时,发现qt无法正常使用该驱动。
2025-04-07 22:04:13
181
原创 【Linux模块编程】如何在注册misc设备时指定open等函数能获取到的用户数据(不通过全局变量)
可以发现,通过上面的方式,能让同一套文件操作代码处理不同的MyDev_t类型的用户数据,这在具有多个这样的设备时非常有用。你可能有个问题,为什么要不通过全局变量的方式来进行用户数据传递,答案是不够方便
2024-12-03 21:20:50
200
原创 一个因内核配置导致ssh无法连接linux开发板的问题
通过以太网抓包软件查看是否进行了通信,结果发现mobaxterm确实在与sshd进行通信,能看到开始的加密协商内容,但仅交互了几包数据sshd就断开了连接。该选项提供了更大的兼容性,使得我的根文件系统能正常工作,出厂根文件系统用的不是buildroot,也不用openssh作为ssh服务器。正当我放弃查找这个问题时,我打算开始写驱动,在一顿裁剪内核后,我不报希望地双击了ssh会话,突然发现能连接了,毫无疑问,内核有问题!猜测是软件出了问题,遂刷入开发板出厂的的根文件系统,发现能正常进行连接。
2024-11-21 23:16:46
403
原创 Cortex-M7使用KeilMDK调试时报错Invalid ROM Table
猜测是等待的过程中调试器没法连接CPU,而且删了点东西,CPU几乎没什么东西要跑,几乎一直处于不可连接状态。捣鼓了好几天,又是翻勘误手册又是增删代码排除的,最后发现把RTOS禁用掉就好了,但是RTOS的代码没改过,怎么删了点东西就出问题了呢?网上查了一下,都是说时钟配置错误之类的,经过排查,实际上我的程序并没有这些问题,并且出现问题的程序是通过没有问题的程序裁剪得到的。这种情况下可以用按住复位,点MDK的下载/调试按钮后立即放开复位的方式进行下载\调试,但调试的过程中仍会出现断联情况。
2024-09-03 20:23:31
434
原创 C++ 可调用体作为模板类的模板构造函数的参数遇到的一些问题
可以发现、编译器将模板形参`T_Invoke`识别为了H::Thread (即Thread_std)。但是代码里要创建的对象就是Thread_std、根本没有为模板类型列表提供Thread_std这个类型,这里正确的行为应该是T_Invoke=lambda [](std::string &s)->void(或者与lambda相关的类型、反正不应该是Thread_std)
2024-02-16 16:12:19
454
1
原创 MCU引脚功能分配图形化工具--PinAssignment
市面上有很多MCU是没有图形化配置工具的,最近可能用到一些这种MCU,对于大封装的MCU来说只根据数据手册来画板子是一件不妙的事情。于是我自己写了一个引脚分配的工具,该工具功能非常简单,只能对MCU的引脚进行复用功能选择,和保存功能(分配了一半不能保存哪还得了)其中Output文件夹有打包好的程序。
2023-03-14 20:47:10
1129
1
原创 NES模拟器[H_NES]
最近捣鼓出来个NES模拟器,完全由C编写。可在STM32H750VBT上运行,搭配双QuadFlash可以运行更大的游戏。高速的SPI(80MHz)使得渲染帧率达到全速的60FPS,并且通过SAI输出IIS格式的音频信号
2022-03-08 23:38:10
7708
29
原创 GD32VF103(riscv)与STM32F103性能对比
GD32VF103与STM32F103性能对比GD32VF103与STM32F103性能对比对比方式测试结果STM32F103GD32VF103顺便附上STM32F411的测试结果结论归算到同主频--GD32VF103与STM32F103性能对比最近入手一个Sipeed的LonganNano,上面的芯片是GD32VF103CBT6,riscv架构的内核,主频达到108MHz。等等,F103 ??很难不让人想到STM32F103,宣传说GD32VF103的内核比Cortex-M3性能好,但到底好多少呢?
2022-01-14 23:13:01
3619
1
原创 FreeRTOS调度性能测试(线程切换耗时测试)
FreeRTOS调度性能测试(线程切换耗时测试),通过一些方法让调度器一直在两个线程之间切换,记录切换次数,每一段时间统计切换的次数从而计算出每次调度耗时。
2021-12-20 23:36:33
4528
5
原创 Cortex-M7 对于 指令乱序执行特性, Cache, 以及写代码时如何应对这些特性
Cortex-M7相对于之前的M4,M3有很大区别,尤其是指令流执行方面。M7拥有6级超标量流水线,对于它到底有多少级,我们不需要太关心。我们需要真正注意的是它具有指令乱序执行的特性,这个玩意不处理好的话会导致一些奇奇怪怪的问题。除此之外,M7还具有L1 Cache,这个会引入数据一致性问题,也是个麻烦的东西。...
2021-12-11 23:08:56
5126
8
原创 单片机操作系统(RTOS) H_TS
H_TS源码特性部件特性其他内容源码Gitee:https://gitee.com/H0x9DEFA478/H_TS.git.目前已更新了一个文档,两个例子。F4和F1的例程包含了通过信号量,FIFO包装的串口流,通过串口助手可以发送“ GetThreadInfo”或“ GetStackInfo”来获取信息。(这两个指令的开头是一个空格)。特性部件特性更多部件特性见gitee中的文档。其他内容其他内容(例如移植事项等)参见gitee中的文档。...
2021-12-07 23:51:15
3325
原创 STM32H750 HAL库以太网收发问题
最近在调试STM32H750+LAN8720,搞了大半天终于移植好LwIP了,ping也能ping通,TCP测试也成功。本来以为ST的HAL库终于省心了,结果我将编译优化开到最大...
2021-11-28 23:57:30
6544
2
原创 FreeRTOS响应中断延迟问题
FreeRTOS响应中断延迟问题问题详情解决方法问题详情问题的起因在https://blog.youkuaiyun.com/qq_42907191/article/details/120734795.中断操作信号量/消息队列时,应该被唤醒的线程却被延迟唤醒了。解决方法在中断操作信号量/消息队列后,调用portYIELD_FROM_ISR()是否切换线程由IsScheduler决定int H_TS_SemaphoreGive_ISR(void* Sem){ BaseType_t IsScheduler;
2021-11-20 18:00:56
1388
原创 IC卡探索记录- MFRC522+STM32F103C8 操作IC卡(M1卡) ---附代码
使用STM32F103C8通过SPI协议操作MFRC522,完成IC卡初始化加密、读、写、增加值、减少值,(针对本项目加密的)解密恢复白卡。附代码
2021-10-13 22:32:32
10285
5
原创 使用定时器计数,向FreeRTOS添加CPU使用率功能
向FreeRTOS添加CPU使用率功能,这个方法需要一个寄存器,储存了一个同步更新的时间,例如在STM32中,可以使用TIMx->CNT来充当这个寄存器,线程调度时,这个寄存器被读取,利用时间计算占用率。这个方法不需要定时器中断。
2021-10-13 15:00:24
833
原创 STM32F407 CubeMX配置CAN,实现简单的发送接收
STM32F407 CubeMX配置CAN 实现简单的发送接收CubeMX时钟配置引脚配置MX CAN配置代码在MX_CAN1_Init()中添加过滤器配置代码在main.c中添加发送接收代码测试调试问题CubeMX时钟配置时钟配置没什么特别的 外部晶振频率为25MHz引脚配置PE0连接到TJA1050的8脚上,使用时固定输出低电平即可。MX CAN配置修改了时序参数和使能了自动总线管理,其他的都为默认设置代码配置完成后,生成代码。生成的代码没有进行过滤器配置,需要自己
2021-09-16 16:37:10
8308
6
原创 用stm32实现winusb组合设备时遇到的一些坑
虽然网上有很多CMSIS_DAP的例程,但这些例程都是用的都不是ST的usb库,但我想使用ST的usb库来实现winusb,顺带加入一个虚拟串口。
2021-08-11 17:16:10
3366
9
原创 线程调度器H_TS(可以说是一个RTOS了)
H_TS是一个线程调度器,可以使用在STM32等类似的单片机上。这个任务调度器实现了线程休眠(ThreadSleep),互斥锁,信号量,消息队列。线程可以灵活的创建与删除,可以先新建一个线程句柄(预先分配堆栈空间),然后可以在一个合适的时机运行线程(快速启动),对于分配内存缓慢的情况这个特性很有效。
2021-07-30 13:47:33
570
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人