刷新
[rCore学习笔记 032] 管理SV39多级页表

博主头像 上一节:硬件 本节:软件实现 物理页帧管理 内核->空闲内存->物理页帧->分配->存放 可用物理页的分配和回收 Link文件中关于操作系统bin文件的内存设计 内容os\src\linker-qemu.ld: OUTPUT_ARCH(riscv) ENTRY(_start) BASE_ADDRES ...

各种PID算法和优化

博主头像 各种PID算法和优化 1. 经典PID公式 位置式PID公式 增量式PID公式 1.1 离散位置式PID公式 u(t) = P * error_now + I * error_sum + D *(error_now- error_last) error_now 当前误差 error_sum 误差累积 ...

docker部署openwrt系统编译环境

博主头像 背景:首次接触docker。 1、拉取镜像。 2、通过初始镜像开启一个容器,并将容器重新设置一个tag,查看容器,通过exec开启终端,注:docker名称必须是小写的,查看docker容器列表。 docker run -it 861b7388600f91f3a0b82a496821eeb88733 ...

推荐Linux命令行运维工具: WowKey--实现自动化批量化标准化Linux设备运维

WowKey命令行运维工具,Linux设备的自动化、批量化、标准化的运维解决方案,解放运维人,提升企业运维效率和质量。 有人能理解做设备的运营维护工作的痛苦所在吗? 如果你的运维工作中,只维护个位数数量级别的设备,那无所谓—— 通用的简单的远程人机交互式的设备登录,然后执行Shell 命令的维护方式 ...

SPI总线协议

博主头像 SPI总线协议 0. 概述 数据线: SCL :同步时钟线,用于控制时序,可通过CPOL设置极性 MOSI :主机发送-从机接收 数据线 MISO :主机接收-从机发送 数据线 CS/NSS:片选信号线,低电平有效,但是每个从设备都想要一根CS线,占用引脚多 支持全双工通信 高速片上通信协议: 支持 ...

【ESP32】移植 Arduino 库到 idf 项目中

博主头像 今天咱们要聊的内容非常简单,所以先扯点别的。上一篇水文中,老周没能将 TinyUSB 的源码编译进 Arduino 中,心有两百万个不甘,于是清明节的时候再试了一次,居然成功了,已经在 esp32 开发板上验证过,可行!官方的文档中说只在 Ubuntu、树莓派和 mac 中编译通过,win 平台未测 ...

条件锁存在的意义:用生活中的例子秒懂线程间的"暗号系统"

条件锁存在的意义:用生活中的例子秒懂线程间的"暗号系统" 引子: 在学习linux下c语言中的互斥锁和条件锁的时候,我的大脑哦逻辑进入了“条件锁到底锁了什么”的死循环,所以让deepseek给我举了三个生动的例子,感觉非常有帮助,记录在这里,这段回答仅用于理解条件锁的含义,代码准确性有待验证: 正文 ...

Tengine-rpm 基于Tengine 3.1深度定制优化

Tengine RPM Tengine是亚洲最大的电子商务网站淘宝网推出的高性能的HTTP和反向代理web服务器。它基于 Nginx HTTP 服务器,拥有许多高级功能。事实证明,Tengine 在淘宝网、天猫、优酷、阿里速卖通和阿里云等世界前100强网站上非常稳定、高效。 简言之,Tengine是 ...

Win11用脚本修改音频设备的输出设置

博主头像 1. 问题来源 系统是Windows11 24H2版本,音频设备使用的是一款飞傲家的FiiO BTR7蓝牙解码耳放,蓝牙不怎么用,大多数时候还是直接连接电脑当作有线DAC使用,后面内容对这个设备就用DAC来称呼。 使用时碰到一个问题是,在Windows11系统进入睡眠状态后,从睡眠状态唤醒,随意打开 ...

一种基于openmv和触摸屏的动态读取颜色的解决方案

博主头像 一种基于openmv和触摸屏的动态读取颜色的解决方案 前言: ​ 作为大学生电子设计竞赛控制题选手,常常需要与视觉上位机打交道,openmv作为当前一种开源方案,能够以较低的成本制作,并且官方文档和各种教程丰富,但是苦于光照的影响,程序中预定的阈值往往会出现误差,导致完美运行的工程就此崩塌,故博主以 ...

信号量

信号量 一、信号量的概念 Linux系统提供了一种名称叫做信号量(Semaphore)的IPC资源,信号量的英文也可以翻译为信号灯,信号量本质上其实是一个数字(非负整数),用来表示一种资源的数量,当多个进程或者线程争夺这些稀缺资源的时候,可以使用信号量来保证他们合理地、秩序地使用这些资源。 Linu ...

单片机、嵌入式的大神都平时浏览什么网站?

博主头像 作为一名摸爬滚打十余年的嵌入式开发老兵,经常有初学者问我:"大神们平时都看什么网站啊?"今天就借这个机会,全面梳理一下我和同行们常年收藏的"干货网站"。这些网站就像我们的"武器库",在不同开发阶段各显神通。废话不多说,直接上干货! 一、芯片厂商官方资源:硬核知识的源头 很多初学者总想着找二手资料,却 ...

C++ 程序员入门需要多久,怎样才能学好?

博主头像 一、我的C++学习之路:一个嵌入式老兵的自白 先交代一下我的背景:理工科毕业,半路出家学的编程。大学时代是机械专业,但阴差阳错进了一家电子公司,被分配做嵌入式开发,于是硬着头皮自学了C语言和单片机,后来又接触了Linux和C++。 十多年摸爬滚打下来,从菜鸟到带团队再到自己创业开公司,我对C++这门 ...

共享内存

共享内存 一、共享内存的概念 共享内存是Linux系统进程间通信的一种方式,是在Unix系统的system-V版本引入的一种IPC对象,除了共享内存外,其他的IPC对象还包含消息队列、信号量组。 共享内存其实就是指多个进程可以共享物理内存中的同一段内存区域,只不过还需要把物理内存映射到进程的私有虚拟 ...

【ESP32】两种模拟 USB 鼠标的方法

博主头像 上一篇水文中,老周给大伙伴们扯了关于 idf 中添加自定义 Arduino 组件的方案。这次咱们做一下 USB 鼠标玩玩。 很遗憾的是,老周无能,在 Arduino-esp32 组件依赖 TinyUSB 组件时无法进行编译,不管怎么配置都会找不到 tusb.h 文件;就算把 tinyUSB 内置到 ...

消息队列

消息队列 一、消息队列的概念 Linux系统中消息队列(Message Queue)是进程间通信的一种方式,这种通信机制的好处是可以传输指定类型(用户可以自行定义)的数据,相同类型的数据根据到达顺序在队列中进行排队。 当然,不同类型的数据不能处于同一个队列中,也就是说系统中可能存在多个消息队列,每个 ...

123···50>