- 博客(222)
- 资源 (2)
- 收藏
- 关注
原创 5G相比LTE 大的差异
CRS小区参考信号。CRS是LTE系统设计的基础,CRS与PSS/SSS/PBCH一起,无论系统负载状态如何,都保持一直发送。CRS时频资源位置可以参考:https://blog.csdn.net/wowricky/article/details/79184120, CRS 存在于整个带宽,开销巨大.4 port 时CRS开销为14.28%。LTE 小区最大20M 带宽,而5G 带宽要大得...
2019-10-27 19:20:19 6556 1
原创 LTE: MIB和SIB,小区选择和重选规则
LTE 中MIB/SIB内容可以参考:https://blog.csdn.net/wowricky/article/details/51348613MIB/SIB的详细内容参考下面两张图MIB,SIB1,SIB2可以关注下小区选择的参数,用特殊颜色表示SIB2 - SIB7可以着重关注下小区选择和同频/异频/异系统测量的参数,用特殊颜色加以区分强调。...
2019-10-13 18:09:14 3153 3
原创 LTE随机接入过程
随机接入的基本流程Msg3和Msg4只有基于竞争的随机接入才存在,之所以叫Msg3/Msg4是因为不同的随机接入情况,Msg3/Msg4的消息不相同(本文稍后介绍)。下图中的参数<ra-ResponseWindowSize>和<mac-ContentionResolutionTimer>来自SIB2中的rach-ConfigCommon参数。基于竞争的和非竞争的2种随机接入...
2018-03-02 12:00:57 14151 1
原创 REG理解与PCFICH/PHICH/PDCCH的资源映射
1. REG简介REG (Resource Element Group) 位于下行子帧的控制区域内,是下行控制信令进行物理资源分配的基本单位. REG上所有的RE在时域上位于同一symbol,且在同一PRB 内。 一个REG包含RE的数量与CRS的位置有关,CRS所占的RE不用能用传输控制信令,CRS的数量和位置与Antenna port有关,可以参考:LTE CRS 时频资源 . 一个R...
2018-02-04 18:12:49 8991
原创 VIM substitute 捕获组
是一个捕获组,匹配 "XL_NRRC_" 后面的任意字符, 这些字符以.c结束;包围的正则表达式部分,它可以捕获匹配的文本以便在替换模板中使用。在vim中输入如下命令:::%s/XL_NRRRC_//g。在Vim中,可以使用捕获组进行替换操作。,用于引用之前定义的第n个捕获组。其中n为数字1–9)2. \1 由于指代捕获组所指代的字符,(
2024-08-08 14:31:57 375
原创 Makefile: 解决.c文件依赖.h文件的问题
Automatic Prerequisites (GNU make)自动生成依赖 - 廖雪峰的官方网站 (liaoxuefeng.com)makefile管理编译工程 自动生成.h头文件依赖_makefile文件依赖库可以快速找到吗-CSDN博客
2024-07-19 14:00:30 208
原创 一个不完全编译导致的奇怪问题
分析到这里,你应该明白问题所在了吧,就是a.h修改后,a.c没有重新编译生成a.o, a.out可执行文件link的仍然是初始代码的a.o.gdb 调试,发现a_t结构体的大小再main.c 和 a.c中的size 不一致,一个是12bytes, 一个是8bytes.编译运行,生成a.o, a.out, 运行a.out 输出: 1-2。输入如下:1-2-0,是不是感觉很奇怪, 我们期望的是1-2-3。删除a.o, 重新编译,问题解决。
2024-07-12 17:58:57 195
原创 WSL时间不同步的解决方法
确保你的 Windows 操作系统上的系统时间是正确的。在任务栏中右键点击时间,选择 "调整日期/时间",然后确保你的时区和时间是正确的。这将把 WSL 版本设置为 2,它支持 Windows 主机上的自动时间同步功能。可以在 Windows 上启用 WSL 自动同步时间的功能。为你正在使用的发行版的名称,例如 "Ubuntu-20.04"。有时候,时钟设置可能会导致问题。在 WSL 中,你可以通过编辑。这会启用 WSL 自动同步时间的功能。保存并关闭文件,然后重启 WSL。
2023-12-28 10:30:21 2508 2
原创 docker:保存容器为镜像文件
root@localhost:/var/lib/docker# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES81baec32cad4 fbubuntu:20.04 "/bin/bash" 4 days ago Up 46 hours root_fbubuntu_lsdk210
2023-12-27 17:59:44 1021
原创 c语言link
a.o 依赖于libmm.a, 也就是说a.o 调用了libmm.a中的函数,今天在编码时,发现用第2种方式,链接时会报错,提示符号A没有定义, 但是符号 A 确定在libmmm.a中有定义。尝试第1种方式,编译成功。中找不到的符号的情况下,再链接。当链接时存在依赖关系时,将。中的符号时,已经知道去。
2023-12-22 21:02:38 225
原创 linux下,thread的call stack参考
当一个process接受到SIGINT信号时,怎么打印这个process下所有thread的call stack
2022-09-22 16:23:18 449 2
转载 list_for_each_safe
list_for_each_safeBidirect-list list_for_each_safe().https://biscuitos.github.io/blog/LIST_list_for_each_safe/
2022-02-22 09:59:32 1395
原创 ELF Analysis
#include <stdio.h> #include <stdlib.h>int g_uninit; // .bssint g_init = 0x12; // .datastatic int g_sta_var = 0x34; // .dataconst int c = 0x34; // .rodatachar *s = "zeku"; /* s: .data ".
2021-08-02 16:00:58 224
原创 怎么编写段错误(Segmentation fault)的程序
On Unix-like operating systems, a process that accesses invalid memory receives the SIGSEGV signal. On Microsoft Windows, a process that accesses invalid memory receives the STATUS_ACCESS_VIOLATION exception.1.访问0地址#include <stdio.h>int mai.
2021-07-31 09:47:26 624
原创 C运算符优先级笔记
1.指针数组int *p[5];[] 大于 *2. 强制类型() 与 成员选择(./->)#include <stdlib.h>typedef struct{ int data; int time;} data_t;int main(){ data_t *p = (data_t *)malloc(sizeof(data_t)); int t = (data_t *)p->time; /*focus: -> ...
2021-07-27 12:09:23 719
原创 C 变量的作用域
下面的程序输出什么?思考一下#include <stdio.h> // Driver Codeint main(){ { int x = 10, y = 20; { // The outer block contains // declaration of x and // y, so following statement // is valid
2021-07-21 18:06:02 207
原创 堆分析:heap profiler tool: massif
How to use:1. valgrind --tool=massif progprog运行完后,输出:massif.out.<pid>//<pid>:process ID2. ms_print massif.out.12345Ms_print将生成显示(prog)程序执行期间内存消耗的图表,详细说明有关方案中各点的负责分配地点的信息,包括峰值点内存分配。...
2021-07-15 17:47:18 534
原创 C面向对象之透明指针的运用
不透明指针(opaque pointer)可以用来在C中实现封装。什么是不透明指针(opaque pointer)从字面意思来看,“不透明”意味着看不到内部,因此“不透明指针”即看不到内部定义的指针。这样说有些抽象,我们来看个例子:#include <stdio.h>typedef void *opque_data;typedef struct AAA *opque_stru;int main(){ opque_data data = 0; opque_s
2021-07-12 09:41:15 776
原创 malloc(0)-malloc 0 字节
C17中有如下描述:7.22.3 Memory management functions1 The order and contiguity of storage allocated by successive calls to the aligned_alloc, calloc,malloc, and realloc functions is unspecified. The pointer returned if the allocation succeeds issuitably align
2021-07-08 14:44:09 492
原创 memset初始化内存
在suse 9,运行man memset 查看memset的解释如下:“NAME memset - fill memory with a constant byteSYNOPSIS #include void *memset(void *s, int c, size_t n);DESCRIPTION The
2021-07-08 14:08:59 445
原创 二维指针操作链表
二维指针操作链表#include <stdio.h>#include <stdlib.h>typedef struct Node { struct Node *next; int data;} node;void initList(node **head, unsigned int size){ node **cur = head; for (int i=0; i<size; i++) { *cur = (node *)malloc(sizeo
2021-06-27 17:34:16 485
原创 连续地址数据(数组或者malloc的内存)作为函数参数
If you want to pass a single-dimension array as an argument in a function, you would have to declare a formal parameter in one of following three ways and all three declaration methods produce similar results because each tells the compiler that an integer
2021-06-27 17:33:06 405
原创 双重指针作为函数参数的妙用
指针加加#include <stdio.h>#include <stdlib.h>#include <string.h>void setDataCond(int *p, unsigned int condi){ if (condi % 2) { *p = condi * 10; p++; }}void setDataCond_1(int **pp, unsigned int condi){ if (condi % 2) { *
2021-06-27 11:40:54 2054
原创 gprof 性能优化工具
gprof用于分析函数调用耗时,可用之抓出最耗时的函数,以便优化程序。gcc链接时也一定要加-pg参数,以使程序运行结束后生成gmon.out文件,供gprof分析。gprof默认不支持多线程程序,默认不支持共享库程序。gcc -pg 编译程序 运行程序,程序退出时生成 gmon.out gprof ./prog gmon.out -b 查看输出要想产生gmon.out文件,必须在编译和链接时,都加上-pg -g选项。...
2021-05-25 11:23:48 697
转载 perf + 火焰图分析程序性能
From:https://www.cnblogs.com/happyliu/p/6142929.html1、perf命令简要介绍性能调优时,我们通常需要分析查找到程序百分比高的热点代码片段,这便需要使用 perf record 记录单个函数级别的统计信息,并使用 perf report 来显示统计结果;perf recordperf report举例:sudo perf record -e cpu-clock -g -p 2548-g 选项是告诉perf record额外记录函.
2021-05-25 11:16:47 790
原创 gdb高级调试技巧
1. 反向调试gdb支持程序反向执行。record让程序开始记录反向调试所必要的信息rn :reverse nextrc: reverse continue ,Continue program being debugged but runit in reverserecord stop:停止记录
2021-04-30 10:56:09 1501
原创 malloc为什么会报错:memory corruption
最近遇到一个问题,很有意思,在此记录下,以备后续参考。程序运行异常,报错:malloc: memory corruption.用gdb调试程序,bt如下,程序在申请344 bytes内存时失败。疑问:344bytes内存并不大,为何会失败呢?进一步,打开AddressSanitizer,重选编译并运行程序,AddressSanitizer报错如下,报错内容分3部分贴出如下(信息安全,隐藏掉部分堆栈信息):1.重点:红色字体:heap-buffer-overflow on a...
2021-04-18 11:47:00 7103
原创 gcc 编译选项
下载gcc文档,第三章有详细的build options的介绍。最近我用到2个关键的option来定位问题,简单介绍一下:1. -E:只是进行预编译,不会编译和link。用于检查宏在代码中的展开是否符合预期;2.--verbose:开启verbose mode,用于输出编译整个过程中的详细信息,可帮助查看build的详细信息。...
2021-04-18 10:00:00 409
原创 Git 简介1-常用术语
常用术语1. originorigin是对项目最初克隆(clone)的远程仓库的缩写。更准确地说,origin 是用来代替原始(original)远程仓库的URL, 从而使在git 命令中使用原始仓库更加容易。2. mastermaster 是分支的命名约定。从远程服务器克隆后,生成的本地存储库只有一个本地分支:即所谓的“主”分支。这意味着“master”可以被视为本地存储库的“默认”分支.3. HEAD在使用Git时,一次只能check out出一个分支, 这个checko
2020-12-06 10:17:15 442
原创 GDB调试技巧
1. GDB 调试程序1.Run a program without any argument. gdb program2. Run a program with arguments gdb --args program arg1 arg2 ... argN or gdb program (gdb) r arg1 arg2 ... argN3. start with both an executable program and a c...
2020-11-20 15:28:23 1180
原创 LTE PUCCH F2 TX/RX汇总
TX端的公式如下:1.编码、加扰、调制的过程暂不介绍,主要介绍下上图中乘以r_uv的过程,公式如下:: 是调制后的复数,n=0,1...9下面介绍, 参考36.211-5.5.1中r_u,v的定义: F2中=0, 所以上式简化为:右边有2部分组成:和1.:变化在于F2的,参考36.211 - 5.4.2 ,,假设:...
2020-05-05 22:08:22 1070
翻译 MMSE(Minimum Mean Square Error)
MMSE是一种最小化接收数据的MSE(均方误差)的模型。关于这句话,你的脑海里就会出现很多问题:什么是均方误差?“最小化MSE”的物理意义是什么?让我们从一个我们现在非常熟悉的信道模型开始.MMSE作为一种均衡器,是一种后处理算法,它帮助我们找出接收到的数据与原始数据(传输数据)尽可能接近的数据。简而言之,在MMSE中最重要的步骤是在下面的例子中找到一个矩阵G。如果我们假设没有...
2020-04-21 22:20:04 11892 7
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人