- 博客(240)
- 资源 (8)
- 收藏
- 关注
原创 【 开发知识点 五 】签名算法 ECDSA
ECDSA(Elliptic Curve Digital Signature Algorithm,椭圆曲线数字签名算法)是一种基于椭圆曲线密码学(Elliptic Curve Cryptography, ECC)的数字签名算法。
2025-03-05 07:00:00
671
原创 【 开发知识点 四 】BIO —— I/O 流抽象层
它的设计类似于 C 标准库中的文件 I/O(如 FILE*),但功能更为强大,能够支持多种数据来源和目标,包括内存缓冲区、文件、网络套接字等。例如,Base64 编码/解码 BIO(BIO_f_base64)、SSL/TLS BIO(BIO_s_ssl)、压缩 BIO 等。使用 BIO_new_socket 或 BIO_new_connect 创建,用于网络通信。:从链的尾部(最底层的 BIO)开始,逐级向上(经过每个 BIO 的处理)。使用 BIO_new_mem_buf 创建,用于在内存中读写数据。
2025-03-04 07:00:00
821
原创 【 开发知识点 三 】Base64 算法
Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法。由于 2 的 6 次方等于 64 ,所以每 6 个比特为一个单元,对应某个可打印字符。3 个字节有 24 个比特,对应于 4 个 Base64 单元,即 3 个字节可由 4 个可打印字符来表示。
2025-03-03 07:00:00
849
原创 【 开发知识点 一 】 随机数生成器 /dev/urandom 和 /dev/random
urandom 熵池计数器计数会减去 N ,如果结果大于等于0 ,直接从 urandom 熵池中取出 N 个随机二进制位并返回,如果结果小于 0,请求不会阻塞,只不过返回的是 N 个伪随机二进制位,这里的伪随机二进制位是通过算法计算出来的,它的质量没有 urandom 熵池中提取出的随机二进制位高。主熵池 、次熵池 以及 urandom 熵池各自都有一个计数器,用一个整数值来记录,表示当前熵池中可用随机数的数量,这是一个预估的值,它是生成器根据熵池中的环境数据估算出来的。为了保证随机数的质量,
2025-03-01 11:35:29
999
原创 【 开发知识点 二 】哈希函数 SHA256
一个 n 位的哈希函数就是一个从任意长的消息到 n 位哈希值的映射,一个 n 位的加密哈希函数就是一个单向的、避免碰撞的 n 位哈希函数。这样的函数是目前在数字签名和密码保护当中极为重要的手段。各种加密算法在实现区块链当中的各个环节都有着不可替代的作用。在比特币挖矿 以及 merkle 树 当中被大量使用的就是 SHA256。要完成消息摘要计算,先通过三个模块:常量的初始化、信息预处理、逻辑运算先将消息分解成 512bit 大小的块。
2025-03-01 11:34:47
1171
原创 【工具篇】Ubuntu SNMP 安装、配置、启动及远程测试
如果需要开发Linux主机的监控软件,那使用snmp肯定是首选,毕竟它可以获取 Linux 主机的信息。
2025-02-22 07:30:00
1048
原创 【工具篇】Apache 网页服务器
方法一、在配置文件中可以发现,服务器默认的访问路径在 /var/www/html 目录下。只是为了简单实现一台 http 文件服务器,因此可以在此目录下创建一个软连接来连接文件目录。方法二、(1)修改根目录修改根目录路径,编辑 /etc/apache2/sites-available/000-default.conf(2)给自定义目录添加权限,编辑 /etc/apache2/apache2.conf在 /home/cindy/www/html/ 目录下创建文件或文件夹。
2025-02-20 07:30:00
681
原创 【工具篇】MIB Browser 使用方法
MIB Browser 工具用于查询 SNMP Agent 上的 MIB 变量,接收 SNMP Agent 上报的 Trap 消息,是用来调试验证 SNMP 性能不可或缺的工具。
2025-02-19 07:30:00
1113
原创 【应用层 协议】 SNMP MIB 通用 OID 汇总
MIB 是一个虚拟的数据库,存储了设备的管理信息。它采用树状结构,每个节点对应一个对象标识符(OID),用于唯一标识管理对象。
2025-02-18 07:30:00
545
原创 【应用层 协议】SNMP 基础知识
SNMP(Simple Network Management Protocol,简单网络管理协议)是一种广泛应用于 TCP/IP 网络的网络管理标准协议。它通过轮询机制,帮助网络管理系统(NMS)监测网络设备的状态,及时发现并处理问题。SNMP 以 UDP 作为传输层协议,具有简单、高效、易于实现的特点,适合小型、快速、低成本的网络环境。SNMP中定义了五种消息类型:Get-Request、Get-Response、Get-Next-Request、Set-Request和Trap。
2025-02-17 07:30:00
959
原创 【网络层】负载分担、路由备份、缺省路由
静态路由支持到达同一目标网络的cost开销是一样的,这种路由叫做等价路由。也就是数据包两条路都能走,实现流量负载分担,提高链路利用率。路由备份又称浮动静态路由。在真正的网络中,要求利用优先级的特性,配置浮动路由。主要解决在主路由失效的情况下,浮动路由会加入到路由表并承担数据转发业务。
2024-08-10 09:31:50
1346
原创 【网络层】直连路由、静态路由、动态路由
配置简单、开销小通过手动配置进行添加和维护无法根据拓扑的变化而自适应适合于组网规模较小的场景,在大型网络环境,则配置及维护成本很高在大型网络中,往往采用动、静态路由结合的方式部署网络路由器之间交互的一种语言共享路由信息维护路由器、提供最佳转发路径。
2024-08-10 08:57:21
2683
原创 【网络层】路由基础
路由设备接收到数据包,检查二层目的MAC地址是否与自己硬件地址匹配。若不匹配就丢弃;若匹配,先通过二层帧CRC校验,确保数据没有在传输过程中出现异常。拆解二层数据拿到三层包头数据。根据三层的校验头来确认数据包的完整性,若正常则获取三层目的IP地址,查看IP地址是否为本机接口地址或者是广播地址之类的群发地址。若是则会进一步拆解包头获取数据,若不是就代表这个数据需要被转发,查找路由表,确认最优路线。处理三层报文中 TTL -1,计算校验和,为了给下个设备进行校验。根据地
2024-08-10 07:31:13
694
原创 【应用层】FTP/TFTP 系统升级和备份文件管理
根据实际的场景选择使用其中哪种协议,FTP可靠(在跨网段或广域网之间使用较好),TFTP不可靠 (在局域网内对可靠性要求不高使用较好)版本号:自身版本号5.130,设备型号AR200,关联产品版本号 V200 (产品码),R003(大版本号),C00(小版本号)比如在航空,工厂,交通等领域,谨慎升级!可以在本地将文件拷贝到usb上,接在设备的USB口,将文件使用cope 命令拷贝到指定目录下。就像生活中游戏软件,每个玩家都知道升级到最新版本是最好的,里面有新开发的玩法或者修复版本中现存在的BUG。
2024-08-09 17:09:58
882
原创 网络协议 从入门到精通系列讲解 - 总目录
👦 作者介绍:Bazinga bingo,专注网络协议基础学习以及协议应用硬核干货分享,潜心修炼,虚心学习,立志将每个网络协议最简单的方式分享大家。📕 本文收录于《网络协议 + eNSP + Wireshark》专栏,包含介绍网络七层协议中的各个网络协议。从网络协议概念让大家了解协议作用,特点,优势等;通过华为提供的eNSP工具搭建拓扑图让大家深入感受协议的工作原理;过程中用Wireshark工具抓协议包让大家了解协议中每个字段的含义与作用。
2024-08-03 12:30:36
769
1
原创 【工具篇】华为VRP通用操作系统 —— 配置文件管理
当配置设备时,命令都会保存在current-configuration中。可以通过 display current-configuration 命令查看当前运行的配置信息,这些数据都是保存在RAM中。因此当设备在配置过程中遇到断电或则设备异常重启的情况,之前没有及时保存到saved-configuration里面的配置会丢失。这是因为VRP文件系统空间有限,所以配置文件在保存时自动要做压缩处理。在 eNSP 中,用户可以通过命令行界面(CLI)进行配置文件的管理,包括查看、编辑、保存和恢复配置文件等操作。
2024-08-03 11:40:21
826
原创 【应用层】远程登入管理设备 Telnet
Telnet是一种基于文本的网络协议,它允许用户通过虚拟终端的方式远程登录到其他主机。最初设计于1960年代,并在RFC 854中定义,Telnet工作在应用层,使用TCP作为传输层协议,端口号为23。Telnet协议的工作原理主要包括建立连接、协商选项和数据传输三个步骤。在实际应用中,Telnet可以用于远程配置和管理网络设备。管理员可以使用Telnet远程连接到设备上,进行集中的管理和维护。然而,由于Telnet协议使用明文形式传输数据,存在一定的安全性风险,因此推荐使用更安全的SSH协议作为替代。
2024-08-03 11:21:01
2863
原创 【工具篇】eNSP连接真机环境搭建
重启电脑后就会出现回环网卡的选项(注:Loopback是小编自己给网卡取得名字,你也可以,如果你需要的话)因此在做eNSP与真机联调测试时,最好连接真机上的回环网卡。这样整个测试环境更加干净,并且稳定。如果没有回环网卡的选项,先查看电脑上回环网卡是否安装成功。如果安装成功,必须重启电脑。eNSP(华为网络模拟器)是一个网络仿真平台,用于模拟和测试网络设备和配置。这里添加两条规则:2端口入,1端口出;1端口(回环端口)和2端口(eNSP里的端口)1、PC基础配置(先右击图标开启PC)
2024-08-03 09:27:46
1417
原创 【工具篇】华为VRP通用操作系统 —— 基础命令介绍
通过上一节的华为VRP通用操作系统介绍,掌握如何登入设备以及命令行架构。也通过eNSP虚拟器搭建拓扑成功登入华为VRP通用操作系统。本文章介绍基础命令以及快捷键,后续文章会根据协议介绍相关命令。
2024-08-02 19:19:35
504
原创 【工具篇】华为VRP通用操作系统 —— 基础知识
华为VRP(Versatile Routing Platform)是华为公司数据通信产品的通用操作系统平台。它以IP业务为核心,采用组件化的体系结构,提供了丰富的功能特性,并且支持基于应用的可裁剪和可扩展性,从而使得路由器和交换机的运行效率大大增加。VRP平台支持多种网络协议和业务,如路由协议、QoS技术、VPN技术、安全技术等,并具备出色的数据转发能力。华为公司具有完全自主知识产权的网络操作系统可用运行多中硬件平台之上(路由器、交换机、防火墙)拥有一致的网络界面、用户界面和管理界面。
2024-08-02 19:06:35
1709
1
原创 [FreeRTOS 功能应用] 任务通知 功能应用
从串口可以看出,由于发送的数据使用覆盖的方式,所以代码中循环调用xTaskNotify函数发送时,会将数据进行覆盖。因此task2接收时只会接收都最后一个数值量。使用xTaskNotify()向指定task2任务发送通知,发送的数据使用覆盖的模式进行。使用xTaskNotifyWait()等待接收通知,接收数据成功后打印接收到的数值。
2024-07-13 09:24:06
478
原创 [FreeRTOS 内部实现] 任务通知
xTaskNotifyWait(): 允许任务等待接收通知,并可以设置在进入和退出时要清零的通知比特位。uint32_t *pulPreviousNotificationValue:更改前的通知值。xTaskNotify(): 向指定任务发送通知,并可选择如何更新接收任务的通知值。taskNOT_WAITING_NOTIFICATION:任务没有在等待通知。taskNOTIFICATION_RECEIVED:任务已经接收到通知。taskWAITING_NOTIFICATION:任务正在等待通知。
2024-07-13 07:21:36
680
原创 [FreeRTOS 基础知识] 任务通知 概念
实时操作系统(RTOS)的任务通知机制是一种用于任务间通信和同步的机制。在FreeRTOS中,任务通知允许一个任务向另一个任务发送通知,表明某个事件已经发生或者某些条件已经满足。这种机制特别适用于轻量级的同步需求,因为它不需要使用更重的互斥锁或信号量。任务通知包括一个32位的通知值,这个值可以是整数或者位掩码,具体含义由应用程序定义。任务可以等待特定的通知值或位掩码,以便在通知发生时采取相应的行动。每个任务都会自己的任务结构体TCB,任务C的TCB结构体中有两个成员,一个是val值,一个是state状态。
2024-07-08 21:34:27
459
原创 [FreeRTOS 功能应用] 事件组 功能应用
函数中通过osThreadDef 宏构建osThreadDef_t 结构体,名称os_thread_def_##name(## 表示字符拼接),结构体成员包括 :#name 任务名称;thread 任务处理函数;通过xEventGroupSetBits函数,设置 g_EventGroup 结构体中的事件状态标志位,表示task1执行完成。通过xEventGroupSetBits函数,设置 g_EventGroup 结构体中的事件状态标志位,表示task2执行完成。任务实现:task1完成后执行task2;
2024-07-06 21:22:17
867
原创 [FreeRTOS 内部实现] 事件组
考虑到第一种情况,多任务之间操作队列会相互影响,可以采取关闭调度器来解决,但是不能屏蔽掉中断中对队列的读写操作。如果只关闭调度器的话,中断对队列的操作同样会对正在的任务有影响。因此任务在对队列进行操作时,第一步一定是要关闭中断。第四参数 const BaseType_t xWaitForAllBits:等待的位是同时满足还是只要一个成立就满足(等待位是 与的关系 还是 或的关系 )第三参数 const BaseType_t xClearOnExit :在退出的时候是否对等待的位进行清除。
2024-07-06 20:28:08
666
原创 [FreeRTOS 基础知识] 事件组 概念
在实时操作系统(RTOS)中,事件组是一种用于任务间通信和同步的机制。事件组允许多个任务等待一个或多个事件的组合,当这些事件的组合满足特定条件时,任务可以被唤醒。
2024-07-06 17:40:31
331
原创 [FreeRTOS 功能应用] 互斥量 功能应用
函数中通过osThreadDef 宏构建osThreadDef_t 结构体,名称os_thread_def_##name(## 表示字符拼接),结构体成员包括 :#name 任务名称;thread 任务处理函数;priority 任务优先级;若低优先级获取到互斥锁没有释放之前,高优先级任务获取互斥锁失败后会提高低优先级的任务,等低优先级释放锁之后,高优先级才能获取到锁运行。将构建的osThreadDef_t 结构体传入osThreadCreate函数中,实际调用xTaskCreate函数创建任务。
2024-07-06 13:25:20
956
原创 [FreeRTOS 内部实现] 互斥量
根据上面的定义,可知创建互斥量本质就是创建队列。长度(第一个参数)为1,大小(第二个参数)为0。通过队列获取互斥量 函数与获取信号量 的方式是一样的。
2024-07-06 10:25:48
529
原创 [FreeRTOS 基础知识] 互斥量 概念
若此时中优先级任务B一直占用CPU资源运行,则低优先级任务C永远得不到机会释放信号量,从而高优先级任务A也永远获得信号量运行。此时低优先级任务C获得执行权限,运行并释放信号量sem,同时唤醒高优先级任务执行并恢复之前的优先级。3、在高优先级任务A运行过程中,由于低优先级任务C占用信号量资源,则获取信号量失败,会将任务挂起。2、在中优先级任务B运行过程中,高优先级任务A抢占CPU资源运行,中优先级任务B停止运行。4、高优先级任务A挂起后,中优先级任务B优先获取CPU使用权运行。互斥量比信号量多了个。
2024-07-06 09:08:28
359
原创 [FreeRTOS 功能应用] 信号量 功能应用
函数中通过osThreadDef 宏构建osThreadDef_t 结构体,名称os_thread_def_##name(## 表示字符拼接),结构体成员包括 :#name 任务名称;由于是二进制信号量,在释放send信号量后,空间中就存在一个信号量。这个信号量没有被取走之前,继续释放(发送)信号量就会失败。直到信号量被取走,触发等待的释放信号量任务。当连续发送时,数字大于1就会显示发送失败,这个任务放入队列中等候。两个任务Sender1负责释放信号量,一个任务Seceiver接收信号量。
2024-06-24 21:51:30
744
原创 [FreeRTOS 基础知识] 信号量 概念
信号量是一个抽象的数据类型,通常包含一个整数值以及一个等待该值变为正数的任务列表(也称为等待队列)。信号量的整数值代表了系统中某种资源的可用数量。在操作系统中信号量用于控制对共享资源访问的同步机制。它最初由荷兰计算机科学家Edsger Dijkstra提出,用于解决并发系统中的互斥和同步问题。简而言之,信号量是用来表示资源的个数。信号量核心就是个计数值。假如银行能办理业务的窗口只有5个,这里资源数count 指的就是窗口个数5。当窗口没有人办理业务时,count =5 空闲资源;
2024-06-24 20:52:35
936
原创 [FreeRTOS 功能应用] 互斥访问与回环队列 功能应用
thread 任务处理函数;:每个任务在创建时都会返回一个任务句柄( TaskHandle_t ),这个句柄可以用来唯一标识一个任务。可以在任务函数中使用 xTaskGetCurrentTaskHandle() 函数获取当前任务的句柄,然后与已知的任务句柄进行比较。在这个示例中, 使用 xTaskGetCurrentTaskHandle() 来获取当前任务的句柄,然后调用 pcTaskGetTaskName() 来获取任务名称,并将其打印出来。这样,每次任务执行时,都会打印出当前是哪个任务在运行。
2024-06-23 08:19:41
1037
原创 [FreeRTOS 内部实现] 互斥访问与回环队列
等待发布到此队列的阻塞任务列表。按优先级顺序存储。阻塞等待从此队列读取的任务列表。按优先级顺序存储。指向存储区的下一个空闲位置。指向将该结构用作队列时最后从其中读取队列项的位置。
2024-06-23 06:58:38
455
原创 [FreeRTOS 基础知识] 互斥访问与回环队列 概念
缓冲区本质上就是数组,假设这个缓冲区的长度为8,写缓冲区指针w刚开始在0的位置,每写一个val,指针w位置+(1%8),以此类推,最后的w+(8%8)。,假设有两个函数(func_A, func_B)都要修改a的值(a++),那么将a定义为全局变量a=0,main函数调用func_A();当有多个任务操作变a时,为了确保每个任务操作a期间不被其他任务所影响,就调用队列来做隔离,任务B要去读a的值时直接调用队列处理好的数据即可。第二个时间片段:任务B运行,读队列,没有得到a的值,将任务B休眠;
2024-06-23 06:40:30
728
原创 [FreeRTOS 内部实现] 创建任务 xTaskCreate函数解析
(16)STR r0, [sp, #0x190]: 将r0寄存器的值再次存储到栈指针sp地址偏移0x190的位置。(12)STR r0, [sp, #0x190]: 将r0寄存器的值存储到栈指针sp地址偏移0x190的位置。(10)STR r0, [sp, #0x00]: 将r0寄存器的值存储到栈指针sp地址偏移0的位置。(17)STR r0, [r4, #0x00]: 将r0寄存器的值存储到r4寄存器指向的地址。(11)LDR r0, [r4, #0x00]: 从r4寄存器指向的地址加载数据到r0。
2024-06-23 06:21:07
1519
原创 [FreeRTOS 基础知识] 保存现场与恢复现场
在[FreeRTOS 基础知识] 栈 与 汇编语言文章中解析了fun_c汇编函数,假设在执行fun_c函数的过程中产生高优先级的中断。如下图所示。此时刚从RAM的SP栈中获取到值保存到R0,发生中断。此时需要保存R0的值,这样当中断处理函数执行完之后回到此函数还知道R0的值是多少。这就是保存环境。通过RAM架构可知,在SOC上有R0~R15寄存器。汇编语言中可以看出,CPU当前所运行的环境就是这些寄存器构成的。当CPU发生中断、跳转、任务切换的时候,只要将这些寄存器的值保存下来。
2024-06-10 18:06:16
985
[ FreeRTOS ] 任务通知 功能应用
2024-07-13
[ FreeRTOS ] 事件组 功能应用
2024-07-06
FreeRTOS 互斥量 功能应用
2024-07-06
[FreeRTOS ] 信号量 功能应用
2024-06-24
[FreeRTOS ] 互斥访问与回环队列 功能应用
2024-06-23
【Jenkins工具系列 python文件】 通过钉钉API 发送消息资源
2024-05-23
Linux谨慎使用system函数以及对应解决方案
2024-05-07
STM32提高篇 (二) - 触摸校准
2023-11-11
STM32提高篇 (一) - LCD显示各种基础小功能实验
2023-11-11
Linux内核系统 panic log 记录
2023-09-01
STM32开发(八)STM32F103 SPI 通信(W25Q64JVSSIQ )代码
2023-08-22
STM32开发(七)STM32F103 I2C (SHT30温湿度传感器)通信代码
2023-08-21
STM32开发(六)STM32F103 RS485 Modbus通信代码
2023-08-09
STM32基础(五)STM32F103 CAN通信代码
2023-08-09
Jenkins 使用INJECTOR插件实现修改环境变量(亲测实用)
2023-08-09
STM32基础篇(三) STM32F103 显示 数码管显示
2023-08-02
STM32基础篇(四) STM32F103 片内资源 实时时钟RTC
2023-08-02
各种版本openJDK安装包(通用)
2023-08-01
STM32基础篇(二) 使用虚拟机 + VScode + STM32Cube 框架搭建 开发STM32
2023-07-30
STM32基础篇(一) - 使用STM32CUBE kail5 框架搭建 开发STM32
2023-07-30
图片取模工具 PCtoLCD2002软件
2023-06-09
input核心层对驱动层和事件层之间的框架建立流程图
2023-05-05
Linux Input 子系统框架 input-dev 、 input-handler、input-handle三结构体关系
2023-04-28
Linux Input 子系统框架
2023-04-28
热敏电阻采集温度 NTC 温度表(通用)
2023-04-07
flash写不固定长度数据函数思路流程图
2023-04-01
RK — 读写Vendor Storage区域工具
2022-07-08
Linux 文件系统切换脚本
2022-02-24
[ Linux Debian ] libmali安装包
2022-02-04
[ Linux RK IMX ]UART结构体关系图
2022-01-18
RGMII_Delayline_Kernel4.4.tar.gz
2022-01-13
GMAC tx rx delay动态调整补丁V2.0.rar
2022-01-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人