- 博客(42)
- 资源 (2)
- 收藏
- 关注
原创 ZYNQ7020编译Uboot出现JTAG连接不上
使用Vitis IDE进行13章的Debug操作时,出现编译不了报错,而且无法编译的问题,最开始以为是JTAG驱动没安装上,后面在虚拟机和主机都安装上了驱动,仍然无法debug,多次尝试没有发现问题。后面发现是虚拟机设置的问题,应该把USb控制器的usb兼容性设置为3.1,原来是2.0.
2025-03-19 14:27:38
203
原创 C++ 11新特性
mysql数据库:是长期存储数据的一种容器,主要用法是C++调用其mysql提供的官方API,创建,初始化,连接,使用,关闭。多态:同一个函数作用在不同对象实现的结果不一样,主要通过虚函数viture实现,通过对虚函数重写实现。指针:本质是一个变量,用于存储另外一个变量的地址,主要用于参数传递,动态分配内存等。socket网络编程:是实现网络数据交换和通信的一种方式,主要分为服务器和客户端。5.数据交换 recv()send()3.数据交换send() recv()客户端:1.创建socket()
2025-02-12 17:09:55
356
原创 正点原子7020领航者linux开发第八章显示设备的使用(已解决)
是三个条件都会触发,所以这里的文件就解决了。开始分析问题,问题是出现在本地内核编译的Makefile中的,打开Makefile,找到会提示报错The source tree is not clean,please run 'make mrproper'的位置,可以看到他的触发条件。我按照报错的提示进行的make rmproper操作,但是再次编译还是遇到一样的问题。期间尝试了网上的很多方法,包括删除项目构建,重建项目等,都是会存在一样的问题。记录一下我在学习ZYNQ开发板遇到的一个困扰我几天的问题,
2025-01-21 09:45:41
219
原创 通信导航一体化信号设计及接收
我国于 2020 年建设完成了第三代北斗卫星导航系统,其在调制方式、电 文速率、短报文功能等都较其他导航系统有较大创新。各大导航系统间抢占轨道和 频率资源以及应用市场,出现了频率资源紧张、导航信号间相互干扰等问题。
2024-11-28 15:35:23
845
原创 随机种子的简单介绍
我们知道,随机数是通过一些复杂的数学算法得到的,那么随机种子(Random Seed)就是这些随机数的初始值。一般计算机里面产生的随机数都是伪随机数。伪随机数,也是就一个一直不变的数。通过输入随机种子,得到一个初始固定的随机数。随机种子的初始值,是一直不变的。随机种子计算随机数的计算方法:一般种子可以以当前的系统时间,这是完全随机的算法1:平方取中法。1)将种子设为X0,并mod 10000得到4位数2)将它平方得到一个8位数(不足8位时前面补0)
2024-11-19 15:03:44
149
原创 C语言串口接收GPS数据
stdio.h:包含输入输出函数,如:包含字符串处理函数,如memset。unistd.h:包含 POSIX 操作系统 API,如read和close。fcntl.h:包含文件控制相关函数,如open和fcntl。termios.h:包含串口配置和控制的结构体和常量。
2024-10-28 16:35:09
1200
原创 MakeFile常用的命令
CC:c编译器的名称,默认值为cc。cpp c预编译器的名称默认值为$(CC) -ECC = gcc回显问题,Makefile中的命令都会被打印出来。如果不想打印命令部分 可以使用@去除回显。
2024-10-09 15:02:13
1329
原创 OPenWrt编译文件解读makefile
当执行make V=99时调用得时MakeFile。那么MakeFile的作用是什么呢?1.简化程序的编译过程,尽量少做重复劳动2.组织管理源代码。
2024-09-30 16:30:45
1109
原创 卫星导航定位原理学习(三)
GNSS信号体制直接影响卫星导航系统的性能,是卫星导航系统设计的重要内容。卫星导航信号体制主要包括信号频率、信号结构、导航电文3部分。其中信号结构又包括调制波形、频率带宽、扩频码码长、码速率、码结构、信号功率等内容。导航电文设计主要设计数据内容、信道编码、数据结构、播发顺序等内容。
2024-09-27 16:59:24
1826
原创 下载安装MinGW-w64详细步骤(vscode配置c/c++)附make,和VScode终端出现中文输出乱码的解决方法
MinGW 的全称是:Minimalist GNU on Windows ,实际上是将gcc(c/c++编译器)移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。而且还可以使用一些 Windows 不具备的,Linux平台下的开发工具。选择它的原因:1. MinGW-w64 是开源软件,可以免费使用。2. MinGW-w64 由一个活跃的开源社区在持续维护,不会过时。
2024-09-27 15:20:22
2766
5
原创 OpenWrt学习(四)
可以看到,GMAC0和GMAC1连接到DDR,应该对应的是eth0和eth1,看起来GMAC0应该对应的是WAN口(CPU (eth1)) ,GMAC1对应的是LAN口(CPU (eth0)),似乎从图中可以看到P0和P4可以配置为WAN口,实现双WAN口,同时P4也可以配置为LAN(默认也是这么干的)。①当对文件进行操作的时候,比如我们修改了一个名字为abc的文件,那么同时存在/rom里面还有修改之前的abc,同时在/overlay里面修改之后的abc,所占的空间是倍增的。
2024-09-26 17:11:13
1228
原创 OpenWrt学习(三)
连接串口步骤:1.在计算机上安装USB转串口先驱动程序()可以识别就不用下载驱动这里USB转串口芯片为CH340,任意USB转串口都可以,只要主机能够有驱动识别即可,USB转串口的TX与RX和开发板是交叉线连接的,即TX连接RX, RX连接TX2.将USB串口线接入计算机的USB接口,等待驱动处理完成,在电脑->属性->设备管理器查看COM口编号CH340就是在COM4的端口上。
2024-09-26 09:49:56
1210
原创 GNSS - PPP软件 - GAMP 在VS2017下完成调试、跑通程序
【右键项目 ->配置属性 -> 调试 -> 命令参数】,将GAMP -> mannual_GAMP -> Examples下的 2017244 文件夹下的配置文件 gamp.cfg 路径信息添加进去。这里的include文件在我们的c盘是没有的,所以需要将GAMP\mannual_GAMP\GAMP_src\Windows\pthreads-w32-2-9-1-release目录拷贝到C盘。将GAMP -> mannual_GAMP -> GAMP_src -> Windows下头文件dirent.h。
2024-09-25 10:25:14
1111
原创 OpenWrt学习(二)
tail [参数] 文件[参数]:-n 行数,-n 50就是50行在 Shell 编程中,变量是用于存储数据值的名称。注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。变量名可以包含字母(大小写敏感)、数字和下划线 _,不能包含其他特殊字符。变量名不能以数字开头,但可以包含数字。不要使用Shell的关键字(例如 if、then、else、fi、for、while 等)作为变量名,以免引起混淆。习惯上,常量的变量名通常使用大写字母,例如 PI=3.14。
2024-09-24 10:17:01
1652
原创 卫星导航定位原理学习(二)
(1)时间基准:时间是最基本的物理量,是人们确认为最精准的时间尺度。(2)空间基准:该基准是为描述空间点位坐标、高程、深度等而建立的度量体系,由坐标系和坐标框架组成。
2024-09-20 15:15:27
1930
原创 卫星导航定位原理学习(一)
卫星导航定义:卫星导航定位基于无线电测距技术,将导航卫星作为位置已知的观测目标,利用接收机接收卫星无线电信号,测量出多颗卫星到用户终端之间的距离,进而通过计算获得用户位置、速度和时间信息。卫星导航定位首先需要精确测定卫星轨道,卫星轨道的测定又需要在全球或区域布设多个监测站(监测站坐标已知),用于跟踪或测量卫星至监测站之间的距离等信息,并将这些测距信息通过通信链路推送出去计算。完成卫星轨道的精确计算,同时还可获得卫星钟差、电离层延迟等信息。用户导航定位一般使用卫星播发的广播星历。
2024-09-19 16:40:17
1245
原创 OpenWrt学习(一)
OpenWrt介绍:OpenWrt就是为嵌入式设备所研发的Linux发行版本。开发者使用简单的编译就可以将一套软件编译出不同芯片的版本,烧写在自己的路由器上就拥有了一台Linux服务器。OpenWrt还支持一种称为OPKG的增强型安装技术,OPKG是OpenWrt下的一款轻量级软件包管理工具,使用命令可以将已预编译好的软件安装到系统中。OpenWrt是如何支持路由器CPU的:想要支持路由器CPU需要两方面支持。
2024-09-18 19:41:35
1039
原创 OTSU算法(最大类间差)
要使类间方差大,可以让m1和m2相差变大或者P1和P2相似或相等,及在图像中的像素点的数量相同。但是当背景与分割目标像素点相差太多时,使用去噪操作并不能有很好的效果。6.基于区域生长的算法。4.改善全局阈值分割。
2023-11-30 16:19:57
1087
原创 神经网络——非线性激活
torch官网:torch.nn — PyTorch 1.11.0 documentation非线性变换的主要目的就是给网中加入一些非线性特征,非线性越多才能训练出符合各种特征的模型。常见的非线性激活:ReLU:官网给出的例子: >>> m = nn.ReLU() >>> input = torch.randn(2) >>> output = m(input)An implementation of CReL..
2022-05-22 16:24:57
413
原创 神经网络卷积操作
官方网址:torch.nn — PyTorch 1.11.0 documentation这里看一下CONV2D 点击CONV2D ,里面有相关的介绍,以及如何使用,在左边的torch.nn.function打开看看其中TORCH.NN.FUNCTIONAL.CONV2D的相关参数是input:输入weight:权重(卷积核)bias:偏置strid:步径(卷积核下一次计算移动的步径)padding:可以通过下面代码实现import torc...
2022-05-20 21:46:07
926
原创 神经网络——最大池化的使用
最大池化的目的在于保留原特征的同时减少神经网络训练的参数,使得训练时间减少。相当于1080p的视频变为了720p网络链接torch.nn — PyTorch 1.11.0 documentation最常用的时MAXPOOL2D最常用的是下采样,其中参数:kernel_size:设置取最大值的窗口,类似于卷积层的卷积核,如果传入参数是一个int型,则生成一个正方形,边长与参数相同;若是两个int型的元组,则生成长方形。stride:步径,与卷积层不同,默认值是kernel_size...
2022-05-20 21:41:43
1081
原创 卷积层的使用
因为图像是2d的所以选择的是二维卷积常用设置的阐述torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros', device=None, dtype=None)卷积公式in_channels(int) :输入图像的通道数out_channels(int) :卷积后产生输出的...
2022-05-20 15:29:40
190
原创 神经网络的基本框架——nn.Module的使用
torch.nn 网址torch.nn — PyTorch 1.11.0 documentation其中Containers中包含了6个模块官方提供的模板import torch.nn as nnimport torch.nn.functional as Fclass Model(nn.Module): #继承nn.mudule类 def __init__(self): super().__init__() #调用模板初始化函数 sel
2022-05-19 15:56:57
790
原创 dataloader的使用
dataloader:构建可迭代的数据装载器, 我们在训练的时候,每一个for循环,每一次iteration,就是从DataLoader中获取一个batch_size大小的数据的。dataloader官网:torch.utils.data — PyTorch 1.11.0 documentation常用的参数为:dataset: Dataset类, 决定数据从哪读取以及如何读取 bathsize: 批大小 num_works: 是否多进程读取机制 shuffle: 每个epoch是否乱
2022-05-18 15:28:02
1264
原创 Torchvision的数据集使用
在pytorch官网中可以下载许多数据集这是Torchvision的数据集Datasets — Torchvision 0.12 documentation下载CIFAR10数据集,root(存储位置):存放在./dataset文件夹中,train(是否为训练集),download(是否下载),train_set=torchvision.datasets.CIFAR10(root="./dataset",train=True,download=True)test_set=torchvis
2022-05-17 14:53:53
357
原创 常用的Transforms
call的使用测试代码class Person: def __call__(self, name): print("__cell"+"hello"+name) def hello(self,name): print("hello"+name)person =Person()person("zhangsan")person.hello("lisi")输出结果ToTensor测试代码from PIL import Ima..
2022-05-15 20:51:13
337
原创 Transforms的使用
Transforms是常用的图像预处理方法,提高泛化能力。其实是一个py文件其中包含了totensor(将数据类型转换成tensor类型),resize等工具tensor数据类型(通过Transforms.totensor去看两个问题):1、Transforms在python中该如何使用2、为什么我们需要tensor数据类型直接调用Transforms中的totensor就可以了(输入参数可以按ctrl+p查看)tensor_trans=transforms.ToTensor()
2022-05-15 15:49:53
1051
原创 TensorBoard的使用
TensorBoard是TensorFlow自带的一个强大的可视化工具,也是一个Web应用程序套件。TensorBoard目前支持7种可视化,Scalars,Images,Audio,Graphs,Distributions,Histograms和Embeddings。其中可视化的主要功能如下。(1)Scalars:展示训练过程中的准确率、损失值、权重/偏置的变化情况。(2)Images:展示训练过程中记录的图像。(3)Audio:展示训练过程中记录的音频。(4)Graphs:展示模型的数据
2022-05-14 14:58:20
1600
原创 解决jupyter打开后没有显示自己新创建环境的问题
打开jupyter notebook后没有发现自己创建的虚拟环境如果你已经创建好了自己的环境,打开jupyter后想要新创建一个文件发现没有自己新创建的环境;以下操作可以帮助你打开Anaconda Prompt 命令控制行conda activate 你的环境名称进入你的环境(已激活的环境)安装ipykernel:conda install ipykernel如果不行就把conda改成pip最重要的一步是将环境写入Notebook的kernel中python -m ip
2022-05-06 16:05:47
3731
原创 目标检测算法基础知识
BBox:边缘框 一般绿色为人工标注的groud-truth,红色为预测结果xyxy:左上+右下xywh:左上+宽高Anchor:锚框人为设定不同长宽比、面积的先验框 单阶段SSD检测算法中也称Prior boxRoI:特定的感兴趣区域Region Proposal:候选区域/框RPN:Acnhor-based的两阶段提取候选框的网络IoU:评价预测框的质量,IoU越大则预测框与标注越接近(等于两个框交的面积比上两个框并的面积)mAP:衡量模型量化的指标TP是正确的预
2022-05-05 21:46:17
249
原创 YOLOv5 神经网络训练(本地训练)
在训练文件train.py中找到main的部分if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--weights', type=str, default='yolov5s.pt', help='initial weights path') parser.add_argument('--cfg', type=str, default='', help='mo.
2022-05-05 14:18:05
1934
原创 ROS 第七天 机器人感知
1、机器视觉ROS中的图像数据(二维图像)显示图像类型打开终端输入roslaunch usb_cam usb_cam-test.launch打开了摄像头 查看话题发布 rostopic list查看显示图像类型 rostopic info /usb_cam/image_raw查看消息类型中的成员变量有哪些 rosmsg show sensor_msgs/Image压缩图像工具 rqt_image_view压缩图像消息rosmsg show sens...
2022-04-24 17:59:25
729
2
原创 ROS 出现[usb_cam-2] process has died错误解决方法
当运行roslaunch robot_vision usb_cam_with_calibration.launch出现[usb_cam-2] process has died闪退的情况 那是因为你的摄像头配置文件参数不对你要使用自己的标定生成文件ost.yaml 添加到工作路径下的ros_vision文件夹中并更名为camera_calibration.yamlimage_width: 640image_height: 488camera_name: narrow_stereocamer
2022-04-23 17:07:41
5331
2
原创 ROS 第六天 机器人仿真
1、机器人URDF模型优化URDF建模存在哪些问题:模型冗长,重复内容过多;参数修改麻烦,不便于二次开发;没有参数计算的功能等。。。URDF模型的进化版本----xacro模型文件精简模型代码:创建宏定义,文件包含提供可编程接口:常量,变量,数学计算,条件语句xacro模型文件——常量定义:常量使用:数学计算:注意:所有数学运算都会转换成浮点数进行,以保证运算的精度宏定义:宏调用:文件包含:完成mbot_ba...
2022-04-21 20:57:29
963
原创 ROS 第五天 机器人
1、机器人的组成机器人是什么:自动执行工作的机器装置。机器人是如何组成的:2、机器人系统构建ARM架构开发板可参考: http://wiki.ros.org/indigo/Installation/UbuntuARM常用传感器的ROS驱动可参考:http://wiki.ros.org/Sensors机器人构建--连接摄像头打开终端 输入sudo apt-get install ros-melodic-usb-cam 安装功能包输入roslaunch...
2022-04-18 21:51:42
286
原创 ROS 第四天 ROS中的关键组件
1、Launch文件:通过XML文件实现多节点的配置和启动(可自动启动ROS Master)<launch> launch文件中的根元素采用<launch>标签定义<node>:启动节点<node pkg="package-name"type="executable-name"name="node-name"/>pkg:节点所在的功能包名称type:节点的可执行文件名称name:节点运行时的名称output:节点内部信息是否打印
2022-04-16 20:48:11
1208
1
原创 ROS 第三天 分布式通信
ROS 第三天 分布式通信ROS是一种分布式软件框架,节点指点通过松耦合的方式进行组合。如何实现分布式多机通讯(1)设置IP地址,确保底层链路的联通使用终端远程登录树莓派后输入ifconfig 获取ip地址本地打开终端也输入ifconfig查看ip地址把对方的ip地址设置到hosts文件夹里面在树莓派终端中输入 sudo vi /etc/hosts使用ping hcx-pc(本地计算机名)尝试一下是否完成了配置在本地计算机也要进行相同的操作(2)在..
2022-04-15 15:20:56
234
原创 ROS 第二天 ROS通信编程
一、话题编程话题编程流程创建发布者创建订阅者添加编译选项运行可执行程序编写例程发布话题将talker.cpp存放在str文件夹中发布者:“chatter” 发布内容:“hello world”如何实现一个发布者:1、初始化ROS节点;2、向ROS Master注册节点信息,包括发布的话题名和话题中的消息类型3、按照一定频率循环发布消息/** * 该例程将发布chatter话题,消息类型String */ #include <sstrea
2022-04-14 21:10:28
546
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人