- 博客(61)
- 资源 (3)
- 收藏
- 关注
原创 vscode+clangd阅读Linux内核源码
运行上述命令后,在内核源码根目录生成了compile_commands.json文件。至此,配置已经完成。打开任意c文件,点击函数以后,就能自动跳转到其定义处。添加下面的选项参数到clangd server。[在这里插入图片描述]t。
2024-05-12 14:18:22
1123
1
原创 WSL无法通过SSH从git拉取仓库代码
在上一篇中,解决了无法从git拉取仓库到本地的问题,但是当时的办法并未完全解决这个问题,当时只能通过HTTPS协议拉取git仓库,下面介绍如何通过SSH从git拉取仓库,过程参考了这篇。
2024-01-18 00:05:48
1521
原创 WSL2 git clone命令无法克隆远程仓库
最近在往WSL2里拉取git仓库的时候,突然出现了这个问题,WSL2无法连接到git服务器,导致代码无法拉取下来,可能是因为我最近不小心修改了windows的防火墙设置,导致出现了这个问题。
2024-01-17 22:51:06
4433
原创 NR5G基础概念扫盲
随着人工智能、万物互联时代的到来,人类社会进入到一个新的阶段。新兴的科技产业对信息社会基础设施提出了更高的要求,对低时延、大带宽、高流量的需求,催生了5G技术,并推动其蓬勃发展。通信,作为人类社会的基本需求,在新的时代里,将会一如既往地起到至关重要的作用,这也意味着5G技术将会是构建新的信息产业的重要支柱。本文将对5G所使用的通信技术——NR5G,进行基本概念的扫盲,让大家一窥信息技术的基础支柱的内部构造。
2023-01-15 19:55:38
2104
原创 LTE网络PUSCH功控计算
在LTE网络PUCCH功控计算一文中,已经介绍了如何计算PUCCH发射功率,本文将继续介绍如何计算PUSCH发射功率。当UE在子帧iii只发送PUSCH但没有发送PUCCH时,那么UE在子帧iiiPPUSCH,c(i)=min{PCMAX,c(i),10log10(MPUSCH,c(i))+PO_PUSCH,c(j)+αc(j)⋅PLc+ΔTF,c。
2022-10-18 01:18:41
2978
原创 LTE网络PUCCH功控计算
在LTE网络,基站会对UE在PUCCH和PUSCH物理信道上的发射功率进行闭环功率控制,当物理信道条件较差时,基站会告诉UE提高发射功率,以便UE的发射信号在经过各种衰减和干扰后仍然能被基站接收到;当物理信道条件较好时,基站会告诉UE降低发射功率,以便UE能够节省电量。本文将简单地介绍一下LTE网络中UE是如何根据基站的控制信息调整PUCCH信道的功率,关于更多细节可以参考3GPP 36.213协议的第5章。UE在每个子帧都会对PUCCH信道发射功率计算一遍,UE的PUCCH信道发射功率计算公式如下所示。
2022-09-15 18:17:33
3012
1
原创 深入理解LTE网络的CDRX
DRX是MAC层的一项功能,由RRC层进行配置。通过控制DRX功能,可以控制UE在PDCCH上对C-RNTI、TPC-PUCCH-RNTI、TPC-PUSCH-RNTI、SPSC-RNTI等等的监测。在连接态下,如果RRC层对MAC层配置了DRX功能,那么MAC层就可以间断性地对PDCCH进行监测;否则,MAC层就必须连续地对PDCCH进行监测。在连接态下的DRX功能,就是CDRX,而空闲态下的DRX功能,就是我们所熟知的寻呼功能(paging)。..............................
2022-07-31 21:04:22
9675
1
原创 ENDC相关概念扫盲
5G网络已经开始部署有数年时间了,然而距离大规模应用仍然有一段漫长的旅程。在可预见的未来,4G网络仍将会与5G网络长期共存。在5G网络尚未完全发展成熟、4G网络仍旧使用广泛的今天, 出现了(E-UTRAN New Radio – Dual Connectivity)技术,以LTE网络为主、NR网络为辅,一方面可以完全利用当前已经发展成熟的4G网络,节约网络部署成本,另一方面也可以降低技术难度,让各大运营商可以尽快平滑过渡到5G。在技术下,所有的信令都通过LTE网络传输,而数据则既可以通过LTE网络、也可以通
2022-07-11 15:39:56
20966
原创 LTE MAC层令牌桶算法
LTE MAC层的一个重要的功能是从各个逻辑信道读取数据(MAC SDU),然后将它们封装成一个数据块(MAC transport block),再交给物理层从空口发生出去,这个过程叫packet build。每一次packet build能发送的数据块的大小由网络决定,网络会通过PDCCH指示UE在哪个子帧上可以发送多少字节的数据,可以发送的字节数就是最终能发送的数据块的大小,也叫UL grant。本文将介绍UE的MAC层分配UL grant时所采用的令牌桶算法。..................
2022-06-10 17:13:49
2021
1
原创 Ubuntu 20.04安装ROS2 Galactic
Ubuntu 20.04安装ROS2 GalacticUbuntu 20.04 apt 更换国内镜像源安装ROS2运行测试用例Ubuntu 20.04 apt 更换国内镜像源参考此博客"终端操作 - 适用于 Server & Desktop 版本"一节,更换镜像源为国内的清华镜像源。安装ROS2参考官网的步骤安装ROS2.运行测试用例打开一个终端,输入以下命令。source /opt/ros/galactic/setup.bashros2 run demo_nodes_cpp t
2022-02-08 23:53:51
1809
原创 在ROS2运行urdf_tutorial例程
文章目录前言一、安装依赖库二、下载源代码三、编译源代码四、运行urdf_tutorial功能包例程五、参考文献前言在参考ROS2的官方教程学习urdf时,运行urdf_tutorial的例程很容易会因为一些依赖的库没有安装遇到问题,这里记录一下我踩坑之后总结的过程。一、安装依赖库这里得先说一下,我的ROS2的版本(distro)是foxy。首先我们得安装urdf_tutorial里面用到的一些库,不然在运行里面的文件的时候会出问题。我们需要安装joint-state-publisher-gui,j
2022-01-12 01:08:29
2810
4
原创 Add Two Numbers
Add Two Numbers题目如下:You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the t...
2019-05-25 23:40:46
197
原创 TWO SUM
TWO SUM题目如下:Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not...
2019-05-25 21:55:50
187
原创 TMS320C6748_EMIF时钟配置
创龙TL6748开发板中,EMIFA模块使用默认的PLL0_SYSCLK3时钟,使用AISgen for D800K008工具加载C6748配置文件C6748AISgen_456M_config(Configuration files,在TL_TMS6748/images文件夹下),由图可以看到DIV3等于4,注意这里的DIV3就是实际的分频值(x),而不是写入相应PLL寄存器的值(x-1)。
2017-12-15 10:14:16
4022
4
原创 TMS320C6748_EMIF_NandFlash_访问异步地址
CS3有效,则外部存储设备基地址为0x6200 0000 (手册P24)nandflash命令锁存周期时序如图: (nandflash手册P43)nandflash地址锁存周期时序如图所示: (nandflash手册P44) ALE接EMA_A1,CLE接EMA_A2。锁存地址时,CLE为低,ALE为高,则EMA_A2为低,EMA_A1为高,对应的EMIF地
2017-12-12 23:31:05
2432
原创 TMS320C6748_RTC
1.主函数流程此程序的作用是实现RTC计时功能。运行程序后,依次设定小时、分钟、秒、日、月、年,程序会按照设定时间开始计时,并将实时时间打印出来。主函数如下:int main(void){ // 初始化串口终端 使用串口2 UARTStdioInit(); // 打印串口终端信息 UARTPuts("Tronlong RTC Applicat...
2017-12-11 20:09:54
1774
原创 双口RAM及Vivado RAM IP核的使用
目录1.双口RAM概述2.Vivado 双口RAM IP核2.1 Block Memory Generator概述2.2 真双口RAM的设置2.2.1 Basic设置2.2.2 Port设置3.双口RAM例程4.仿真4.后记5.参考文献1.双口RAM概述双口RAM(dual port RAM)在异构系统中应用广泛,通过双口RAM,不同硬件架构的芯片可......
2017-12-10 15:43:32
49344
15
转载 32个FPGA开源网站
1. OPENCORES.ORG这里提供非常多,非常好的PLD了内核,8051内核就可以在里面找到。进入后,选择project或者由http//www.opencores.org/browse.cgi/by_category进入。对于想了解这个行业动态人可以看看它的投票调查。 http://www.opencores.org/polls.cgi/list OpenCor
2017-12-08 10:53:51
24222
2
原创 TMS320C6748_NMI
目录1.主函数流程2.外设使能配置3.GPIO管脚复用配置4.DSP中断初始化5.GPIO管脚初始化6.中断服务函数1.主函数流程此程序的作用是实现不可屏蔽中断功能。NMI(NonMaskableInterrupt)——不可屏蔽中断(即CPU不能屏蔽),无论状态寄存器中IF位的状态如何,CPU收到有效的NMI必须进行响应。主函数如下:int main(vo...
2017-12-03 22:32:46
2308
原创 TMS320C6748_看门狗
目录1.主函数流程2.初始化串口终端3.定时器/计数器初始化3.1 配置定时器/计数器1为看门狗模式3.2 设置周期/64位3.3 使能看门狗定时器4.打印串口终端信息5.主循环5.1 等待输入字符5.2 复位看门狗定时器"喂狗"1.主函数流程此程序的作用是实现看门狗功能,使用定时器1。用于在程序运行过程中出现错误或陷入死循环等异常情况下复位程序...
2017-12-03 17:23:02
2355
2
原创 TMS320C6748_PWM_ECAP
1.主函数流程此程序的作用是实现eCAP(增强型捕获模块)的输入捕获功能,将ECAP2_APWM2设置为输入捕获模式,检测由EPWM1_A管脚输出的方波频率。将EPWMN0_TZ[0](ECAP2_APWM2和EPWMN0_TZ[0]引脚功能复用)和EPWM1_A短接,即可看到串口输出EPWMN0_TZ[0]脚所捕获到的EPWM1_A引脚输入的方波频率信息。主函数如下:int ...
2017-12-02 21:59:04
2143
原创 TMS320C6748_ECAP_APWM
目录1.主函数流程2.外设使能配置3.GPIO管脚复用配置4.DSP中断初始化5.PWM中断初始化6.产生波形6.1 配置ECAP2为APWM模式6.2 配置周期及占空比(比较计数器值)6.3 输出相位配置6.4 启动比较计数器7.中断服务函数7.1 禁用中断7.2 清除中断标志7.3 使能中断8.参考文献1.主函数流程...
2017-12-01 23:26:04
4616
2
原创 TMS320C6748_PWM
目录1.主函数执行流程2.外设使能配置3.GPIO管脚复用配置4.DSP中断初始化5.PWM中断初始化6.产生波形6.1 时间基准配置/时钟配置6.2 配置周期6.3 禁用输入同步信号6.4 禁用输出同步信号6.5 仿真模式行为配置6.6 配置计数比较器子模块6.6.1 加载比较器A值6.6.2 加载比较器B值6.7 功能限定配置(输出引...
2017-11-30 23:10:20
3377
原创 TMS320C6748_SPI_FLASH
目录1.主函数流程2.初始化2.1 PSC初始化2.2 UART初始化2.3 管脚复用配置2.4 DSP中断初始化2.5 SPI中断初始化2.6 SPI初始化2.6.1.2.6.2.2.6.3.2.6.4.2.6.5.2.6.6.2.6.7.2.6.8.3.读写SPI外设3.1 SPI FLASH写使能3.2 擦除SPI ...
2017-11-28 18:34:47
5427
4
原创 TMS320C6748_EDMA_SPI_FLASH
目录1.主函数流程2.外设初始化2.1串口初始化2.2 EDMA初始化2.3 SPI初始化3.请求EDMA通道4.使能4.1 使能SPI4.2 写使能4.1.设置EDMA发送的PaRAM寄存器4.2.注册EDMA发送的回调函数4.3.设置EDMA接收的PaRAM寄存器4.4.注册EDMA接收的回调函数4.5.assert对应SPI Flash...
2017-11-28 17:14:21
3530
原创 TMS320C6748_I2C
此程序实现C6748的IIC模块对IICEEPROM设备的数据读写功能,地址是0x50(高7位)。程序先写入并读出一个字节数据,然后写入并读出一页数据,接着对比写入和读出的数据,根据结果判断IICEEPROM设备读写是否成功,主函数如下:int main(void) { int i,result; unsigned char buf
2017-10-27 22:23:13
2768
3
原创 TMS320C6748_RS485
使用C6748的UART1作为收发串口,输入的ttl电平信号通过ttl转485电平转换电路转为485信号,再送到485通信设备,ttl转485电平转换电路如图: 主函数如下:int main(void) { // 外设使能配置 PSCInit(); // GPIO 管脚复用配置 GPIOBank
2017-10-26 14:19:13
1192
原创 TMS320C6748_UART_EDMA
通过EDMA来实现UART的收发,可以减轻CPU的负担。主函数如下:int main(void) { // 外设使能配置 PSCInit(); // DSP 中断初始化 InterruptInit(); // EDMA3 中断初始化 EDMA3InterruptInit();
2017-10-25 23:11:06
7789
5
原创 C语言头文件函数声明是否加extern
最近看创龙的DSP程序,忽然遇到一个C语言的语法问题,感觉非常纠结,归根结底还是以前C语言学的不扎实,所以才会卡在这种小的语法问题上。我的问题是这样的,在看UART_EDMA例程的时候,main函数调用了UARTStdioInit();函数,UARTStdioInit();在uartStdio.c文件里,然后UARTStdioInit();函数里又调用了UARTConsoleInit();函数,该
2017-10-25 09:54:34
15110
9
原创 TMS320C6748EDMA_GPIO_中断学习笔记
// 申请 EDMA3 通道 EDMA3RequestChannel(SOC_EDMA30CC_0_REGS, chType, chNum, tccNum, evtQ);这句函数中,chNum指的是所申请的通道的number,cc0和cc1各有32个DMA通道,每个通道对应一个特定的事件(event),如cc0的channel6对应GPIObank0的中断 (指南P439
2017-10-25 09:43:56
4814
1
原创 TMS320C6748_UART轮询模式
UART轮询模式比中断模式要简单得多,UART初始化代码如下:void UARTInit(void) { // 配置 UART1 参数 // 波特率 115200 数据位 8 停止位 1 无校验位 UARTConfigSetExpClk(SOC_UART_1_REGS, UART_1_FREQ, BAUD_115200, UA
2017-10-22 22:39:53
2100
原创 TMS320C6748_UART中断
UART2输入时钟为PLL1_SYSCLK2,PLL1_SYSCLK2是PLL1_SYSCLK1的2分频,PLL1_SYSCLK1的频率默认为456MHz,PLL时钟树如图: (指南P130) (指南P131)定义UART2输入时钟频率如下:// 时钟 #define SYSCLK_1_FREQ (456000000) #define SYSCLK_2_
2017-10-22 21:08:54
4327
3
原创 TMS320C6748定时器32位模式
C6748的定时器在32位模式下有两种模式选择,一种是关联模式(chained mode),另一种是非关联模式(unchained mode)。可以通过设置定时器全局寄存器(timer global control register (TGCR))的TIMMODE位来配置定时器的模式。在关联模式下,高位的32位定时器timer34被用来作为低位的32位定时器timer12的时钟预分频器
2017-10-21 22:21:15
2375
原创 TMS320C6748定时器64位模式
定时器初始化函数如下:void TimerInit(void) { // 配置 定时器 / 计数器 2 为 64 位模式 TimerConfigure(SOC_TMR_2_REGS, TMR_CFG_64BIT_CLK_INT); // 设置周期 TimerPeriodSet(SOC_T
2017-10-21 20:03:50
3510
1
原创 TMS320C6748_GPIO_KEY_TIMER_EventCombine
组合事件中断初始化EventCombineInterruptInit();函数完成组合事件中断初始化,其中 // 使能 定时器 / 计数器 中断TimerIntEnable(SOC_TMR_1_REGS,TMR_INT_TMR34_NON_CAPT_MODE);该函数使能了定时器中断。 SOC_TMR_1_REGS 为(0x01C21000),即timer1的地址,如
2017-10-21 10:14:24
2345
原创 Quatus联合modelsim仿真无法产生波形原因分析
Quatus ii联合modelsim仿真无法产生波形或波形一直为Hiz状态原因分析最近用用modelsim仿真Quatus写的testbench,遇到了波形无法产生的问题,一直卡在这里很久都没找到原因,经过一番分析和各种乱试,终于找到原因了。 在设置编译的test bench的时候,一定要把顶层模块设置为xx_vlg_tst(),就是启动test bench template wri
2017-10-03 16:20:43
14771
7
原创 AD转移一个封装库文件到另一个封装库中
AD这款PCB EDA软件有一个很大的优点就是它的库比较多,也很容易找,现在AD官方已经给我们做好了很多库了,很多时候其实我们并不需要自己去建立元件库了,自己建库,要去元件的官网下它的手册,然后对着它的尺寸图画原理图符号和PCB符号,在那算老半天引脚的相对位置,然后画來画去的,麻烦不说,一不小心出错了,那真是欲哭无泪啊。所以,能用官方的库就用它的库吧,省事省力,还放心。要下AD10及之前版本的官方
2017-09-19 22:35:29
32980
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人