无标题
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# 停止docker compose down# docker stop rustdesk-api# docker...
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...
RTOS System
RTOS 实时操作系统MOSI/MISO loopbackMOSI(Master Out Slave In)和 MISO(Master In Slave Out)是 SPI 总线的两条数据线。Loopback 指的是将 MOSI 和 MISO 物理上短接(或在软件中模拟),这样主机发送的数据会直接回到主机的接收端。在没有真实 SPI 从设备的情况下,可以用 loopback 测试 SPI 主机的收发流程、FIFO、回调等功能是否正常。 任务优先级设置#define TASK_PRIORITY_PAYLOAD (tskIDLE_PRIORITY + 4)#define TASK_PRIORITY_HEARTBEAT (tskIDLE_PRIORITY + 1)/* ... */int userTaskStack = TASK_PRIORITY_PAYLOAD;TaskHandle_t userTask = xTaskCreateStatic( &user_task_entry, ...
BBE32EP note
ConnX BBE32EPBBE: Baseband Engine32: 32路 MAC(乘累加)能力 - 这意味着 DSP 在一个时钟周期内,其 SIMD(单指令多数据)向量执行单元可以并行完成 32个 16-bit × 16-bit 的复数或实数乘累加运算。这是衡量其通信基带处理吞吐量最核心的指标。EP: Enhanced Performance(增强性能版)或 Extended Precision(扩展精度版) - 相对于前代(如 BBE32),“EP” 版本引入了更强大的硬核功能,特别强化了对浮点数(Floating-Point)的支持(包括单精度 Float32 和半精度 Float16/BF16),并且极大地优化了多天线阵列、雷达信号处理中所必须的矩阵运算(Matrix Operations)和向量穿梭(Vector Shuffle)效率。 SIMD && VLIWCadence BBE 同时使用了 SIMD + VLIW,因此一个 Cycle 内既可以执行多条不同指令,每条指令又可能同时处理多个数据。 SIMDSIMD...
BBE32EP Floating-Point
Half Precision Data半精度浮点数:Half Precision,也称 FP16,就是使用 16 bit 表示一个浮点数。 IEEE754 定义如下: 位 长度 含义 Sign 1 bit 符号 Exponent 5 bit 指数 Fraction 10 bit 尾数 表示形式:$$(-1)^s \times 1.f \times 2^{e-15}$$ fraction尾数部分:$$1 \times 2^{-bit9} + 1 \times 2^{-bit8} + \cdots + 1 \times 2^{-bit0}$$ 其中 bias = 15 指数范围(正常数): e = 1~30 e=0 和 e=31 有特殊意义 FP16 长这样: 15 10 0+--------+----------+|S|Exp(5)|Frac(10) |+--------+----------+e.g0 01111 0000000000 Subnormal...
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]...
zynq base
AXI(Advanced eXtensible Interface)AXI:Advanced eXtensible Interface(高级可扩展接口) AXI 总线是连接 PS(Processing System,处理器系统,即 ARM 核心) 和 PL(Programmable Logic,可编程逻辑,即 FPGA 部分) 的核心桥梁。它并不是一条单一的物理总线,而是一套高性能、高带宽、低延迟的片上总线接口标准。通过 AXI 总线,ARM 核心可以像读写内存一样控制 FPGA 中的自定义 IP 核,而 FPGA 中的 IP 核也可以直接访问 DDR 内存或外设。 Zynq 中 AXI 的三种主要接口类型为了满足不同的数据传输需求,AXI 规范在 Zynq 中衍生出了三种具体的接口类型: AXI4 (AXI4-Full) 特点: 高性能、高带宽。支持突发传输(Burst Transfer),即只需给出首地址,就可以连续读写最多 256 个数据。 应用场景: 适用于需要大批量数据搬运的场景,例如视频流传输、DMA(直接内存访问)控制器、高速缓存(Cache)与...
