FreeRTOS堆内存管理
内存分配
FreeRTOS-Kernel/portable/MemMang
这一部分主要关注的是 FreeRTOS
在申请内存时,调度器挂起到恢复调度器之间的代码。
12345vTaskSuspendAll();{ // 核心代码}( void ) xTaskResumeAll();
heap_1.c
heap_1 仅支持分配内存块,但是不支持释放。
在 heap_1.c
中,下面这段程序的目的是确保 pucAlignedHeap 指向的地址是
portBYTE_ALIGNMENT 的倍数(例如 8
字节对齐),pucAlignedHeap
作为申请空间的逻辑起点,在首次调用 pvPortMalloc
时计算,之后固定不变!
1234567891011/* Ensure the heap starts on a correctly aligned boundary. */pucAlignedHeap = ( uint8_t * )( ( (portPOINTER_SIZE_TYPE) &(ucHeap[ portBYTE_ALIGNMENT ...
代理服务器
123456789101112131415161718 ./+o+- yyyyy- -yyyyyy+ OS: Ubuntu 24.04 noble ://+//////-yyyyyyo Kernel: x86_64 Linux 6.8.0-90-generic .++ .:/++++++/-.+sss/` .:++o: /++++++++/:--:/- o:+o+:++.`..```.-/oo+++++/ Shell: zsh 5.9 .:+o:+o/. `+sssoo+/ Resolution: No X Server .++/+:+oo+o:` /sssooo. WM: Not Found/+++//+:`oo+o /::--:. GTK Theme: [GTK3]\+/+o+++`o++o ...
链路预算
链路预算的目的是验证通信链路是否闭合,即接收端信噪比是否满足误码率要求,并计算链路余量以评估通信系统的可靠性。
核心原理
链路预算是对信号从发射端到接收端整个传输过程中的
增益 与 损耗
在对数域进行代数加减,最终得到接收端的信噪比,并与系统解调门限进行比较。通信链路可分为以下三部分
发送端:决定发射功率、天线增益,核心指标是
EIRP(有效全乡辐射功率)
信道:信号传播过程中的衰减,核心指标是自由空间损耗+大气损耗等
接收端:决定接收信号的能力和噪声水平,核心指标是
G/T(品质因数)
另外,在透明转发卫星系统中,链路分为上行链路(地面 →
卫星)和下行链路(卫星 →
地面),上下行链路串联,噪声会累积,总载噪比取决于较差的一段链路(计算公式为倒数和)
计算流程
确定系统基本参数
基本参数
具体内容
工作频率
上行频点 和下行频点
通信距离
卫星到地面的距离
信号参数
符号速率 ,调制阶数 ,编码码率 ,扩频比 ,滚降系数
指标要求
目标误码率
计算信号带宽
计算发射端 EIRP
:发射机输出功率;
:发射天线增益;
计算 ...
Nginx学习笔记
运行环境
1234567OS: Ubuntu 24.04 nobleKernel: x86_64 Linux 6.8.0-90-genericShell: zsh 5.9Disk: 13G / 68G (19%)CPU: AMD EPYC 7K62 48-Core @ 2x 2.595GHzGPU: Cirrus Logic GD 5446RAM: 804MiB / 3915MiB
安装
123456789cd /usr/local/srcwget https://nginx.org/download/nginx-1.29.5.tar.gztar -zxvf nginx-1.29.5.tar.gzmv nginx-1.29.5 nginxcd nginx./configuremakemake installln -s /usr/local/nginx/sbin/nginx /usr/local/bin/ # 全局可执行
配置文件位于 /usr/local/nginx/conf/nginx.conf
基本指令
启动、停止和重新加载配置
1nginx -s <signal> ...
内存管理
本文内容基于 glibc-2.43 版本
内存分配
64 位 Linux 内存布局如下图所示
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556# 64-bit Linux (x86_64) Userspace Virtual Memory Layout## High addresses# 0xffffffffffffffff +---------------------------------------------------+# | (non-canonical / guard) |# 0xffff800000000000 +---------------------------------------------------+# | ...
为什么是50Ω
同轴线缆的 特性阻抗是
功率容量 与 损耗 之间的平衡。
阻抗
单位长度传输线的等效模型
单位长度传输线的特性阻抗为
近似无损耗的传输线,特性阻抗表示为
在不精确要求下,这个阻抗与频率无关。表达式中 为单位长度分布电感, 为单位长度分布电容。
设同轴线内导体半径为 ,外导体半径为 ,则有效传输区域为 .
其中
表示填充介质的磁导率,
为填充介质的介电常数, 为真空磁导率,
为真空介电常数;
分别为介质的相对磁导率、相对介电常数。
真空波阻抗满足 ,非磁介质
,则特性阻抗表示为
并且填充空气时 .
功率容量
同轴线功率容量通常由介质击穿限制决定。
在同轴传输线中, TEM
模是主模,电场仅存在径向分量,从内导体外壁指向外导体内壁,磁场仅存在角向分量,围绕内导体环形分布,电场与磁场相互垂直,且均垂直于轴向传输方向。
同轴线内电磁场分布
工程中计算介质击穿功率容量时,可忽略损耗对场强分布的影响,仅考虑静态/低频极限下的径向场强分布。
对于无耗同轴线,其径向场强的静态、低频形式为
其中
表示同轴线内外导体间的电压。当
时取最大值,介电强度(击穿电场 ...
SSH隧道端口转发访问服务器Jupyter
本文省略 Jupyter 安装流程,配置流程如下:
12jupyter notebook --generate-configvim .jupyter/jupyter_notebook_config.py
修改下面内容:
12345c.ServerApp.allow_remote_access = Falsec.ServerApp.ip = '127.0.0.1'c.ServerApp.notebook_dir = '<custom_path>'c.ServerApp.open_browser = Falsec.ServerApp.port = <custom_port>
经过上述配置后,Jupyter 只能在服务器本机的环回网卡开一个 TCP 监听端口
<custom_port>,只有服务器自己能访问,外界扫描不到端口,降低被爆破的风险。SSH
连接建立后,会形成一个加密的双向通道,全程加密并且能在通道中复用多路数据流,当然也包括端口转发。
服务器不开放公网端口,本地使用 SSH 建隧道,把服务器的 Jupyter
端口映射到本地,再用浏览器访问 ...
Visual Studio 配置 GPU
运行环境:
操作系统:Windows 11 Pro
开发工具:Visual Studio 2022 v17.14.24
CUDA
Visual Studio 在新建的工程中,右键 → [Build Custemization
Files],添加下面目录中的 .targets 文件
1C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\extras\visual_studio_integration\MSBuildExtensions
然后
[Properties] → [VC++ Directories] → [Include Directories] 填入
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\include
[Properties] → [VC++ Directories] → [Library Directories] 填入
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12. ...
《阵列信号处理》学习笔记
假设一个 M 元阵列天线,信号形式为
其中 是 的信号矢量, 是 的导向矢量矩阵
协方差矩阵描述阵列接收数据各个通道之间相关性,定义为
如果信号与噪声互不相关,且噪声均匀独立同分布,那么
其中
为信号源协方差矩阵,
为噪声方差。对角元素表示阵元接收信号的平均功率,非对角元素表示不同阵元信号的互相关性。
实际上,只能采用采样数据近似计算协方差矩阵,
通过时间平均估计阵列数据的统计特性,其中 为快拍数,即采样点数。
MUSIC 算法
一种基于子空间分解的高分辨率波达方向(DOA)估计方法,由 Schmidt
等人于 1986 年提出。
R. Schmidt, "Multiple emitter location and signal parameter
estimation," in IEEE Transactions on Antennas and Propagation, vol. 34,
no. 3, pp. 276-280, March 1986, doi: 10.1109/TAP.1986.1143830.
将阵列接收数据的协方差矩阵特征值分解为 信号子空间 ...
《统计信号处理》学习笔记
数学基础
用概率密度函数(Probability Density Function,
PDF)描述一组随机数据,即 ,PDF 以未知量 为参数,以 , 表示均值为例,数据的 PDF 为
然后就可以根据 的观测值推断
的值。
估计量性能评估
将数据建模为
其中
为加性高斯白噪声(Additive Gaussian White Noise, AWGN),即
表示均值为 ,方差为
的高斯分布,并且所有样本是互不相关的。利用下式即数据的样本均值估计
满足
最小方差无偏估计
无偏估计量
无偏估计意味着估计量的平均值为未知参数 的真值,如果
说明估计量是无偏的,其中
表示 可能的取值范围。
对于同一个参数有多个估计可用的情况,即 ,对这些组合求平均,即
假设每个估计量都是无偏的,方差相同且互不相关,则
因此,求平均的估计值越多,方差越小,当 时,。
最小方差准则
均方误差定义为
衡量估计值偏离真值的平方偏差的统计平均值。
其中第一部分是估计量围绕其数学期望的随机波动,第二部分是估计量的期望围绕真值的波动,展开后得到
其中 ,表示估计量的偏差。上式表明 是 ...