自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 rtthread

当Thread1中遇到高优先级的线程时,Thread会先被挂起,rt_thread_delay()延时一定时间,每延时一个tick,执行一次判断,是否超时,如果超时,则调用rt_timer_init()中的rt_thread_timeout().在timer_out 中把自己唤醒,然后重新放入链表ReadyList的最后。

2024-03-30 20:19:39 246

原创 imx6ull移植rtthread操作系统

1.进入:E:\rtthread\rt-smart-20201125\rt-smart\kernel\bsp\imx6ull2.打开menuconfig,修改PV_OFFSET1.进入:E:\rtthread\rt-smart-20201125\rt-smart\kernel\bsp\imx6ull\drivers2.进入board.c,修改即可。

2024-03-30 14:09:56 430

原创 正点原子精英版TFTLCD代码移植

(1)将lcd.c和lcd.h加入到HEADWARE文件中。(3)在FWLib中添加stm32f10x_fsmc.c。(2)将lcd.c加入到环境中。选择lcd.c即可。

2024-03-15 21:56:03 377

原创 5G网络频谱划分与应用

频率越大,波长越短。补充:微波频段:300MHZ~3000GHZ。

2024-02-28 18:42:54 854

原创 网络架构与组网部署——补充

承载:MCG(主小区组):与主节点相关的一些小区构成的一个组,SCG(辅小区组):由辅节点相关的小区构成的一个组。两者都可以向UE终端发送RRC消息,主节点可以直接发,但是辅节点需要先于UE终端之间建立SRB3无线承载后才能发送RRC消息,并且发送的消息仅限于不需要主节点确认的内容,比如涉及到终端能力相关的需要由主节点去发。Option5:5G核心网+ng-eNB 注:ng-eNB是4G增强型基站,可以理解为相当于5G,可以与5G核心网交互。eNB和en-gNB为4G基站,gNB和ng-eNB为5G基站。

2024-02-28 13:55:03 1067

原创 SA信令流程

(3)UE能力询问(UE Capability Enquiry)分为”UE能力询问(UE Capability Enquiry)“方向gNB到UE 和 ”UE能力完成获取(UE Capability Complete)“方向UE到gNB。(3)RC重配置(RRC Reconfiguration)分为”RC重配置(RRC Reconfiguration)“方向gNB到UE 和 ”RC重配置完成(RRC Reconfiguration Complete)“方向UE到gNB。

2024-02-24 14:59:13 1447

原创 5G——物理层仿真

此处没有频点的值,但是有PointA的值,为2500mhz左右,所以频点差不多应该也在附近,所以选择0~3000的GSCN公式,GSCN = 3*N+(M-3)/2,算出结果得6321。(6)由前置条件可知,特殊时隙四元组为{*,9,*,2},我们只需要看第二个和第四个,它们分别是下行符号和上行符号。前置码,2和8,一个SSB有4个,所以SSB的符号位置为“2,3,4,5”和“8,9,10,11”。(3)由前置条件可知,子载波间隔为30kmz,所以μ = 1,所以一个子帧有2个时隙。

2024-02-20 12:21:51 2471

原创 5G——小区搜索流程

小区搜索目标:读取到SIB1.小区搜索流程概述:SIB1在PDSCH信道承载,承载SIB1的信道在哪个位置由PDCCH告诉,而PDCCH的基本信息由MIB告诉,MIB信息由广播信道PBCH广播出去,物理信道解调需要解调参考信号DMRS,DMRS信号与PCI有关联,PCI=3*SSS+PSS。

2024-02-18 00:04:12 1939

原创 面向对象的驱动程序

【代码】面向对象的驱动程序。

2023-10-31 23:15:14 167

原创 IMX6ULL——GPIO

(1)GPIO——读1.设置 CCM_CCGRx 寄存器中某位使能对应的 GPIO 模块 // 默认是使能 的2.设置 IOMUX 来选择引脚用于 GPIO3.设置 GPIOx_GDIR 中某位为 0,把该引脚设置为输入功能4.读 GPIOx_DR 或 GPIOx_PSR 得到某位的值(读 GPIOx_DR 返回的是 GPIOx_PSR 的值)(2)GPIO——写1.设置 CCM_CCGRx 寄存器中某位使能对应的 GPIO 模块 // 默认是使能 的。

2023-10-31 21:32:29 755

原创 IMX6ULL开发——第一个驱动程序

从上面可知我们将设备树(dtb),内核(zImage)和模块(module)都放到了~/nfs_rootfs/下。(3)安装内核和模块到开发板上(即更新了内核和设备树)(3)当板子使用新内核时,板子上对应的驱动也要换成新编译出的。(2)编译驱动时用的内核、开发板上运行到内核,要一致。(2)编译安装内核模块。(5)同步一下(将内存里的内容强制的刷到flash里面去)一般的步骤:(1)编译内核(内核,设备树,驱动)(2)配置(确定内核是给arm还x86编译的)(4)通过挂载,将编译后的驱动程序传到板子上。

2023-10-22 20:07:55 225

原创 IMX6ULL板开发——第一个应用程序

192.168.5.11:/home/book/nfs_rootfs是源码的目录(192.168.5.11是地址:使用ifconfig可以看到);/mnt是在板子上要放的目录。解析:我们在Ubuntu制作这个应用程序的时候,用的是gcc来编译,但是如果是要个arm板来制作应用程序时,我们应该用arm板的工具链——“arm-buildroot-linux-gnueabihf-”将板子上某个目录挂载在ubuntu的含有源码的目录,这样就可以在板子上获得源码了。方法:在板子端上使用下面命令(我自己的电脑为例)

2023-10-22 17:52:08 186

原创 配置文件config

config配置文件不是吃白干饭的,它不只是用来告诉工作人员哪些文件里有哪些功能,这些功能依赖哪些。它也是用来被应用程序或框架解析和使用,以实现相应的功能和行为。所以修改了源文件一定要修改配置文件。

2023-09-25 08:46:55 286

原创 allstarsH------config

最后,一些部分定义了不同算法的选择,如、和等。这些算法可能用于不同的任务,如建筑物检测、道路检测、人员聚类等。

2023-09-21 19:43:11 61

原创 关于gradle.build

构建工具在何处查找项目所需的外部依赖库。仓库是一个存储和分发依赖库的地方,它可以是远程的(如 Maven 中央仓库)或本地的(位于你的计算机上)。当构建工具需要下载依赖库时,它会根据仓库配置去获取。这里的。

2023-09-21 19:24:55 225

原创 如何将java文件压缩成jar文件

如果您是该JAR文件的合法所有者或者拥有授权,您可以使用以下步骤修改JAR文件:将JAR文件重命名为ZIP文件,因为JAR文件实际上是一种特殊的ZIP文件格式。解压缩ZIP文件,将其中的内容提取出来。修改、替换或添加需要更改的文件。将修改后的文件重新压缩为ZIP文件。将ZIP文件重命名为JAR文件。请注意,在修改JAR文件时一定要小心,并确保您具备合法的权利和权限。修改他人的软件或文件可能涉及侵权行为,同时可能违反软件许可协议和法律规定。

2023-09-20 18:04:15 1015

原创 Linux18.04下载并配置Java17和删除任意Java

将java文件转移到/usr/local/java中。

2023-09-15 17:18:29 272

原创 STM32片上资源——硬件I2C

(1)STM32内部集成了硬件I2C收发电路,可以由硬件等功能,减轻CPU的负担。(2)支持多主机模式:1.固定多主机:有固定的主机。2.可多变主机:没有固定的主机,任意从机可跳出来当主机。(3)支持7位/10位地址模式。(4)支持不同的通讯速度,标准速度(高达100KHZ),快速(高达400KHZ).(5)支持DMA(可提高效率)(6)兼容SMBus协议(7)STM32F103C8T6硬件I2C资源:I2C1,I2C2硬件I2C优势:执行效率高,可以节省软件资源;

2023-09-09 23:10:13 443

原创 STM32片上资源——软件I2C

(1)I2C是由Phllips公司开发的一种用于数据总线。(2)两根通信线:SCL(serial clock) ,SDA(serial data)(3)同步半双工(4)带数据应答(5)支持总线挂载多设备(一主多从,多主多从)

2023-09-09 22:36:18 159

原创 STM32片上资源:USART

通用 同步/异步 收/发 器(2)USART是STM32内部集成的硬件外设,可根据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去,也可自动接收RX引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里。USART电路功能(3)自带波特率发生器;最高达4.5Mbits/s。(4)可配置数据位长度(8/9),停止位长度(0.5/1/1.5/2)(5)可选校验位(无校验奇校验偶校验。

2023-09-09 15:02:15 223

原创 STM32片上资源:DMA

(1)开关控制:DMA_Cmd()必须使能。(2)传输计数值必须大于零。(2)触发源,必须有触发信号,硬件触发或软件触发。

2023-09-08 17:16:46 130

原创 STM32片上资源:TIM功能实现之编码器接口

(1)ADC是英文Analog—Digital Convener英文简称,意为模拟—数字转换器。(2)(3)12为逐次逼近型ADC,1us转化时间。(4)输入电压范围:0~3.3v,转化结果范围:0~4095。(5)18个输入通道,可测量16个外部和2个内部信号源。(内部温度传感器和内部参考电压)(6)规则组和注入组两个转化单元。(7)模拟看门狗自动检测输入电压范围。(模拟看门狗课检测指定通道,当AD值高于或低于阈值时,看门狗会申请中断)

2023-09-07 20:35:30 211

原创 STM32片上资源:TIM功能实现之编码器接口

(1)Encoder Interface 编码器接口(2)。(3)每个高级定时器和通用定时器都拥有一个编码器接口。(4)两个输入引脚借用了输入捕获通道1和通道2。。正交编码器用于接收正交信号。2.1 正交信号的好处1.精度更高(因为AB相都可计次,相当于计数频率提高了一倍)。2.可抗噪声。

2023-09-07 13:49:03 136

原创 STM32片上资源:TIM功能实现之输入捕获

(1)IC是Input Capture的英文简称,名为输入捕获。(2)输入捕获模式下,当通道输入引脚出现,指定电平跳变时,当CNT的值被锁存到CCR中,可用于测量PWM波形的频率,占空比,脉冲间隔,电平持续时间等参数。(3)每个高级定时器和通用定时器都拥有4给输入捕获通道。(4)可配置PWMI模式,同时测量频率和占空比。(5)可配合主从触发模式,实现硬件全自动测量。

2023-09-06 17:12:42 320

原创 STM32片上资源:TIM功能实现之输出比较

(1)PWM(Pulse Width Modulation)脉冲宽度调制。(2)在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效的获得所需要的模拟参数,常应用于电机控速等领域。(3)PWM参数:频率f = 1 / Ts 占空比 = Ton / Ts 分辨率 = 占空比变化步距(占空比变化的细腻程度)注:a.Ts为一个周期;Ton为高电平期间;Toff为低电平期间。b.PWM只用于惯性系统中,如LED呼吸灯,舵机驱动,直流电机的驱动。

2023-09-06 16:00:52 159

原创 STM32片上资源:TIM功能实现之定时中断

(1)先时钟使能。(2)内外时钟源选择。(3)配置时基单元。(4)定时器中断配置。(5)配置NVIC。(5)使能定时器外设。

2023-09-06 14:34:02 136

原创 STM32片上资源:了解TIM基本结构和功能

(1)定时中断(2)内外时钟源选择:内部时钟:RCC内部时钟。外部时钟:ETR外部时钟,ITRx其他定时器,TIx捕获通道。(3)输出比较:用以输出PWM信号或脉冲信号。(4)输入捕获:(由TIx捕获通道)作用:读取输入信号频率;读取PWM的占空比。(5)编码器接口:相当于一个有方向选择的外部时钟。(注:用于接收增量(正交)编码器信号)(6)主从触发模式。注:功能实现部分较长,想要了解看后面有关博客。

2023-09-06 12:46:07 981

原创 STM32片上资源:EXTI

(1)EXTI(Extern Interupt)外部中断(2)EXTI可监测指定GPIO口的电平信号,当其指定GPIO口产生电平变化时,EXTI立即想NVIC发出中断申请,经过NVIC裁决后即可中断CPU的主程序,使CPU执行EXTI对应的中断程序。(3)支持的触发方式:1.上升沿 0----->12.下降沿 1------>03.双边沿 0---->1 或 1----->04软件触发。

2023-09-05 21:39:49 75

原创 STM32片上资源:GPIO

(1)GPIO通用输入输出口(2)可配置8种输入输出模式,四种输出,四种输入。(3)引脚电平:0V~3V3,部分引脚可容忍5V.(4)(5)

2023-09-04 21:33:02 104 2

原创 STM32简介

2:JTAG:是一种多线调试接口,包括四个信号线(JTCK,JTMS,JTDI,JTDO),除了具有SWD接口功能外,JTCK还具有更多的调试功能,如边界扫描,芯片级调试等,要使用JTAG接口进行调试,需要相应的JTAG调试工具和软件。解析:电源开始通过给电容充电,电容开始时相当于短路,所以此时NRST相当于接在了GND上为低电平,当电容被充满时,电容相当于断路,此时NRST相当于接在3V3上为高电平,当K1按下时,NRST通过K1接向GND为低电平,产生复位信号。(3)NRST用于复位,低电平复位。

2023-09-04 20:39:30 502 1

原创 串口应用程序编程

UART:通用异步收发传输器,简称串口。作用1:调试u-boot,内核,应用程序时,主要使用串口。。比如GPS,蓝牙模块等串口结构简单,只有三个引脚(1)TXD (2)RXD (3)GNDTXD引脚用于发送数据,RXD引脚用于接收数据。注:串口是TTL电平。

2023-09-02 09:31:01 151 1

原创 多线程编程

在编写代码时,是否会遇到以下的场景会感觉到难以下手?要做 2 件事,一件需要阻塞等待,另一件需要实时进行。例如播放器:一边 在屏幕上播放视频,一边在等待用户的按键操作。如果使用单线程的话,程序必 须一会查询有无按键,一会播放视频。查询按键太久,就会导致视频播放卡顿;视频播放太久,就无法及时响应用户的操作。并且查询按键和播放视频的代码混 杂在一起,代码丑陋。如果使用多线程,线程 1 单独处理按键,线程 2 单独处理播放,可以完美解 决上述问题。

2023-09-01 18:03:11 54 1

原创 初步了解网络编程

何为套接字,何为文件描述符所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象(有点像设备节点的作用,我也不清楚)。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口。在Linux系统中,

2023-09-01 16:49:35 61 1

原创 输入系统应用编程

⚫ 先来了解什么是输入设备?常见的输入设备有键盘、鼠标、遥控杆、书写板、触摸屏等等,用户通过这些输入设备与 Linux 系统进行数据交换。⚫ 什么是输入系统?输入设备种类繁多,能否统一它们的接口?既在驱动层面统一,也在应用程序层面统一?可以的。Linux 系统为了统一管理这些输入设备,实现了一套能兼容所有输入设备的框架:输入系统。驱动开发人员基于这套框架开发出程序,应用开发人员就可以使用统一的 API 去使用设备。(API应用编程接口)

2023-08-31 22:11:44 61

原创 初步了解文件IO

在Linux系统中,一切都是"文件":普通文件,确定程序,网络通信等,所有的操作,都是通过”文件IO“来操作的,所有必要掌握文件操作的常用接口。Linux 的文件既可以是真实保存到存储介质的文件也可以 是自身内核提供的虚拟文件,还可以是设备节点。如何知道这些函数的用法?Linux中有3大帮助方法:help , man , infohelp只能用于查看某个命令的用法。而man手册既可以查看命令用法,也可以查看函数用法。info手册比man手册更全面,但man使用起来更容易。

2023-08-31 17:29:07 31

原创 Makefile

1.如果使用命令:解释:“ *.o ”表示所有的.o文件。" test "代表test文件。2.如果使用Makefile%.o:%.cclean:调用“ make clean”执行“ rm *.o test ”清除所有文件注:(1)通过“ make clean ”命令可以猜到,make后面带目标名,也可以不带。(2)如果不带,它就会去生成第一个规则里面的第一个目标。总结:使用Makefilemake [目标]若无目标,默认第一个目标。4.3.2 假想目标出现的原因。

2023-08-31 15:47:30 44

原创 GCC 编译器的使用

在 Linux 系统上一般表现为 ELF 目标文件(OBJ 文件),用到的工具为 as。x86 有 自己的 as 命令,ARM 版也有自己的 as 命令,也可能是 xxxx-as(比如 arm-linux-as)。“反汇编”是指将机器代码转换为汇编代码,这在调试程序时常常用到。

2023-08-31 09:30:41 560

原创 Linux驱动实践:带你一步步理解驱动编译

Linux内核非常庞大,包含很多组件。我们如何把需要的部分包含在内核中?两种办法:1)把所有需要的功能都编译进内核中。会导致2个问题:生成的内核会非常大;为现有内核添加、删除功能,将不得不重新编译。2)不包含所有功能,需要的时候,动态地加载代码到内核。这种机制称为模块(Module)。模块本身不被编译入内核映像,从而控制内核的大小。模块一旦被加载,就和内核中其他部分完全一样。

2023-08-30 16:02:53 430

原创 windows编辑好的代码如何传到ubuntu上?在ubuntu上编译好的代码如何传给开发板?开发板接收到程序到底如何运行它呢?

NFS(网络文件系统),是net file system的英文简称,其整个架构为 Client-Server 架构,客户端和服务端通过 RPC 协议进行通信,RPC 协议可以简单的理解为一个基于 TCP 的应用层协议,它简化命令和数据的传输。NFS 最大的特点是将服务端的文件系统目录树映射到客户端,而在客户端访问该 目录树与访问本地文件系统没有任何差别,客户端并不知道这个文件系统目录树是本地的还是远在另外一台服务器。

2023-08-29 16:40:56 580 1

原创 当windows,ubuntu,开发板三方可以网络通信后,如何实现嵌入式开发“编辑,编译,运行”这三步?

Source Insight 是 Source Dynamics 公司出品的源代码编辑器。Source Insight 提 供语法突出显示,代码导航和可自定义的键盘快捷键。它不仅仅是一个编辑器,而是一个理解大型源代码库的工具,因此被称为“程序编辑器和分析器”。它灵活轻便,提供有用的功能,如关系,上下文和符号窗口。它在建源码工程时,构建了符号信息的内部数据库,所以还可以显示引用树,类继承图和调用树。它的最大好处是加快了对不熟悉项目的代码理解。简单来说:就来用来编写代码,阅读源码的作用。

2023-08-29 14:33:23 133 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除