WSL2
常用指令保存密码git config –global credential.helper store
无标题
docker的编排运行将复杂的参数(端口、挂载卷、网络)持久化在 YAML 文件中(astrbot 示例) services: astrbot: image: soulter/astrbot:latest container_name: astrbot restart: always ports: - "6185:6185" # Web 控制台端口 - "6199:6199" # 消息监听端口(根据需要开启) volumes: - ./data:/AstrBot/data - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro environment: - TZ=Asia/Shanghai # 启动命令: docker compose up -d ## 根据配置文件构建镜像(如有必要)、创建并启动所有服务(没有-d: 前台运行. -d: 后台运行)。#...
xtensa boot compile
.x 链接脚本.x 本质上也是 GNU ld 风格的链接脚本。它和常见的 GNU .ld 文件主要区别不在脚本语法,而在于:这是 Xtensa 工具链使用的
Signal and System note
蝶形运算 4点DFT定义为:$$X(k) = \sum_{n=0}^{3} x(n)W_4^{nk}$$其中 $$W_4 = e^{-j2\pi/4} = e^{-j\pi/2} = -j$$ 因此$$W_4^0 = 1, \quad W_4^1 = -j, \quad W_4^2 = -1, \quad W_4^3 = j$$ 蝶形算子(Butterfly Operation)基本蝶形运算(以 Radix-2 DIT 为例)是 FFT 算法的核心单元。它接收两个复数输入,只需一次复数乘法和两次复数加/减法,就能产生两个输出: 输入: $a, b$(两个复数)输出:$$u = a + b \cdot W$$$$v = a - b \cdot W$$ 其中 $W$ 是旋转因子(Twiddle Factor),$W = W_N^k = e^{-j\frac{2\pi k}{N}}$ 计算过程: 关键在于 $b \cdot...
Signal and System note
定点数LSBLSB: Least Significant Bit 最低有效位在定点数(以及所有二进制数)中,LSB 是指二进制表示中最右侧的那一位,它代表了整个数值中最小的权重。截断,直接扔掉低位,不做四舍五入。这会引入最多 −1 LSB、平均约 −0.5 LSB 的系统性负偏置(DC bias)
BBE32EP DSP grammar
关键字restrict 当一个指针变量被restrict修饰时 int * restrict ptr; 消除指针别名(No Pointer Aliasing): 在指针 ptr 的生命周期内,它所指向的内存块,只能通过 ptr(或基于 ptr 算术运算得到的指针)来访问。绝对没有第二个指针会同时指向这块内存 指针别名危机(Pointer Aliasing)void vector_add(int *a, int *b, int *c, int n) { for (int i = 0; i < n; i++) { c[i] = a[i] + b[i]; }} 普通的 CPU 或 GCC 编译器在编译这个循环时,由于无法确定 c 是否与 a 或 b 存在内存重叠(比如万一调用者传入的是 vector_add(a, b, a+1, n) 呢?),必须强制执行以下安全策略: 从 a[0] 读数据 从 b[0] 读数据 相加,写入 c[0] 必须重新从内存加载 a[1](因为刚刚写入 c[0]...
无标题
Dual Real Mode 数据结构与 I/Q 分离详解概述本文档详细说明在 Dual Real Mode 下,DMA 搬运来的数据结构,以及如何理解和处理这些数据。 配置基准:fft_size = 4096, ra_top_mode = RA_DUAL_REAL_MODE, enable_magsq = true 一、Dual Real Mode 工作原理1.1 信号编码与处理流程输入:两路实数 ADC 信号┌─────────────────────────────────────────────────────────────┐│ real0[0..4095] - 第一路实数信号(例如:TX0 的接收信号) ││ real1[0..4095] - 第二路实数信号(例如:TX1 的接收信号) │└─────────────────────────────────────────────────────────────┘ ↓...
无标题
• 结论先说:ipc_memory_pool 中的 0x00080000 是设备树使用的物理/总线地址,但它不是手册中的 0x011D0000,两者不是同一片地址。 ipc_memory_pool@00080000 的地址含义 在 /home/hjk/workspace/11.bcm8915x/BCM8915X_LIDAR_REF_SW_REL_0_1/A55_system/u-boot/arch/arm/dts/bcm8915x.dtsi:27 中: reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; ipc_memory_pool: ipc_memory_pool@00080000 { reg = <0x00 0x00080000 0x0...
无标题
notebookOCPOCP(Open Core Protocol)是一种面向片上系统 IP 互连的标准接口协议,常用于连接芯片内部的 DSP、硬件加速模块、存储控制器以及第三方 IP 核。与 ARM 的 AMBA 体系(AXI/AHB)并列,它强调的是“统一接口定义”和“模块化集成”。 1. 常见片上总线/接口协议概览 协议 组织/来源 典型特征 典型应用 AMBA AXI ARM 高性能、高并发、支持乱序、读写通道分离 CPU、DDR、NPU、大带宽主干网络 AMBA AHB ARM 结构简单、控制逻辑清晰、适合中速控制总线 SRAM、GPIO、DMA、寄存器访问 OCP OCP-IP 联盟(现属 Accellera) 以 Socket/接口抽象为核心,可配置、灵活、跨厂商 IP 集成友好 DSP、专用加速器、跨厂商 IP 互联 2. OCP 的核心特点 点对点接口独立性OCP 把 IP 核的功能逻辑与片上互连网络(Interconnect /...
