- 博客(46)
- 资源 (18)
- 收藏
- 关注
原创 双网口动态链路聚合功能调试
摘要:本文介绍了基于Linux Bonding技术的Mode4(802.3ad)动态链路聚合方案。该方案使用支持LACP协议的千兆交换机和双百兆网口开发板(RK3588),通过配置交换机LACP端口和内核bonding功能,实现了双网卡聚合。测试结果显示,聚合后总吞吐量达188Mbits/sec,接近理论最大值200Mbits/sec,有效提升了带宽和负载均衡能力,适用于数据中心等高带宽需求场景。配置过程包括内核编译、bond0接口创建、网卡绑定及IP设置等步骤。
2025-12-09 15:02:23
434
原创 openeuler-container-os镜像从内存无法启动问题调试
将基于oebuild快捷构建工具输出的openeuler-container-os镜像加入SDK包编译,加载新的系统镜像文件到内存中可实现openeuler-container-os系统启动运行。
2025-12-02 16:57:20
303
原创 构建带有iSula的openEuler Embedded系统镜像
摘要:本文探讨在openEulerEmbedded系统中集成iSula容器引擎的解决方案。由于嵌入式版不支持在线安装,尝试通过服务器版获取isulad安装包失败后,采用构建定制镜像的方法。关键步骤包括:1)配置Docker环境;2)安装oebuild工具;3)初始化构建环境;4)修正配方依赖问题,移除isula-utils并保留必要依赖项。最终通过修改local.conf文件成功构建包含iSula的嵌入式系统镜像。该方案为嵌入式环境下使用iSula容器引擎提供了可行路径。
2025-11-21 16:26:51
656
原创 Linux5G通信(移远RM500U)调试
本文摘要介绍了5G模组的配置流程:首先通过lsusb命令检测USB设备,然后通过GPIO操作控制5G模组供电。接着使用AT指令配置PDP上下文、启用5G LAN功能并进行网络拨号,最后通过ping命令测试5G网络连接。整个过程涉及硬件控制、AT指令交互和网络测试三个关键环节。
2025-11-19 11:14:56
599
原创 国产麒麟操作系统的种类
麒麟系列国产操作系统包含星光麒麟、银河麒麟和中标麒麟三大产品线。星光麒麟专为物联网场景设计,适配移动终端、工控设备等硬件;银河麒麟支持服务器、桌面及嵌入式版本,适配国产CPU;中标麒麟则面向政企市场,提供多种版本选择。三大系统形成覆盖全场景的国产操作系统生态,满足不同领域的数字化需求,具有自主可控、安全可靠等特点。
2025-11-19 09:54:50
399
原创 openEuler Embedded新增软件包及在线安装软件方法
openEuler Embedded是基于Yocto构建的嵌入式操作系统,默认不包含dnf/apt软件包管理器,主要使用rpm格式。新增软件需通过manifest文件检查是否集成,未集成则需适配新配方。对于在线安装需求,可采用轻量级容器方案:通过isulad运行openEuler服务器版容器镜像,在容器内使用dnf命令安装软件(如Nginx),实现服务器生态兼容。部署前提包括设备支持、存储空间(≥10GB)和网络连接,需先安装并启动isulad服务。这种方法结合了嵌入式系统的轻量化特性和服务器系统的软件管理
2025-11-18 14:52:02
1225
原创 云、边协同Kubernetes(K3S)部署方法
Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。而集成了 Kubernetes 云原生管理能力的 KubeEdge,同时对边缘业务部署和管理提供了很好的支持, 因此被广泛应用于基础设施数字化需求的边云协同与数据采集场景。
2025-11-18 11:10:02
708
原创 Linux Bonding技术6中模式的适用场景及部署方法
Linux Bonding技术通过将多个物理网口绑定为逻辑接口,提供网络高可用、负载均衡和带宽提升功能。支持7种工作模式:轮询(Mode0)适用于普通负载均衡;主备(Mode1)保障关键业务高可用;异或计算(Mode2)实现基础负载均衡;广播(Mode3)提供完全冗余;动态聚合(Mode4)需交换机支持LACP;自适应模式(Mode5/6)可灵活分配流量。RK3568部署示例展示了802.3ad模式的配置流程,包括内核编译、模块加载和接口绑定等步骤。该技术可满足不同场景下的网络性能需求。
2025-11-18 09:22:15
729
原创 openEuler安装webmin
本文介绍了Webmin管理工具的安装方法。首先从官网下载RPM安装包,通过FTP工具上传至开发板后,使用dnf命令进行本地安装。安装完成后,在浏览器中输入开发板IP地址及默认端口10000即可访问Webmin的配置页面。该说明简明扼要地阐述了从下载到安装配置的完整流程,适用于Linux系统的远程管理需求。
2025-11-17 17:05:02
178
原创 Linux防火墙(iptables)可视化界面实现方法
用户可以根据需要安装或移除模块,节省资源,深受高级用户和系统管理员的喜爱。iptables 是 Linux 内核 Netfilter 框架的用户态管理工具,可完整实现防火墙功能。官网地址:https://webmin.com/docs/modules/firewalld/#about。应用管理:管理数据库、Web服务器及其他应用。网络配置:设置防火墙、管理网络接口及路由表。用户管理:创建、删除及管理系统用户和组。文件管理:创建、删除、上传及编辑文件。流量过滤、地址转发、端口映射等。
2025-11-17 16:49:51
716
原创 OpenEuler操作系统不同版本的区别与定位
openEuler与openEulerEmbedded操作系统对比分析:前者面向服务器、云计算等通用场景,支持x86/ARM等多架构,提供完整Linux功能和企业级特性;后者专为嵌入式设备设计,采用轻量化内核,支持混合关键性部署,适用于物联网和工业控制等资源受限环境。两者在硬件适配、资源占用、实时性支持和生态构建等方面存在显著差异,满足不同计算场景需求。
2025-11-17 16:28:40
610
原创 多目录Makefile文件编写
这是一个简单的Makefile文件,用于C语言项目的自动化构建。它定义了源代码目录(src)、头文件目录(include)、目标文件目录(obj)和可执行文件目录(bin)。Makefile自动查找src目录下的.c文件,生成对应的.o目标文件存放于obj目录,最终链接生成可执行文件到bin目录。编译选项包含调试信息(-g)、所有警告(-Wall)和头文件路径(-Iinclude)。同时提供了clean指令来清理生成的目标文件。该Makefile简化了C项目的编译过程,实现了自动化构建。
2023-08-23 14:26:18
431
原创 fatts文件系统检查文件或目录是否存在
芯片型号:STM32F407函数名称:FRESULT f_stat (const TCHAR* path, FILINFO* fno)功能说明: path 指向以null结尾的字符串的指针,该字符串指定要获取其信息的路径,不能是根目录。fno 指向FILINFO结构体来存储对象的信息,如果不需要此信息,请设置空指针。FRESULT fr;FILINFO fno;printf("Test for 'file.txt'...\n");fr = f_st...
2022-05-21 20:37:30
4128
原创 Modbus寄存器分类及地址分配
Modbus协议中一个重要的概念是寄存器,所有的数据均存放于寄存器中。最初Modbus协议借鉴了PLC中寄存器的含义,但是随着Modbus协议的广泛应用,寄存器的概念进一步泛化,不再是指具体的物理寄存器,也可能是一块内存区域。Modbus寄存器根据存放的数据类型以及各自读写特性,将寄存器分为4个部分,这4个部分可以连续也可以不连续,由开发者决定。Modbus寄存器分类及说明Modbus寄存器地址分配...
2022-05-19 21:19:57
22534
原创 Modbus通信协议深入
Modbus协议是一种单主/多从的通信协议,其特点是在同一时间,总线上只能有一个主设备,但可以有一个或者多个(最多247个)从设备。Modbus通信总是由主设备发起,当从设备没有收到来自主设备的请求时,不会主动发送数据。从设备之间不能相互通信,主设备同时只能启动一个Modbus访问事务处理。 主设备可以采用两种方式向从设备发送Modbus请求报文,即主设备可以对指定的单个从设备或者线路上所有的从设备发送请求报文,而从设备只能被动接收请求报文后给出响应报文即应答。这两种模式分别如下...
2022-05-19 21:10:20
2364
原创 EtherCAT工业以太网的主要特点
1)完全符合以太网标准。普通以太网相关的技术都可以应用于EtherCAT 网络中。EtherCAT设备可以与其他的以太网设备共存于同一网络中。普通的以太网卡、交换机和路由器等标准组件都可以在EtherCAT中使用。2)支持多种拓扑结构。如线形、星形及树形。可以使用普通以太网使用的电缆或光缆。当使用100Base-TX电缆时,两个设备之间的通信距离可达100m。当采用100BASE-FX模式,两对光纤在全双工模式下,单模光纤能够达到40km的传输距离,多模光纤能够达到2km的传输距离。EtherCAT还能
2022-05-15 11:17:07
4843
原创 函数参数声明为const常量的理由
将引用参数声明为常量数据的引用的理由有三个:使用const可以避免无意中修改数据的编程错误; 使用const使函数能够处理const和非const实参,否则将只能接受非const数据; 使用const引用使函数能够正确生成并使用临时变量。 因此,应尽可能将引用形参声明为const。...
2022-05-14 16:50:49
584
原创 C++之引用变量的作用及用法
C++新增了一种复合类型——引用变量。引用是已定义的变量的别名(另一个名称)。例如,如果将twain作为clement变量的引用,则可以交替使用twain和clement来表示该变量。那么,这种别名有何作用呢?引用变量的主要用途是用作函数的形参。通过将引用变量用作参数,函数将使用原始数据,而不是其副本。这样除指针之外,引用也为函数处理大型结构提供了一种非常方便的途径,同时对于设计类来说,引用也是必不可少的。 C和C++使用&符号来指示变量的地址。C++给&符号赋予...
2022-05-14 11:10:16
924
1
原创 EtherCAT协议数据传输原理
EtherCAT是由德国倍福公司开发的,并且在2003年底成立了ETG工作组。EtherCAT是一个可用于现场级的超高速I/O网络,它使用标准的以太网物理层和常规的以太网卡,介质可为双绞线或光纤。 如果将单个以太网帧用于每个设备,从理论上讲,其可用数据率非常低。一般常规的工业以太网的传输方法都采用先接收通信帧,进行分析后作为数据送入网络中各个模块的通信方式,而EtherCAT的以太网协议帧中已经包含了网络中各个模块的数据。 数据的传输采用移位同步的方法进行,即在网络的模块中得到其...
2022-05-14 10:46:31
2517
原创 EtherCAT实时工业以太网模型
实时工业以太网采用不同的实时策略来提高实时性能,根据其提高实时性策略的不同,实现模型可分为3种。基于TCP/IP实现,在应用层上做修改。 此类模型通常采用调度法、数据帧优先级机制或使用交换式以太网来滤除商用以太网中的不确定因素。这一类工业以太网的代表有Modbus/TCP和EtherNet/IP。此类模型适用于实时性要求不高的应用中。基于标准以太网实现,在网络层和传输层上进行修改。 此类模型将采用不同机制进行数据交换,对于过程数据采用专门的协议进行传输,TC...
2022-05-14 09:45:38
1047
原创 OSI模型
OSI 模型(Open System Interconnection model,开放系统互联模型)是一个由国际标准化组织提出概念模型,试图提供一个使各种不同的计算机和网络在世界范围内实现互联的标准框架。 它将计算机网络体系结构划分为七层,每层都可以提供抽象良好的接口。了解OSI模型有助于理解实际上互联网络的工业标准——TCP/IP协议。 OSI模型各层间关系和通讯时的数据流向如图所示。 OSI模型是一个理想化的模型,实际上的协议比如TCP/IP并不是严格按照此模型来做的。了解OS
2022-05-13 21:34:16
1622
1
原创 网络编程Socket基础
Socket能够实现网络上的不同主机之间或同一主机的不同对象之间的数据通信。所以,Socket已经是一类通用通信接口的集合。地址表示数据结构 IP协议使用的地址描述数据结构,使用需要包括头文件netinet/in.h。 Linux下该结构的典型原型声明如下:236 /* Structure describing an Internet socket address. */ 237 struct sockaddr_in 238 { 239 __SOCKADDR_...
2022-05-12 07:53:22
504
原创 Linux查看系统基本信息
查看系统信息:# uname -a # 查看内核/操作系统/CPU信息 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出所有PCI设备 # lsusb -tv # 列出所有USB设备 # lsmod # 列出加载的内核模块 # env # 查看环境变量 # modinfo softdog # 查看模块信息查看系统资源信息:# free -m # 查看内存使用量和交换区使用量 # df -h # 查看各分
2022-05-12 07:24:30
3080
原创 C/C++深入函数指针
下面通过一个示例演示如何更好使用函数指针。首先,如下是一些函数的原型,它们的特征标和返回类型相同: 这些函数的特征标看似不同,但实际上相同。首先,前面说过,在函数原型中,参数列表const double ar [ ]与const double * ar的含义完全相同。其次,在函数原型中,可以省略标识符。因此,const double ar [ ]可简化为const double [ ],而const double * ar可简化为const double *。因此,上述所有函...
2022-05-10 22:39:11
475
原创 C/C++函数指针
声明指向某种数据类型的指针时,必须指定指针指向的类型。同样,声明指向函数的指针时,也必须指定指针指向的函数类型。这意味着声明应指定函数的返回类型以及函数的特征标(参数列表)。也就是说,声明应像函数原型那样指出有关函数的信息。例如,假设Pam leCoder编写了一个估算时间的函数,其原型如下:则正确的指针类型声明如下: 这与pam( )声明类似,只是将pam替换为(*pf)。由于pam是函数,因此(*pf)也是函数。而如果(*pf)是函数,则pf就是函数指针。 ...
2022-05-10 07:31:47
317
1
原创 STM32F407 emmc驱动初始化失败解决方法
现象:初始化时CMD0命令执行正常,CMD1命令未获取到emmc模块有效电压。emmc芯片型号: 三星KLM8G1GEME-B041。emmc模块20pin引脚定义如下图:uint8_t InitAppEmmc(void){ uint8_t Result = EMMC_SUCCESS; /* 返回值 */ uint8_t Work[512]; Result = InitEmmc_EMMC(); if(Result != EMMC_SUC...
2022-05-09 22:15:47
5645
2
原创 Visual Studio Code编译Keil工程
报错信息如下:在Visual Studio Code已安装应用中选择Keil Assistant,设置/扩展设置,添加keil.exe的安装路径,重新编译即可。
2022-05-08 21:08:15
1951
原创 C/C++之递归
C++函数有一种有趣的特点——可以调用自己(然而,与C语言不同的是,C++不允许main( )调用自己),这种功能被称为递归。尽管递归在特定的编程(例如人工智能)中是一种重要的工具,但这里只简单地介绍一下它是如何工作的。 如果递归函数调用自己,则被调用的函数也将调用自己,这将无限循环下去,除非代码中包含终止调用链的内容。通常的方法将递归调用放在if语句中。例如,void类型的递归函数recurs( )的代码 递归调用将导致一系列有趣的事件。只要if语句为true...
2022-05-08 18:06:28
1585
原创 C/C++运算符优先级汇总
C语言有大量的运算符,算数运算符、关系运算符、赋值运算符、逻辑运算符、逻辑表达式、条件运算符、指针有关的运算符和符号运算符等。下表表按优先级从高至低的顺序汇总列出了C运算符,并给出了其结合性。除非特别指明,否则所有运算符都是二元运算符(需要两个运算对象)。注意,一些二元运算符和一元运算符的表示符号相同,但是其优先级不同。例如,*(乘法运算符)和*(间接运算符)。...
2022-05-07 22:55:08
2387
原创 C/C++之do while循环
while循环和for循环都是入口条件循环,即在循环的每次迭代之前检查测试条件,所以有可能根本不执行循环体中的内容。C语言还有出口条件循环(exit-condition loop),即在循环的每次迭代之后检查测试条件,这保证了至少执行循环体中的内容一次。这种循环被称为do while循环。如下程序演示了一个示例。#include <stdio.h>int main(void){ const int secret_code = 13; int code_en...
2022-05-07 22:36:52
6121
原创 C++读文件操作
文本输入,它是基于控制台输入的。控制台输入涉及多个方面,下面首先总结这些方面。必须包含头文件iostream。 头文件iostream定义了一个用处理输入的istream类。 头文件iostream声明了一个名为cin的istream变量(对象)。 必须指明名称空间std;例如,为引用元素cin,必须使用编译指令using或前缀std::。 可以结合使用cin和运算符>>来读取各种类型的数据。 可以使用cin和get( )方法来读取一个字符,使用cin和getline...
2022-05-06 07:56:23
1908
原创 C++写文件操作
对于文件输入,C++使用类似于cout的东西。下面来复习一些有关将cout用于控制台输出的基本事实,为文件输出做准备。必须包含头文件iostream。 头文件iostream定义了一个用处理输出的ostream类。 头文件iostream声明了一个名为cout的ostream变量(对象)。 必须指明名称空间std;例如,为引用元素cout和endl,必须使用编译指令using或前缀std::。 可以结合使用cout和运算符<<来显示各种类型的数据。 文件输出与此极其相...
2022-05-05 22:38:16
1506
原创 C++之break和continue
break和continue语句都使程序能够跳过部分代码。可以在switch语句或任何循环中使用break语句,使程序跳到switch或循环后面的语句处执行。continue语句用于循环中,让程序跳过循环体中余下的代码,并开始新一轮循环。 该程序让用户输入一行文本。循环将回显每个字符,如果该字符为句点,则使用break结束循环。这表明,可以在某种条件为true时,使用break来结束循环。接下来,程序计算空格数,但不计算其他字符。当字符不为空格时,循环使用continue语...
2022-05-05 07:35:13
2589
原创 C++用枚举量作为switch的标签
程序使用enum定义了一组相关的常量,然后在switch语句中使用这些常量。通常,cin无法识别枚举类型(它不知道程序员是如何定义它们的),因此该程序要求用户选择选项时输入一个整数。当switch语句将int值和枚举量标签进行比较时,将枚举量提升为int。另外,在while循环测试条件中,也会将枚举量提升为int类型。下面是该程序的输出:...
2022-05-05 07:26:59
752
原创 EOF是什么
先看一下EOF的官方解释:计算机术语,缩写通常为EOF(End Of File),在操作系统中表示资料源无更多的资料可读取。资料源通常称为档案或串流。在C语言中,或更精确地说成C标准函式库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志。 ...
2022-05-05 07:13:51
7959
原创 C/C++计算阶乘
下面使用for循环来计算并存储前16个阶乘。阶乘的计算方式如下:零阶乘写作0!,被定义为1。1!是1*0!,即1。2!为2*1!,即2。3!为3*2!,即6,依此类推。每个整数的阶乘都是该整数与前一个阶乘的乘积,该程序用一个循环来计算连续阶乘的值,并将这些值存储在数组中。然后,用另一个循环来显示结果。另外,该程序还在外部声明了一些值。...
2022-05-04 15:57:34
6888
原创 C++之数组、结构和指针
数组、结构和指针是C++的3种复合类型。数组可以在一个数据对象中存储多个同种类型的值。通过使用索引或下标,可以访问数组中各个元素。 结构可以将多个不同类型的值存储在同一个数据对象中,可以使用成员关系运算符(.)来访问其中的成员。使用结构的第一步是创建结构模板,它定义结构存储了哪些成员。模板的名称将成为新类型的标识符,然后就可以声明这种类型的结构变量。 共用体可以存储一个值,但是这个值可以是不同的类型,成员名指出了使用的模式。 指针是被设计用来存储地址的变量。我们说,指针指向它存储的地...
2022-05-04 15:03:13
365
openeuler-container-os-hi3093-20251125053410.rootfs.cpio.gz
2025-12-15
webmin-2.303.202504161527-1.noarch.rpm
2025-12-15
util-linux-2.38.1.tar.xz 是 util-linux 工具集的源代码压缩包(版本 2.38.1),它是 Linux 系统中最基础、最核心的工具集之一,包含了一系列用于系统管理、硬
2025-11-18
tcnopen-trdp-r2419-trunk.zip 是与 TRDP(Train Real-time Data Protocol,列车实时数据协议) 相关的开源实现包,主要用于轨道交通领域的实时数
2025-11-18
lv-drivers-8.3.0.tar.gz 是 LittlevGL(现已更名为 LVGL)图形库 的配套驱动程序包(版本 8.3.0),主要作用是为 LVGL 图形库提供硬件适配层,使其能够在不同
2025-11-18
mysql-client-5.7-arm64
2022-05-08
mysql-server_5.7.37_arm
2022-05-08
arm-none-linux-gnueabi-arm-2011.03-Win32.zip
2021-09-10
gcc-linaro-arm-linux-gnueabihf-2014.04-win32.zip
2021-09-10
arm-linux snmp安装方法及安装包.zip
2021-08-24
嵌入式Linux系统ftp虚拟用户配置文件和源码.zip
2021-08-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅