Uboot引导kernel - 2- uboot/kernel需要放在DDR什么位置的问题 is a project mainly written in , based on the .uboot启动Linux内核过程分为4大步骤: 问题2: uboot阶段DDR的分区的问题 上述步骤2和步骤4中,有将uboot/kernel拷贝纸DDR的步骤,具体要拷贝到DDR的什么位置呢? 分清楚这两个概念: 链接地址:链接时指定的地址(指定方式为:Makefile中用-Ttext,或者链接脚本) 运行地址:程序实际运行...
Uboot引导kernel - 1 - Flash的分区 is a project mainly written in , based on the .uboot启动Linux内核过程分为4大步骤: 问题1:Flash的分区相关问题 在 上述步骤1/2/4 中都提到了从启动介质(iNand/SD)中读取uboot/kernel到SRAM/DDR中,那么具体从启动介质的什么位置分别读取呢? 上述步骤1中,iROM的code是SoC出厂内置的,因此这个位置要参考SoC的数据手...
Slub object 内存布局 is a project mainly written in , based on the .我在 https://blog.csdn.net/wowricky/article/details/83218126 介绍了一种内存池,它的实现类似于linux 中打开slub_debug (1. make menuconfig: Kenel hacking -> Memory Debugging, 2. comand line中传入...
计算TD-LTE DL 峰值速率的工具和相关参数 is a project mainly written in , based on the .前一段时间测试DT 基站,需要配置TDD LTE cell 的UDC、TM模式来验证不同组合下的下行峰值速率,趁此机会我用excel写了一个计算下行峰值速率的工具。工具上传至我的github: https://github.com/greenricky/tdlte_dl_rate 计算峰值速率的常用办法是参考36.213 表7.1.7...
Uboot引导kernel - 3 -uboot给内核传参详解 is a project mainly written in , based on the .uboot中执行theKernel函数后,kernel正式启动。如下函数,我们发现有3个参数。 1. 参数 0; 2. 参数machid; 如下code 中获取machid, gd是个全局变量. 2.1 bi_arch_number是board_info中的一个元素,含义是:开发板的机器码。所谓机器码就是uboot给这个开发板定...
LFSR 和 m序列 is a project mainly written in , based on the .翻译自:sharetechnote: LFSR LFSR Linear Feedback Shift Register - 线性反馈移位寄存器 LFSR 是一种移位寄存器电路,其中两个或多个中间步骤的输出线性组合并反馈到输入值,这就是为什么它被称为线性反馈移位寄存器的原因。 该电路具有以下特点: 如果初始状态相同,则最终会得到...
3GPP组织和协议概述 is a project mainly written in , based on the .3GPP组织概述 1. TSG/WG 3GPP是以工作组开展工作的,目前有3个大的技术规范组:RAN, SA, CT, 这一级别的工作组英语写为 TSG (Technical Specification Group)。每个TSG下面又分了很多工作组(WG: work group). 详见下表: https://www.3gpp.o...
NR:UE初始搜网流程 is a project mainly written in , based on the .UE的初始搜网流程,PSS->SSS->PBCH->RMSI.我画了一个简单的流程图如下,里面标注了每个环节的重点。 UE的初始搜网流程: 分为SSB同步(包括MIB读取)和RMSI的读取。 1. SSB SSB包括: PSS,SSS,PBCH. UE 在GSCN频点上,搜索SSB. SSB,在时域上占用0~3,共4个symb...
Gold Code,Gold Sequence is a project mainly written in , based on the .Gold Code Gold Code是以Robert Gold的名字命名的。它是一组特殊的二进制随机(伪随机)序列,其中成员序列之间的相关性很小。由于这种特性(较小的相关性),它被广泛地用作各种无线通信系统的扰码。 我们可以非常简单地利用 m序列 来生成Gold Code: 选择两个m序列,且这两个序列的移位寄存器的数量相同,然...
LTE PUCCH Format1 is a project mainly written in , based on the .PUCCH 格式 1/1a/1b 是向eNodeB传递1或2或4位数据。 这个过程相当复杂,我们用如下3个章节来描述: PUCCH Format 1,1a,1b 所在RB位置PUCCH F1信号的生成PUCCH 多UE 复用 PUCCH Format 1,1a,1b 所在RB位置 LTE中有很多课题(尤其是物理层),如果不仔细阅...
UE capability与 双连接相关的参数。 is a project mainly written in , based on the .UE capability 分为 Network capability 和 Radio capability, 即网络能力和无线能力。 Netowrk Capability UE 在做Attach Request 时会主动上报自己的网络能力;Radio Capability 网络侧下发Enquiry Capability来请求UE无...
LTE - PUCCH Format2 is a project mainly written in , based on the .LTE中有很多课题(尤其是物理层),如果不仔细阅读规范中给出的每个参数和方程,是无法解释清楚的。物理资源分配就是其中之一。 PUCCH格式2/2a/2b的物理资源分配由以下过程确定。看到这些公式千万不要惊慌,方程本身就是高中数学的一部分,只要我们的耐心和毅力,就能够读懂。 首先我们来对PUCCH有个大致的了解, 然后尝试理解下列数学公...
MMSE(Minimum Mean Square Error) is a project mainly written in , based on the .MMSE是一种最小化接收数据的MSE(均方误差)的模型。关于这句话,你的脑海里就会出现很多问题: 什么是均方误差? “最小化MSE”的物理意义是什么? 让我们从一个我们现在非常熟悉的信道模型开始. MMSE作为一种均衡器,是一种后处理算法,它帮助我们找出接收到的数据与原始数据(传输数据)尽可能接近的数据。简而言之,在MMS...
物理层UL基本流程 is a project mainly written in , based on the .物理层发端的基本流程在36.211/36.212(NR:38.211/38.212)中有详细的描述,现在归纳如下。下面列出的每个步骤对于某些信道而言可能会增加其它步骤,也可能有些步骤不需要。 CRC 相关 信道编码(channel coding) LTE: NR: 加扰-Scrambling 加扰过程是data bit...
Git 简介1-常用术语 is a project mainly written in , based on the .常用术语 1. origin origin是对项目最初克隆(clone)的远程仓库的缩写。 更准确地说,origin 是用来代替原始(original)远程仓库的URL, 从而使在git 命令中使用原始仓库更加容易。 2. master master 是分支的命名约定。 从远程服务器克隆后,生成的本地存储库只有一个本地分支...
GDB调试技巧 is a project mainly written in , based on the .1. GDB 调试程序 1.Run a program without any argument. gdb program 2. Run a program with arguments gdb --args program arg1 arg2 ... argN or gdb progr...
LTE PUCCH F2 TX/RX汇总 is a project mainly written in , based on the .TX TX端的公式如下(下图来自sharetechnote): 发送端在36.212/36.211中有详细的描述,就是一系列的数学运算,过程概括如下: 编码、加扰、调制的过程暂不介绍,主要介绍下上图中乘以r_uv的过程,公式如下: : 是调制后的复数,n=0,1...9 下面介绍, 参考36.211-5.5.1中...
Malloc为什么会报错:memory corruption is a project mainly written in , based on the .最近遇到一个问题,很有意思,在此记录下,以备后续参考。 程序运行异常,报错:malloc: memory corruption. 用gdb 调试程序,bt 如下,程序在申请344 bytes内存时失败。 疑问:344bytes内存并不大,为何会失败呢? 进一步,打开AddressSanitizer,重选编译并运行程序,...
Gcc 编译选项 is a project mainly written in , based on the .下载gcc文档,第三章有详细的build options的介绍。 最近我用到2个关键的option 来定位问题,简单介绍一下: 1. -E: 只是进行预编译,不会编译和link。用于检查宏在代码中的展开是否符合预期; 2.--verbose: 开启verbose mode, 用于输出编译整个过程中的详细信息,可帮助查看build...
Perf + 火焰图分析程序性能 is a project mainly written in , based on the .From: https://www.cnblogs.com/happyliu/p/6142929.html 1、perf命令简要介绍 性能调优时,我们通常需要分析查找到程序百分比高的热点代码片段,这便需要使用 perf record 记录单个函数级别的统计信息,并使用 perf report 来显示统计结果; perf reco...