自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 收藏
  • 关注

原创 使用WSL时 “系统找不到指定的文件”(ConfigureNetworking/ERROR_FILE_NOT_FOUND)

如果你的电脑里曾经安装过VMware Player,并且和我一样只是把此应用的文件夹简单复制到别的目录,那么,此时你去卸载VMware Player一定提示某个盘,比如,F:无效驱动 ,解决办法就是你可以新增一个相同的盘符,并重新打开VMware Player安装包,就能正常安装,之后就可以正常地用。,降回version 1后就能正常安装Ubuntu-16.04了。转换版本,成功,然后替换掉ext4.vhdx,原本的环境和文件就回来了。发现Ubuntu-16.04 wsl的version是1,那么我使用。

2023-06-19 19:31:21 4515 2

原创 环形缓冲区的实现

环形缓冲区//缓存区大小#define PM_BUF_SIZE 1024//获取当前缓冲区的数据个数#define circ_cnt(head, tail, size) (((head) > (tail)) ? \ ((head) - (tail)) : \ ((head) - (tail)) & ((size) - 1))//计算缓冲区的可写大小#defi...

2021-12-01 18:51:00 328

原创 linux dma

DMA浅显分析内核:Linux4.11.DMA介绍​ 其实很简单,DMA是Direct Memory Access的缩写,意思就是直接访问内存,什么叫直接访问内存?就是不需要CPU去参与,DMA就能从内存读或写入数据。​ 为什么需要DMA?原因很简单,为了让CPU更"轻松",把搬运的苦力活交给DMA。​1.1 DMA通道​ 一个DMA控制器(controller)可以有多个通道...

2021-05-30 15:28:00 603

原创 Linux mmc

1.linux MMC内核:linux 4.91.1 分析mxs-mmc.c从别人的驱动程序分析是最好入手的。直接找到mxs_mmc_probe来进行分析:static int mxs_mmc_probe(struct platform_device *pdev){..... struct mxs_mmc_host *host; struct mmc_host *mmc;....

2021-05-23 12:56:00 436

原创 linux framebuffer

1.从fbmem.c入手内核版本:linux 4.91.1 fbmem_initstatic int __initfbmem_init(void){ int ret; if (!proc_create("fb", 0, NULL, &fb_proc_fops)) return -ENOMEM; ret = register_chrdev(FB_MAJOR, "...

2021-05-23 12:54:00 200

原创 笔记本电脑直连开发板,笔记本使用wifi上网

参考:笔记本电脑、VM虚拟机、开发板三者网线连接互ping - Lioker - 博客园 (cnblogs.com)

2021-05-05 11:13:00 394

原创 使用eclipse运行minigui程序报错

execl: No such file or directoryNEWGAL>PCXVFB: Wait too long for CLIENT.NEWGAL: Does not find matched engine: pc_xvfb.KERNEL>InitGUI: Can not get graphics engine information!解决方法:打开项目中的MiniGUI.cfg:把gal_engine=pc_xvfb注释掉[system]#GAL engine an

2021-03-26 14:41:59 264

原创 linux cut sort wc

Cut Sort wc1.cut分割选项f:选择显示的列s:不显示没有分隔符的行d:自定义分隔符文本hello msbhello angelababyhello dilirebaiiii250 wyfhello zhangxinyi11 hel mhellosbjy loh2341123i bjiiii521 fanbingbing111 hello 222wo ai bj tamhellor1chiehihelloahellohelloahiahelloahi

2021-03-21 21:35:05 90

原创 linux sed

sed行编辑器说明:以行为单位进行处理,可以将数据进行替换、删除、新增、选取等特定工作使用方式:sed [options] “Command” fileoptions:-n:静默模式,不再默认显示模式空间中的内容-i:直接修改源文件-e SCRIPT:可以同时执行多个脚本-f /PATH/TO/SED_SCRIPT-r:表示使用扩展正则表达式Command:d:删除符合条件的行p:显示符合条件的行a \string:在指定的行后面追加新行,内容为string\n:用于换行i

2021-03-21 21:34:30 74

原创 linux grep

1.grep文本:hello msbhello angelababyhello dilirebaiiii250 wyfhello zhangxinyi11 hel mhellosbjy loh2341123i bjiiii521 fanbingbing111 hello 222wo ai bj tamhellor1chiehihelloahellohelloahiahelloahi1.查找包含hello的行grep "hello" test.txt2.查找包含数字的行

2021-03-21 21:34:02 113

原创 正则表达式

正则表达式参考:https://github.com/ziishaned/learn-regex/blob/master/translations/README-cn.md参考:https://www.bilibili.com/video/BV1C5411N7Pk?from=search&seid=5625854808300279463元字符描述.句号匹配任意单个字符除了换行符。[ ]字符种类。匹配方括号内的任意字符。[^ ]否定的字符种类。匹配除了方括号

2021-03-21 21:32:49 121

原创 linux awk

1.awkawk -F ‘{pattern + action}’ {filename}​ -F:指定分隔符​ -f:调用脚本​ -v:定义变量支持自定义分隔符支持正则表达式匹配支持自定义变量、数组支持内置变量ARGC 命令行参数个数ARGV 命令行参数排列NF 浏览记录的域的个数NR 已读纪录数支持函数print、split、substr、sub、gsub支持流程控制语句,类C语言if、while、do

2021-03-21 21:32:13 84

原创 2.git分析

git分析首先在创建一个目录,进入目录后使用git init命令,查看.git目录:r1chie@DESKTOP-QFN5N0R:~/git/store$ tree .git/.git/├── branches├── config├── description├── HEAD├── hooks│ ├── applypatch-msg.sample│ ├── commit-msg.sample│ ├── post-update.sample│ ├── pre-apply

2021-03-19 18:53:25 118

原创 1.git命令学习

git使用1.设置用户名和邮箱git config --global user.name "r1chie"git config --global user.email r1chie@ramboai.com2.初始化gitgit init2.1 配置文本编辑器git config --global core.editor vim3.克隆仓库git clone xxxxx可以克隆本地目录克隆后,文件夹里面只有.git目录,而没有文件,原因是该项目存在多个分支,使用来来查看远程分支:

2021-03-19 18:34:09 124

原创 1.MiniGui环境搭建

MiniGui环境配置前言:因工作需要,我将学习MiniGui,争取快速上手主机:ubuntu16.04.12Minigui版本:MiniGUI 3.2.3参考:https://blog.csdn.net/Meteor_s/article/details/828652001.准备工作1.1 安装一些库和工具sudo apt install libgtk2.0-dev libjp...

2021-03-06 21:47:00 492

原创 5.Licheepi投屏

Licheepi-投屏本文是记录我根据坑网两位大佬的教程的配置流程。参考:https://whycan.com/t_5462.html内核:linux-zero-5.2.ybuildroot:buildroot-2020.02.1(版本尽量和我一样,我之前使用buildroot2017.08.1的时候,没有配置项gst1-plugins-bayer2rgb-neon)1.C...

2021-02-19 21:37:00 846 1

原创 4.Licheepi Mplayer

Licheepi-Mplayer本篇是配置使用Mplayer播放器内核版本:5.2.ybuildroot-2017.08.1首先要配置Mplayer之前,要先配置ALSA(声音)1.配置ALSAmake menuconfigTarget packages---->​ Audio and video applications----->​ ...

2021-02-19 21:33:00 111

原创 3.licheepi wifi

licheepi-wifi-RTL8723BSgst-launch-1.0 filesrc location=deng2.mp4 ! qtdemux ! h264parse ! omxh264dec ! autovideoconvert ! fbdevsinkWiFi+BT模块:RTL8723bs注意:如果使用了nfs根文件系统,使用命令ifconfig wlan0 up是会报错了...

2021-02-19 21:32:00 850

原创 2.licheepi亲自编译内核

亲自下厨编译前言:之前我都是用别人的现成的东西,下面我来重新编译Uboot、kerenl、rootfs在编译之前要先安装工具链,我使用的是gcc version 6.3.1 20170109 (Linaro GCC 6.3-2017.02)1.U-BOOT获取uboot源码(TF卡启动,用spiflash启动可以获取另一个uboot源码):git clone https:...

2021-02-19 21:30:00 1736 9

原创 1.初见licheepi-zero

初见licheepi-zero前言:我对linux是持有恐惧的态度,原因是我关于linux的知识储备不高,不能像单片机一样掌握过程,所以这次绝对开个坑去好好学习linux。测试Zero时间关系,我从网上找了别人已经编译好的Uboot、Kernel、DTS、rootfs烧录进TF卡,来测试我的板子能不能用。1.创建TF卡分区1.1烧录软件----GParted输入命令下载软...

2021-02-19 21:26:00 695

原创 QT网络聊天室

QT基于TCP网络聊天室文章目录QT基于TCP网络聊天室1.客户端1.1UI设计1.2 子模块1.2.1 登录界面1.2.2 协议1.2.2.1 协议的制订1.2.2.2 协议装配器1.2.3 TCP客户端1.2.4 客户端界面1.2.5 main2.服务端2.1 子模块2.1.1 协议的订制2.1.2 协议装配器2.1.3 TCP客户端2.1.4 main1.客户端1.1UI设计​ 分两个部分,第一部分是消息区里面包含QPlainTextEdit和QListWidget,要显示接收的消息和在线的

2021-02-19 21:22:54 1377 3

原创 C++归纳复习类篇

C++归纳复习类篇前言:在19年1月,我花了一个月时间去学习C++,已经过了两年了,我也工作了两年了,由于工作中不常使用C++,因此花时间重新复习一些C++的特性,也好为人生中第一次跳槽做准备。感谢这位大佬的记录,我和这位大佬学的教程应该是同一个:https://www.cnblogs.com/lifexy/目录C++归纳复习类篇1.class中的访问权限1.1 public1...

2021-01-27 13:37:00 438

原创 make menuconfig出现乱码

1.安装库:sudo apt-get install libncurses5-dev libncursesw5-dev2. 执行:make clean

2021-01-13 08:57:00 362

原创 11.FreeRTOS延时函数

FreeRTOS延时简易分析架构:Cortex-M3版本:FreeRTOS V9.0.0前言:在很多情况,需要使用延时来达到一些效果,那么FreeRTOS的延时是怎么实现的目录FreeRTOS延时简易分析1.相对延时vTaskDelay2.绝对延时vTaskDelayUntil3 为什么说vTaskDelay是相对延时?而vTaskDelayUntil是绝对延时1.相对延...

2020-12-22 21:09:00 500

原创 10.FreeRTOS任务通知的简易分析

FreeRTOS任务通知架构:Cortex-M3版本:FreeRTOS V9.0.0前言:任务通知的出现,是为了代替有些场景队列和信号量的使用,为什么要替换?为什么可以替换?接下来是分析任务通知有什么优势。目录FreeRTOS任务通知1.任务通知的创建2.任务通知的发送3.任务通知的接收1.任务通知的创建任务通知并没有专门的函数创建,而是在每个任务创建的时候,任务通知就已经...

2020-12-22 08:32:00 121

原创 9.FreeRTOS内存管理简易分析

FreeRTOS Heap简易分析架构:Cortex-M3版本:FreeRTOS V9.0.0前言:队列、任务、信号量等都是需要内存来保存的,FreeRTOS提供了五种分配内存的方式。目录FreeRTOS Heap简易分析1.Heap1.c2.heap2.c2.1申请内存2.2释放内存2.3 重新启用被释放过的内存3.heap3.c4.heap4.c4.1 申请内存4.2...

2020-12-20 15:41:00 274

原创 8. FreeRTOS信号量的简易分析

FreeRTOS信号量简易分析架构:Cortex-M3版本:FreeRTOS V9.0.0前言:在多线程的系统中,通常要处理一些同步或资源竞争的问题,这时候可以使用信号量。目录FreeRTOS信号量简易分析1.二值信号量1.1二值信号量的创建1.2 释放二值信号量1.2.1 普通释放二值信号量1.2.2 中断中释放二值信号量1.3 获取二值信号量1.3.1 普通获取二值信...

2020-12-19 14:12:00 112

原创 7.FreeRTOS 队列的简易分析

FreeROTS队列的简易分析架构:Cortex-M3版本:FreeRTOS V9.0.0前言:很多时候,我们需要任务与任务、中断与任务通信,FreeRTOS提供了队列来实现这些操作。目录FreeROTS队列的简易分析1.队列结构体2.创建队列3.队列发送函数4.队列接收函数1.队列结构体typedef struct QueueDefinition{ int8_t ...

2020-12-15 23:10:00 224

原创 6. FreeRTOS任务调度

FreeRTOS任务调度架构:Cortex-M3版本:FreeRTOS V9.0.0前言:上一篇我们分析了任务的切换,其中写到了在vTaskSwitchContext里面的taskSELECT_HIGHEST_PRIORITY_TASK,计算uxTopReadyPriority 的前导零值,那么本篇尝试分析,FreeRTOS依据什么机制来操作uxTopReadyPrio...

2020-12-15 23:03:00 242

原创 5.FreeRTOS任务切换的简易分析

FreeRTOS任务切换的简易分析架构:Cortex-M3版本:FreeRTOS V9.0.0前言:之前分析了创建任务、启动调度器,在做完这些工作后,就是该完成所有RTOS的最核心的部分,任务的上下文切换,可以说,任务切换就是RTOS。目录FreeRTOS任务切换的简易分析1.SVC2.PendSV3.任务切换4.任务优先级选择在分析之前,先分析Cortex-M3的SVC和P...

2020-12-13 12:05:00 250

原创 4.FreeRTOS调度器的启动简易分析

FreeRTOS调度器的启动简易分析架构:Cortex-M3版本:FreeRTOS V9.0.0前言:上一篇我分析了关于一个任务的创建过程,既然创建了任务,自然是要用。那么FreeRTOS中对于任务的切换,调度器发挥着巨大的作用,这是一个核心。目录FreeRTOS调度器的启动简易分析1.从函数vTaskStartScheduler入手1.从函数vTaskStartSchedu...

2020-12-13 12:01:00 205

原创 3.FreeRTOS任务的简易分析

FreeRTOS任务的简易分析架构:Cortex-M3版本:FreeRTOS V9.0.0前言:毫无疑问,任务整个FreeRTOS的核心,所以分析起来很困难,我只能去各个地方看不同人的文档或笔记,把别人的东西变为自己的东西,最后记录这篇内容。我无法向介绍List那样把全部代码看一遍,只能把大概的流程写下来。目录FreeRTOS任务的简易分析1.任务结构体tskTaskCont...

2020-12-13 11:57:00 328

原创 2.FreeRTOS中断优先级和任务优先级

FreeRTOS中断优先级和任务优先级架构:Cortex-M3版本:FreeRTOS V9.0.0前言:最开始,我并没有搞清楚什么是中断优先级和任务优先级,但看了部分资料后发现这两个并没有半毛钱关系,于是便有了这篇笔记,本篇文章以Cortex-M3(STM32F103)为例子。目录FreeRTOS中断优先级和任务优先级1.Cortex-M3的中断优先级1.1 P...

2020-12-13 11:54:00 906

原创 1.FreeRTOS List简易分析

FreeRTOS从简单的List入手架构:Cortex-M3版本:FreeRTOS V9.0.0前言:打开List.c文件来看,200多行,并不是很多,详细看内容,其实就是一个双向链表的增和删目录FreeRTOS从简单的List入手1.结构体List_t2.结构体xLIST_ITEM3.链表的操作函数3.1链表的初始化->链表的初始化流程3.2链表项的初始化->链...

2020-12-10 21:09:00 174 1

原创 远程升级程序过程

前言:在很多消费电子设备中,都有远程升级的功能,它的优点能给设备增加新功能,以及以新增新功能为理由的修复bug。框架:一个有远程升级的设备有两个程序,一个是bootloader,另一个是设备程序。bootloader自然是引导程序,它的作用是启动哪一个程序。bootloader一般是处于内存的开始的地址,即设备启动就会去运行它。升级包:用keil把程序编译为一个bin文件,然...

2020-12-06 16:14:00 1734

原创 找某个Linux内核可能调用的文件

我想找内核中imx6ull的i2c总线驱动文件,但我在/drivers/i2c/busses下面找到了两个驱动文件,不确定是哪一个,该怎么办?其实可以看驱动文件里面的of_match_table和设备树的有没有对应,有的话就基本是这个文件了。除了这个还有没有其它方法。可以文件里使用printk打印一些数据,比如:printk("I2C is coming here !!!!!!!!!...

2020-11-30 22:12:00 69

原创 linux platform简易的理解

Platform是一种模型它把硬件和软件分离出来,就像单片机一样的,你在使用某个模块的时候,第一要看原理图,知道这个模块连在那个引脚上,要知道有多少个引脚,第二就是根据模块手册的上信息,去操作这些引脚。platform的device就是硬件(多少个引脚,用了什么资源),platform的driver就是驱动(操作这些引脚来初始化模块)。所以就要有两个文件:一个xxx_device...

2020-11-29 21:08:00 242

原创 stm32 外部SRAM的初始化及使用

初始化和使用都比较简单void FSMC_SRAM_Init(void){ FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure; FSMC_NORSRAMTimingInitTypeDef p; GPIO_InitTypeDef GPIO_InitStructure; RCC_AHBPeriphClock...

2020-11-13 09:25:00 1516

原创 协议里面接收多个不定长数据方法

如果需要一条协议来接收多个数据的话,可以这么做:DataHead len1(数据长度1) data1 len2(数据长度2) data2 ....... 校验位 DataTail程序中可以通过判断,知道数据1的长度,即可获取数据1,紧接着就是数据2的长度,以此类推...........

2020-10-24 15:12:00 212

原创 Stm32 调试时发生HardFault_Handler

一般发生这种情况可能是内存越界操作或堆栈溢出。排查方法:1.查看LR的值首先要查看R14(LR)的值,确定当前堆栈指针是MSP还是PSP。LR = 0xFFFFFFF9 为主堆栈(MSP),LR = 0xFFFFFFFD为线程堆栈(PSP)。图中为0xFFFFFFF9,即MSP主堆栈。2.根据MSP或PSP找到返回地址MSP的值为0x200017C8,查看这个地址...

2020-08-25 10:03:00 752

空空如也

空空如也

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

TA关注的人

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