- 博客(739)
- 资源 (101)
- 收藏
- 关注
原创 嵌入式Linux应用程序开发-1Linux快速入门
Linux是指一套免费使用和自由传播的类UNIX操作系统。1. ext2和ext3ext3是现在Linux常见的默认的文件系统,它是ext2的升级版本。从ext2转换到ext3主要有以下4个理由:可用性、数据完整性、速度、易于转化。ext3中采用了日志式的管理机制,它使文件系统具有很强的快速恢复能力,并且由于从ext2转换到ext3无须进行格式化,因此,更加推进了ext3文件系统的大大推广。2. swap文件系统该文件系统是Linux中作为交换分区使用的。
2024-08-18 04:31:48
655
原创 2.6数据报与虚电路
在虚电路网络中的每个结点上都维持一张虚电路表,它的每一项记录了一个打开的虚电路的信息,包括在接收链路和发送链路上的虚电路号、前一结点和下一结点的标识。当作为通信子网用户的端系统要发送一个报文时,在端系统中实现的高层协议先把报文拆成若干个带有序号的数据单元,并在网络层加上地址等控制信息后形成数据报分组(即网络层PDU)中间结点存储分组一段很短的时间,找到最佳的路由后,尽快转发每个分组。由于不同时刻的网络状态不一样,因此转发表的内容可能不完全相同,因此有的分组转发给交换结点C,有的分组转发给交换结点D。
2024-06-13 18:53:37
855
原创 2.6电路交换、报文交换、分组交换
分组交换限制了每次传送的数据块大小的上限,把大的数据块划分为合理的小数据块,再加上一些必要的控制信息(如源地址、目的地址和编号信息等),构成分组(Packet)。从提高整个网络的信道利用率上看,报文交换和分组交换优于电路交换,其中分组交换比报文交换的时延小,尤其适合于计算机之间的突发式的数据通信。每个小数据块都要加上源、目的地址和分组编号等信息,从而构成分组,使传送的信息量大约增大5%~10%,一定程度上降低了通信效率,增加了处理的时间,使控制复杂,时延增加。电路交换的交换设备(交换机等)及控制均较简单。
2024-06-13 18:45:15
793
原创 osg库的下载和安装
重新打开该项目,如果报LCMapStringEx错误,右键Examples osgviewerMFC进入属性,打开项目配置->c+±> 预处理->预处理器定义 添加。打开Cmake.exe,将上述下载的osg文件下的CMakeLists.txt文件拖入Cmake界面中。再次点击Configure,确认没有报error之后点击Generate,等待完成。如果存在afxwin.h错误时候,需要补充装一下mfc的组件。点击Configure按钮后,进行下一步配置。并配置cmake,点击Configure。
2024-06-04 17:35:17
189
原创 12.6 复习各种技术
5)应定义一个重载赋值运算符的类成员函数,其函数定义如下(其中c_pointer是c_name的类成员,类型为指向type_name的指针)。如果该类提供了能够返回所需内容的公有方法,则可在运算符函数中使用这些方法,这样便不用将它们设置为友元函数了。2)如果析构函数通过对指针类成员使用delete来释放内存,则每个析构函数都应当使用new来初始化指针,或将它设置为空指针。1)对于指向的内存是由new分配的所有类成员,都应在类的析构函数中对其使用delete,该运算符将释放分配的内存。使用转换函数时要小心。
2024-05-26 23:15:52
281
原创 在windows下dat文件转mat
为了支持大文件的.dat文件转换,我们需要考虑如何处理大量数据以避免内存不足的问题。一般的方法是逐块读取.dat文件的数据并逐块写入.mat文件,而不是一次性读取整个文件的内容。需要安装hdf5库,参考https://blog.csdn.net/qq_36314864/article/details/139168631。代码下载:https://download.csdn.net/download/qq_36314864/89349164。
2024-05-24 11:22:31
141
原创 windows安装HDF5 C++库
地址1:https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-1.8.18/bin/windows/地址2:https://portal.hdfgroup.org/display/support/HDF5+1.8.18。地址3:https://download.csdn.net/download/qq_36314864/89348993。查看系统path,是否添加进去。打开vs添加需要配置。
2024-05-24 10:54:15
395
原创 SCPI控制
SCPIInterface依赖于Boost.Asio、SCPIParser。Boost.Asio为异步网络通信库,用于异步接受客户端请求、向客户端发送响应,SCPIParser为SCPI指令解析器,用于解析SCPI指令。利用SCPIInterface进行客户端与设备通信的过程如下图。客户端向服务端发送的SCPI指令分为查询指令和控制指令,查询指令用于查询设备状态及参数等信息,控制指令用于控制设备。TCPListner接收到客户端SCPI指令后,交给NetParser解析,执行与SCPI指令绑定的处理例程。
2024-05-10 11:13:58
150
原创 用asio::tcp通信的服务端
第三方库下载地址:https://download.csdn.net/download/qq_36314864/89227706。代码下载地址:https://download.csdn.net/download/qq_36314864/89227693。
2024-04-26 17:13:23
342
1
原创 spdlog C++日志管理 安装和下载
点击spdlog.sln,用vs2019打开,进行编译debug x64。每项都编译一下,会生成安装包。
2024-04-18 16:02:07
252
原创 嵌入式系统及应用-1.1嵌入式
嵌入式系统是以应用为中心,以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。定义:看不见的计算机,一般不能被用户编程,它有一些专用的I/O设备,对用户的接口是应用专用的。通常将嵌入式计算机系统简称为嵌入式系统。
2024-04-15 21:59:03
146
原创 通过共享内存方式发送、接受扫频信号
连接一个ursp设备,新建一个exe工程,配置为release x64,注意uhd.lib和uhd.dll版本不然会识别不了。代码下载位置:https://download.csdn.net/download/qq_36314864/89141261。代码下载:https://download.csdn.net/download/qq_36314864/89141239。代码下载:https://download.csdn.net/download/qq_36314864/89141246。
2024-04-15 16:32:42
30
原创 串口通信
打开两个XCOM V2.3,并按照上述虚拟串口进行配置,波特率要保持一致。比如COM3和COM6是连在一起的。打开串口,点击发送,收到正确即可。下载地址:https://download.csdn.net/download/qq_36314864/89139785。下载地址:https://download.csdn.net/download/qq_36314864/89139793。我写了一个动态库,有打开串口,读写串口,根据串口协议来的编写的一个demo,需要自己改一下配置。根据里面文档进行安装。
2024-04-15 11:34:42
65
原创 sdrangel使用说明
首先找一个usrp设备,我找到的是b205进行连接。打开生成的sdrangel.exe,第一次打开会出现空白界面。点击OK后,会响应一段时间,然后弹出两个窗口,一个可以设备相关参数,一个是频谱图,余晖图,瀑布图的显示。然后会弹出一个设备刷新窗口,选择你需要的设备。点击Add Rx Device按钮。
2024-04-03 14:53:06
277
原创 sdrangel下载与部署for windows
然后在build下面新建bin文件,用vs打开sdrangel.sln,注意是release x64,点击ALL_BUILD进行编译。点击Add Entry,添加CMAKE_PREFIX_PATH为Qt安装路径。点击Add Entry,添加PKG_CONFIG_EXECUTABLE。点击Configure看有无报错,然后点击Generate。点击configure,只出现warning,没有报错了。点击Configure,继续修改报错的问题。如果报错,说明代码没下拉全,重新下拉代码。
2024-03-26 18:44:06
232
原创 ChatGPT提示词Prompts
在描述问题时,尽量提供尽可能多的信息,例如问题的具体情境、操作步骤、错误提示等。3)投喂示例:根据上个对话的规范,给ChatGPT投喂对应的优秀示例让它进一步学习规范。2)明确规范:告诉ChatGPT应该遵循哪一些既定的业务规则,以及需要按照什么样的规范和格式输出答案。:提出针对性强的问题,可以得到更有价值的答案。:使用简洁明了的语言有助于更好地理解你的问题,并且回答更加精准。不好的问题:你觉得你是否已经掌握了所有必要的技能?不好的问题:这个决策有多大的风险。不好的问题:我的衣服上有污渍,怎么办?
2024-03-13 15:06:59
1135
原创 物联网导论
物联网:是一个基于互联网、传统电信网等信息承载体,让所有能够被独立寻址的普通物理对象实现互联互通的网络。它具有普通对象设备化、自治终端互联化和普适服务智能化三个重要特征。按照规定的协议,将具有感知、通信、计算等功能的智能物体、系统、信息资源互联起来,实现对物理世界泛在感知、可靠传输、智慧处理的智能服务系统。
2024-03-09 13:05:54
309
原创 OpenCL编程快速入门
3.利用clGetDeviceInfo和clGetPlatform和clGetDeviceInfo获得硬件的参数信息。7.在host创建Buffer,利用MapBUffer将数据从内存映射出来。9.创建GPU显存,利用MapBuffer将数据从=显存中映射出来。5.创建context,绑定对应的device,platform。10.利用WriteBuffer,将host中的数据写入显存。2.根据不同的platform获得不同的device。8.对内存上的数据进行初始化。12.释放opencl资源。
2023-12-26 15:22:23
345
原创 OpenCL编程指南-11.1OpenCL嵌入式简档
OpenCL规范定义了两个简档:一个是面向桌面设备的简档(完全简档),另一个是面向手持设备和嵌入式设备的简档(嵌入式简档)。手持和嵌入式设备在屏幕大小和电源方面存在很大限制,需要对完全简档中定义的需求有所放宽。嵌入式简档的着眼点是完全简档所需的OpenCL 1.1规范的一个严格子集。嵌入式简档作为完全简档的一个严格子集,有以下好处:1)可以为两个简档提供一个规范,而不需要单独的规范。2)为嵌入式简档编写的OpenCL程序可以在实现完全简档的设备上运行。
2023-09-15 16:32:50
223
原创 雷达重要概念
雷达,是英文Radar的音译,源于radio detection and ranging的缩写,意思为“无线电探测和测距”,即用无线电的方法发现目标并测定它们的空间位置。因此,雷达也被称为“无线电定位”。雷达是利用电磁波探测目标的电子设备。雷达发射电磁波对目标进行照射并接收其回波,由此获得目标至电磁波发射点的距离、距离变化率(径向速度)、方位、高度等信息。雷达是利用电磁波探测目标的电子设备。
2023-09-08 15:39:09
975
原创 OpenCL编程指南-10.2使用C++包装器API的矢量相加示例
乍一看可能会让你有些害怕,因为这里使用了一种称为特征类(traits)的C++模板技术(这里用于关联clGetXXInfo()提供的共享功能),不过,由于使用这些getInfo()函数的程序在实际中从来不需要引用特征类组件,所以对于开发人员编写的代码没有任何影响。这些缓冲区对象使用cl::Buffer()创建。对于局部工作大小,使用cl::Range()对象的一个特殊实例cl::NullRange,顾名思义,它对应于C API中传递NULL,允许运行时为设备确定最佳的工作组大小和请求的全局工作大小。
2023-09-07 16:11:57
415
原创 OpenCL编程指南-10.1C++包装器API
C++API划分为多个类,分别映射到一个OpenCL C类型,例如,cl::Memory类就映射到OpenCL C中的cl_mem。不过,C++ API会尽可能使用继承提供额外的一层类型抽象;例如,类cl::Buffer派生自基类cl::Memory,表示所有可能的OpenCL内存对象的1维内存子类。类层次体系结构见图12-1。一般地,C++类类型到底层OpenCL C类型有直接的映射,在这种情况下,底层C类型可以通过操作符()访问。//not safe。
2023-09-07 11:39:34
306
原创 OpenCL编程指南-9.3使用事件完成评测、内核中的事件、OpenCL外部的事件
所以我们完成一个异步复制,将B的一列从全局内存复制到局部内存(使得所有工作项都能使用相同的列),之后再将A的一行复制到私有内存(这里,计算乘积矩阵C的各个元素时工作项可以反复使用这一行)。换句话说,连接OpenCL和OpenGL的命令定义为:在最常见的需要同步的情况下,这些命令会自动执行。要实现这个方法,将A的行与B的列相乘的for循环必须等待,直到异步复制完成。因此,在理想情况下,任何对象如果能够表示为队列中的命令,就应当提供一个事件接口。评测将事件转换为一个包含计时数据的不透明的对象。
2023-09-06 18:29:30
119
原创 C++ map clear内存泄漏问题
STL容器调用clear()方法,通常只是使得容器内部的对象通通析构,但容器本身的内存无法得到释放。即篮子里面东西拿走了,篮子占的空间还在,这样是为了方便下次存放新的对象时,不需要再次申请空间。map自带的clear()函数会清空map里存储的所有内容,但如果map值存储的是指针,则里面的值不会被清空,会造成内存泄漏,所以值为指针的map必须用迭代器清空。若需要多次使用同一个map,其中每次使用后都clear清空,多次之后,可能出现内存泄露,这是因为map的空间便没有释放,所以得使用swap清空。
2023-09-06 15:55:26
3031
原创 Win10远程桌面连接黑屏
查找本地计算机 >> 计算机配置 >> 管理模版 >> Windows组件 >> 远程桌面服务 >> 远程桌面会话主机 >> 远程会话环境 >> 为远程桌面连接使用WDDM图形显示驱动程序,并将其值设置为禁用。按键盘Win+R打开运行,输入命令gpedit.msc打开本地组策略编辑器。使用远程桌面连接报下面这个错误时候。重启windows操作系统。
2023-09-05 18:06:41
1217
原创 OpenCL编程指南-9.2事件对象、宿主机上生成事件、影响宿主机上执行的事件
不过,事件不能跨上下文。跨上下文边界时,只有一种选择,就是让宿主机程序等待一个上下文的事件,然后使用用户事件来触发另一个上下文中命令的执行。换句话说,如果为一个事件注册了多个回调,那么一旦这个事件将其状态切换为CL_COMPLETE,所注册的回调函数可能会按任意的顺序执行。也就是说,即使这个函数确定由事件标记的一个命令已经执行完毕(即CL_EVENT_COMMAND_EXECUTION_STATUS返回CL_COMPLETE),也不能保证与该事件关联的命令所修改的内存对象对于队列中的其他命令可见。
2023-08-29 18:56:34
138
原创 Boost开发指南-4.13小结
operators库很强大易用,但保证操作符具有正确的语义还是程序员自己的责任,操作符的重载应该与它原来的含义基本一致——至少不能违背大多数人的常识。变量值的交换是一个看似简单实则复杂的操作,它被用来处理异常安全性和类的自我赋值,如果想要自己的类安全高效,那么应该提供一个好的swap函数,它是很多实用功能的基础,Boost 库中几乎所有的类都有swap()成员函数就清楚地说明了这一点。操作符重载简化了代码的编写,提供了清晰易懂的语法,但实现操作符重载是件烦琐的工作。
2023-08-29 11:37:52
79
原创 Boost开发指南-4.12utility
除了最基本最通用的 BOOST_BINARY宏之外,本组件还包含形如 BOOST_BINARY_XX的宏,其中的xx是标准的整数扩展,如 u(unsigned int)、UL(unsigned long)等,用以支持需要特定整数类型的地方。GCC编译器在C89的__FILE__和__LINE__之外定义了一些扩展宏,其中的__PRETTY_FUNCTION__宏可以表示函数名称,VC、intel C等编译器也定义有类似的宏,而C99标准则定义了__func__宏以实现同样的功能。
2023-08-29 11:28:33
127
原创 Boost开发指南-4.11config
BOOST_STRINGIZE是一个宏,这一点很重要,意味着它仅能用于编译期(准确地说是编译前预处理时),不支持运行时转换。代码的前两条语句运用了BOOST_STRINGIZE,把编译期的整数转换成了字符串,而第三个 BOOST_STRINGIZE因无法处理运行时的整数变量,只能把它转换成字面意义的字符串。一般来说,config库不应该被库用户使用,不过在这个库里,我们也可以找到几个有用的小工具(其实在第1章我们就已经用到了config库里的BOOST_PLATFORM等宏)。
2023-08-29 11:11:00
120
原创 Boost开发指南-4.10uuid
class uuidpublic://长度,返回16//内部实现在以上列出的成员函数之外,uuid还全面支持比较操作和流输入/输出。两个uuid 值的比较是基于字典序的,通常的比较操作使用的是memcmp,但针对x86做了特殊的优化以加快速度。uuid的名字生成器使用了SHA1摘要算法,这是一个很重要的密码学算法,可以将任意长度的文本压缩成一个只有20字节(160位)的独一无二的摘要,被广泛地应用于防篡改、身份鉴定等安全认证领域。
2023-08-28 18:35:06
324
原创 Boost开发指南-4.9exception
exception库提供两个类:exception和error_info,它们是exception库的基础。protected:private :exception类几乎没有公开的成员函数(但有大量用于内部实现的私有函数和变量),被保护的构造函数表明了它的设计意图:它是一个抽象类,除了它的子类,任何人都不能创建或者销毁它,这保证了exception不会被误用。exception的重要能力在于其友元操作符
2023-08-25 17:14:58
219
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人