clangd 使用技巧
在vim中使用coc-clangd插件时的一些配置笔记 .clangd文件 某些项目提示头文件不存在,可以在项目根目录添加.clangd文件,增加配置文件 CompileFlags: Add: [-I/opt/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include] .clang-format文件 coc-clangd 使用 clang-format 进行代码格式化,配置文件为 ~/.clang-format https://clang.llvm.org/d...
riscv工具链在 wsl 上出现 Segmentation fault
BK7235 的开发环境需要用到 RISCV 工具链,下载官方的工具链 toolchain_v5.2.1.tar.gz, 在 WSL 下编译 C 源码的时候出现 Segmentation fault 错误,运行不了。主要原因是 vsyscall 没开启导致的,WSL 开启 vsyscall 即可解决。 WSL 开启 vsyscall 的方法如下: 在用户根目录创建配置文件 .wslconfig,在 wsl2 下添加kernelCommandLine = vsyscall=emulate...
如何在Linux上使用Cron
Cron 是 Linux 操作系统中一个基本而强大的工具。这些基于时间的作业调度器对于系统管理员、开发人员和技术爱好者来说都是必不可少的,可以实现日常任务的自动化。 本文旨在揭开 cron 作业的神秘面纱。它提供了一个全面的指南,解释了什么是 cron 作业,它们是如何工作的,最重要的是,如何使用它们来自动执行 Linux 系统上的重复性任务。 因此,无论您的目标是设置自动备份文件、在特定时间运行脚本,还是自动化您的个人项目,本文都将向您展示 cron 作业如何使这一切成为可能。所以,让我们开始吧! Cron 是什么 Cron 是类 Unix 操作系统(包括 Linux 和 ma...
腾讯云自动申请域名证书
安装 acme.sh curl https://get.acme.sh | sh -s email=my@example.com 会将 acme.sh 下载到 ~/.acme.sh/ 中,并且创建一个定时任务: crontab -l 16 2 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null 申请证书 通过配置 DNS 的方式可以申请泛域名 在 dnspod 控制台: 我的账号 -> API密钥 -> DNSPod T...
FreshRSS 重置密码
FreshRSS 的用户密码没有存储在数据库中 存储在配置文件 /data/users//config.php 中 '$2a$09$pXJyqN3SxOOGw7YB.0P1M.CCDtEYPhd1by5aVBQSJw5Yvr9mYXIDa', ... passwordHash 是通过 password_hash 函数生成的,不可逆 使用 python 模块 bcrypt 生成一个新的密码,替换旧的密码 `pytho...
对 ROM、RAM 和 FLASH的总结
ROM ROM (Read Only Memory) 只读存储器在掉电时不会丢失所存储的数据。 MROM Mask ROM(掩模只读存储器)是一种在制造过程中数据被永久写入的只读存储器。它的名称来源于制造过程中使用的掩模(mask),这种掩模用于在半导体晶圆上定义存储内容。 数据写入 在制造过程中,掩模决定了哪些晶体管是连接的(表示1)以及哪些晶体管是断开的(表示0)。 数据读取 读取过程类似于其他只读存储器。地址信号输入后,控制电路根据地址选择相应的存储单元,并输出其存储的数据位。 ○ 由于存储单元是由固定的物理连接定义的,读取速度较快且可靠。 ...
ARM Cortex-M3基础
性能简介 高性能 许多指令都是单周期的——包括乘法相关指令。并且从整体性能上, Cortex-M3 比得过绝大多数其它的架构。 指令总线和数据总线被分开**,取值和访内可以并行不悖 Thumb-2 的到来告别了状态切换的旧世代,再也不需要花时间来切换于 32 位 ARM 状态和16 位 Thumb 状态之间了。这简化了软件开发和代码维护,使产品面市更快。 Thumb-2 指令集为编程带来了更多的灵活性。许多数据操作现在能用更短的代码搞定,这意味着 Cortex-M3 的代码密度更高,也就对存储器的需求更少。 取指都按 32 位处...
FreeRTOS的任务
使用 RTOS 的实时应用程序可以被构建为一组独立的任务。每个任务在自己的上下文中执行,不依赖于系统内的其他任务或 RTOS 调度器本身。在任何时间点,应用程序中只能执行一个任务,实时 RTOS 调度器负责决定所要执行的任务。因此, RTOS 调度器可以在应用程序执行时重复启停每个任务(将任务调入或调出)。由于任务不了解 RTOS 调度器活动,因此实时 RTOS 调度器负责确保任务调入时的处理器上下文(寄存器值、堆栈内容等)与任务调出时的处理器上下文完全相同。为实现这一点,每个任务都分配有自己的堆栈。当任务调出时,执行上下文被保存到该任务的堆栈中,以便以后再调入相同的任务时可以准确地恢复其...
SNR与EVM的关系
关系 当SNR较大(大于10dB)时,SNR=-20lg(EVM),其中SNR的单位为dB,EVM为正实数。 如果EVM用dB表示,可以简化为SNR = -2\*EVM_dB。(此式在SNR大于4dB时,误差较小,不超过1dB) 下面依次介绍 log、dB、dBm、evm、snr的概念,再说明此结论的推导过程。 对数公式 如果a^b=N(a>0,且a≠1,则b叫做以a为底N的对数,公式如下,其中a叫做底数,N叫做真数, b叫对数。 通常我们将以10为底的对数叫常用对数,以e为底的对数叫自然对数。 常用对数:$ lg(b) = log_{10}(b) $...
WSL2 启用桥接网络并开启mDNS
WSL2 启用桥接网络 首先在Hyper-V管理器中创建新的虚拟交换机(假设名字为eth_switch),并选择外部网络和要桥接道德物理网卡。 编辑window主目录下.wslconfig文件,添加两行配置 #C:\Users\\.wslconfig [wsl2] #... networkingMode=bridged vmSwitch=eth_switch 重启WSL2后,eth0将和物理网卡一样获取一个独立ip 启用avahi-daemon.service服务实现mDNS广播 安装 su...