- 博客(101)
- 收藏
- 关注
原创 操作系统内存(32位为例)
它使用哈希函数将内存块的大小作为关键字,将内存块的指针作为值存储在哈希表中。当释放内存时,将该内存块的指针存储在哈希表中,并将其状态设置为空闲。当释放内存时,将该内存块的指针存储在二叉树中,并将其状态设置为空闲。空闲列表:空闲列表是一种简单的内存池算法,它维护了一个空闲内存块的列表。当释放内存时,将该内存块的状态设置为空闲,并将其加入到空闲列表中。PAE paging分页模式增大了PTE的位数,让寻址空间大于4G,让32位操作系统支持更大的物理内存(最大支持64G)。64位4M以下的内存。
2023-09-05 21:21:55 382
原创 【香橙派5】(已解决)nmcli设置完静态ip后ping不通
原因:发现是PC和开发板的掩码不同,PC是25,开发板是24。结局办法:address后面加个/24,然后重启就可以了。问题:nmcli设置完静态ip后ping不通。
2023-04-24 00:27:17 1147 1
原创 【香橙派5】(已解决)HDMI外接屏幕没显示
硬件:orangepi 5,以及在咸鱼上买的7寸垃圾触屏显示屏操作系统:Linux5.10.110。
2023-04-22 19:30:02 3952
原创 ssh:Permission denied, please try again.
这里一定要选择存在的用户名称!原因2:远程登录选择的用户名不对。
2023-02-21 09:49:26 1697
原创 Linux驱动学习笔记
Linux 内核将 RTC 设备抽象为 rtc_device 结构体,因此 RTC 设备驱动就是申请并初始化rtc_device,准备好RTC设备驱动函数集 rtc_class_ops。卸载input驱动的时候需要先使用input_unregister_device函数注销掉注册的input_dev, 然后使用 input_free_device 函数释放掉前面申请的 input_dev。transfer 函数,和 i2c_algorithm 中的 master_xfer 函数一样,控制器数据传输函数。
2023-02-17 21:15:47 1359
原创 【VSCode Remote SSH】远程连接失败过程试图写入的管道不存在
解决办法:找到本地电脑的.ssh;也就是c:\users\user_name\.ssh找到knownhosts删掉我要远程连接的这个ip这一行保存,再重新连接一次就好了。
2023-01-03 17:44:31 1113
原创 【Esp32】用esp32和max30102制作一个血氧仪
(本来是想用屏幕去显示的,但是我发现我的esp32只有一个iic引出来,而max30102模块正好是iic通讯,我又懒得弄spi的屏幕,所以用手机app或者网页去起到显示数据的一个作用了)+物联网平台内置的lot Studio来。点灯科技账号or阿里云物联网平台账号。先直接上代码,用的是blinker库。外面的资料都比较少,只能看官方文档。阿里云我用的是物联网平台。焊笔还没到,所以还没实现。实现网页上线显示数据。
2023-01-01 17:51:13 5997 15
原创 【踩坑汇总】CLion开启QT编程
一下全部内容全都是大佬lht的经验,我只是记录一下给大家。问题:Qt5Config.cmake找不到找到Qt5Config.cmake路径,添加上面这句或者在红线区域加上上面那句话,空格可以忽略。
2022-11-28 20:20:02 1891 2
原创 【QT】【C++】undefined reference to 报错处理
但是在.cpp源文件定义的时候忘了给类的范围Chart::函数,直接用了函数,所以报错。我的原因是因为在.h头文件声明了一个类成员函数。
2022-11-27 16:15:27 654
原创 【C/C++】malloc,calloc,realloc
num_byte为要申请的空间大小,需要我们手动的去计算,如int *p = (int *)malloc(20*sizeof(int)),如果编译器默认int为4字节存储的话,那么计算结果是80Byte,一次申请一个80Byte的连续空间,并将空间基地址强制转换为int类型,赋值给指针p,此时申请的内存值是不确定的。(及已申请的动态空间不够使用,需要进行空间扩容操作),ptr为指向原来空间基址的指针, new_size为接下来需要扩充容量的大小。calloc函数由于给每一个空间都要初始化值,那必然。
2022-11-16 16:14:25 353
原创 【C++】如何修改set的值
也就是说我们虽然改了元素的值,但是它在红黑树中的位置其实是没有变的。这样的结果就是会导致元素失去有序性,比如上面的结果输出的顺序是:"(2)可以通过insert_iterator函数把迭代器强转为可插入形式。尝试通过begin方法得到的迭代器去修改值,发现会报错。但是我们需要注意一点,我们这样强行修改其实是没有经过。当中的元素,我们只需要绕开迭代器的这个限制即可。",按道理应该是按照字典顺序排序的。我们可以在源码里找到问题根源。底层限制了禁止修改,而是通过。原来迭代器的定义是一个。,搞了半天,其实并不是。
2022-11-04 17:43:27 3282
转载 【C++】cin、cin.get()、cin.getline()、getline()的区别
cin.getline()当输入超长时,会引起cin函数的错误,后面的cin操作将不再执行。
2022-11-02 11:55:49 352
原创 FreeRTOS中汇编指令
立即数很大,无法将立即数和指令合并成32bit,指令会被编译器拆分为LDR R0, [PC, #offset];.word 0xF00000000两条指令,即先将立即数利用.word指令存储在该LDR指令附近,编译器计算立即数与当前正在执行指令PC(program counter)指针的偏差offset,注意ARM是流水线指令,采用取指令,译指令和执行指令。BX 指令跳转到指令中所指定的目标地址, 目标地址处的指令既可以是ARM 指令,也可以是Thumb指令。
2022-08-24 15:25:42 2261
原创 Clion设置toolchains报错
报错理由:【cmake test wrong】See also "C:/Users/Weever 閺夛拷/AppData/Local/Temp/cmake_check_environment/重启后重新设置toolchains就没报错了。
2022-08-06 00:39:56 546
原创 【树莓派】USB摄像头+python+opencv
插入usb摄像头,在命令行模式下输入 lsusb 如果看到列举出来的信息有camera的话就说明识别成功,可以使用。1、拍照测试安装输入以下命令,开启摄像头2、录像测试安装输入以下命令,开启摄像头三、安装python2如果发现安装的是python3的话就需要把python改为python2分别运行以下两条命令即可~在命令行模式下输入命令,测试是否安装成功(如果提示不存在python这个命令,说明可能同时存在pyt
2022-07-14 13:34:40 10284 5
原创 嵌入式学习资料和项目汇总
目录C/C++单片机QT工具C/C++搞懂这个16个C语言问题,你也能进大厂单片机基于STM32+华为云IoT设计的健康管理系统+应用侧开STM32是如何软硬件结合,编译后怎么样一步步运行起来的QT基于QT设计的人脸考勤打卡签到系统(华为云)工具十六进制编辑软件-hexed.i基于QT的开源的通讯协议项目——Serial Studio,..................................................
2022-05-31 18:16:11 1233
原创 图解Linux进程调度(一)
一、进程调度解决什么问题?我们在使用电脑的时候,比如打开一个视频剪辑器,一个文本编辑器,可以认为它们都是一个进程。假如CPU是单核的,那么在同一时间只能运行一个进程,但是给我们的感觉是视频剪辑器和文本编辑器好像是同时运行的,也就是视频剪辑器在剪辑视频的时候,我们同时可以使用文本编辑器,这是怎么实现的呢?其实这只是我们从宏观上感觉它们是并行运行的,而微观上它们是串行运行的。也就是说,可以认为这两个进程在做频繁的切换,比如视频剪辑器运行10ms,然后文本编辑器运行10ms,如此交替,这样子它们其实串行运
2022-05-25 00:40:16 2786
原创 Linux学习笔记 驱动开发篇
ARM Linux 驱动开发篇本篇我们将会详细讲解 Linux 中的三大类驱动:字符设备驱动、块设备驱动和网络设备驱动。字符设备最多,从最简单的点灯到 I2C、SPI、音频等都属于字符设备驱动的类型。块设备驱动就是存储器设备的驱动,比如 EMMC、NAND、SD 卡和 U 盘等存储设备,因为这些存储设备的特点是以存储块为基础,因此叫做块设备。网络驱动,不管是有线的还是无线的,都属于网络设备驱动的范畴块设备和网络设备驱动要比字符设备驱动复杂,就是因为其复杂所以半导体厂商一般都给我们编写好了,大多数情
2022-05-15 12:36:50 2042
转载 每周一练 | 嵌入式基础知识(持续更新)
第一周(2022.04.01)(单选题)1.硬实时系统要求( B )A.事件响应实时B.事件和任务都实时C.任务响应实时D.事件和任务响应都不实时2.以下ARM处理器,只有Thumb-2状态和调试状态的是( D )A.ARM7B.ARM9C.ARM11D.ARM Cortex-M33.嵌入式Linux操作系统的组成,不包括( D )A.用户进程B.OS服务组件C.Linux内核D.编译程序4.把堆栈数据出栈到R0的指令为( B
2022-05-14 21:32:24 1593
原创 linux 应用编程(持续更新)
在嵌入式 Linux 系统中,我们编写的应用程序通常需要与硬件设备进行交互Tips:本篇将以正点原子 ALPHA/Mini I.MX6U 开发板开发板出厂系统进行测试开发板 电脑 虚拟机互传数据互连我看的是正点原子的视频。讲的挺好的网络环境搭建互传我看的是正点的 “【正点原子】I.MX6U网络环境TFTP&NFS搭建手册V1.3.1”我一般是用nfs共享文件夹的方法,好用,不需要记指令点灯应用层操控硬件的两种方式设备文件便是各种硬件设备向应用层提供的一个接口,包括字符设备文件和块设备
2022-05-12 20:03:51 2946
原创 linux系统编程
第一章 系统调用内核提供了一系列的服务、资源、支持一系列功能,应用程序通过调用系统调用 API 函数来使用内核提供的服务、资源以及各种各样的功能1.2 库函数库函数也就是 C 语言库函数在 Linux 下,通常以动态(.so) 库文件的形式提供,存放在根文件系统/lib 目录下库函数是属于应用层,而系统调用是内核提供给应用层的编程接口,属于系统内核的一部分库函数运行在用户空间,调用系统调用会由用户空间(用户态)陷入到内核空间(内核态)库函数通常是有缓存的,而系统调用是无缓存的,所以在
2022-05-07 21:46:49 6095
原创 linux裸机、驱动学习笔记(持续更新)
一、裸机开发(1)I.MX6ULL芯片简介NXP出品的,528~900MHz的Cortex-A7内核的MPU。(2)Cortex-A7架构七种处理模式Cortex-A 寄存器组是 Cortex-A 的内核寄存器组,注意不是芯片的外设寄存器ARM 架构提供了 16 个 32 位的通用寄存器(R0-R15)供软件使用,前 15 个(R0-R14)可以用作通用的数据存储,R15 是程序计数器 PC,用来保存将要执行的指令。ARM 还提供了一个当前程序状态寄存器 CPSR 和一个备份程序状态寄存器
2022-04-27 16:21:57 684
原创 makefile学习笔记
默认顺序是上到下= 是最基本的赋值:= 是覆盖之前的值?= 是如果没有被赋值过就赋予等号后面的值+= 是添加等号后面的值**反斜杠(\)**是换行符的意思clean.PHONY : clean clean : -rm edit $(objects).PHONY意思表示clean是一个“伪目标”rm命令前面加了一个小减号的意思就是,也许某些文件出现问题,但不要管,继续做后面的事*3.2 规则的语法*targets : prerequisites co
2022-04-27 15:17:11 146
原创 把本地文件上传到git仓库
一、前提1.下载并安装Git客户端→Git官网下载地址2.注册GitHub账号→GitHub官网二、创建本地仓库1.打开存放代码的文件夹目录,鼠标右键选择"Git Bash Here",打开Git命令行窗口;2.初始化本地仓库并配置签名,在命令行窗口依次输入以下命令:1.初始化仓库:git init2.配置签名:① git config user.name "Zhang3" ② git config user.email "zhang3@163.com" --签名配.
2022-04-15 20:20:36 9637
原创 ubuntu上安装QT
前言Qt作为一款C++的跨平台开发框架,不懂在Linux系统上安装怎么行呢?本文带大家详细地走一遍流程~下载Qt Linux安装包首先进入Qt的官方下载页面:https://download.qt.io/archive/qt/5.14/5.14.2/进入之后可以看到分别有Windows,Mac,Linux三个平台的安装包。直接点击就开始下载了安装1,通过ls命令发现安装包是没有执行权限的,所以要添加以下2,执行chmod命令添加权限.
2022-04-11 22:46:14 10044 2
原创 ubuntu上玩云顶
主要是用到腾讯Start云游戏,下面开始教程用的是ubuntu20.04第一步 安装wine和winestrickssudo apt-get install winesudo apt-get install winestricks第二步 还需要在下载一个 Wine 游戏助手winegame.net/然后在 Wine 游戏助手搜索 START 云游戏并安装,这样就能愉快的玩各种游戏了。还可以安装微信,good...
2022-04-11 21:35:42 3299
原创 Wine——在Linux上运行Windows软件
参考:wikipedia教你使用Wine在Linux上运行Windows软件如何安装和使用Wine,以便在Linux上运行Windows应用程序?Ubuntu13.04(64bit)下用Wine安装百度云、360云、微云一、简介Wine是一个在x86、x86-64上容许类Unix操作系统在X Window System下运行Microsoft Windows程序的软件。另一方面,计算机程序设计师能经由Wine的程序库将视窗的程序转移至类Unix操作系统中运行。也有不少软件经过Wi
2022-04-11 21:29:56 15148 5
原创 十三届蓝桥杯嵌入式题目
今年题目挺简单的,就见到考考外设,没什么逻辑。不过第一批发的串口不知道是不是芯片是gd32的原因,串口功能是有问题的。赛前两天找老师要了新的好板子。我的答案有地方可以完善,就是可以那个输错密码三次后闪灯可以先刷新一次页面然后改变灯的状态来实现灯和lcd伪同时进行的现象。我现在就是要等灯闪完后才可以刷新屏幕。还有串口必须接收满七个字符才能进行操作,这个由于我水平有限,希望大佬能指点下。寄!代码昨晚删了。没事反正不难,看看题目就知道怎么写的了...
2022-04-10 19:06:03 475 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人