自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

动感超人_Crush

你好哇李银河_

  • 博客(227)
  • 资源 (1)
  • 收藏
  • 关注

原创 WindTerm软件的本地模式和远程模式

如果你需要在终端模拟器中高效编辑文本,频繁使用本地系统快捷键,本地模式会更方便。若你大部分时间在与远程服务器交互,希望保持与远程环境的操作习惯一致,远程模式则是更好的选择。用户可以在WindTerm的设置中根据需要切换这两种模式,以便更好地适应不同的工作场景。

2024-06-21 11:07:20 453

原创 HP/ACP/GP接口说明(PS端同PL端通信)

指的是Advanced eXtensible Interface(先进可扩展接口)系列总线协议,它是ARM AMBA(Advanced Microcontroller Bus Architecture)架构的一部分,设计用于高性能、高数据吞吐量的系统设计。AXI协议定义了一套标准,使得系统中的不同组件(如处理器、内存控制器、外设等)可以通过统一的接口规范进行通信。AXI总线协议家族包括但不限于AXI4、AXI4-Lite和AXI4-Stream等,分别针对不同应用场景。

2024-05-22 18:04:10 583

原创 程序运行暂停控制(pause 函数和 sleep 函数)

在C语言中,pause()和sleep()是两个用于控制程序执行流程的函数,它们可以让程序暂停执行一段时间,但它们的特性和用途有所不同。

2024-05-20 18:06:34 1011

原创 socket接口定义范围及操作

Socket接口的定义旨在提供一种跨平台的网络编程模型,可以在Unix/Linux、Windows、macOS等多种操作系统上使用。协议无关性:虽然经常与TCP/IP协议族关联,但Socket接口同样支持其他网络协议,如UDP、ICMP等。通信模式:支持点对点的TCP连接(面向连接的、可靠的)、广播或多播的UDP通信(无连接的、可能不可靠的)。编程模型:提供同步(阻塞和非阻塞)和异步通信模型,适应不同应用场景的需求。API标准化。

2024-05-14 13:36:50 425

原创 为什么uboot/pmon会随机修改开发板的mac地址

如果板卡上的EEPROM(Electrically Erasable Programmable Read-Only Memory)中没有存储MAC地址,且U-Boot环境变量中也没有配置MAC地址,并且CONFIG_NET_RANDOM_ETHADDR配置选项被启用,那么U-Boot会在启动时随机生成一个MAC地址供设备使用。在开发和调试阶段,如果尚未为设备分配固定的MAC地址,随机生成MAC地址可以方便地进行多台设备的测试,而无需手动配置每台设备的MAC地址。

2023-12-20 10:36:11 277

原创 优先级翻转场景设计及实现(C语言实现)

【代码】优先级翻转场景复现涉及(C语言实现)

2023-10-24 20:40:52 208

原创 关于“文心一言”,ChatGPT如是说

关于文心一言,ChatGPT如是说

2023-03-17 09:55:13 892 1

原创 串口的RAW模式与非RAW模式

串口的RAW模式与非RAW模式

2023-03-11 15:04:23 715

原创 SylixOS下IO系统—相关数据结构初始化及调用详解(文件描述符表、文件结构表、文件节点表、设备节点表、内核驱动表等)

文件描述符表、文件结构表、文件节点表、设备节点表、内核驱动表等初始化及关联流程

2023-03-10 14:53:34 820

原创 C语言打印输出进度条

个人学习记录

2023-01-31 09:47:41 555

原创 文件描述符表、文件结构表和文件节点(SylixOS 学习笔记-更新中)

文件描述符、文件结构、文件节点等相关部分,个人学习笔记(完善中)

2022-12-22 16:43:10 1226

原创 SylixOS 中断底半部(笔记)

个人笔学习记

2022-12-13 13:42:59 260

原创 进程间通信

SylixOS进程间通信

2022-10-18 14:29:03 174

原创 PRP协议运行原理及使用说明

文章目录1、PRP协议运行原理2、PRP协议帧格式3、PRP协议说明1、PRP协议运行原理PRP协议是工作在终端设备上的冗余协议,因此PRP冗余是一种节点冗余方式。一个终端节点被连接到两个相互独立且网络拓扑结构相同的网络中,同时这两个网络并行运行。下图所示为一个由两个交换网络组成的一个冗余网络,这个网络的拓扑结构是任意的,比如线型、环型、星型等。两个网络在数据链路层具有相同的协议,但是允许它们在性能和传输时延上有所不同。两个网络之间没有直接连接,因此如果其中一个网络发生了故障,不会对另外一个造成影

2022-04-29 14:32:39 6310

原创 一维数组几个地址/指针 相关的符号

下面以array[10] = {0};为例,讨论array、array[0]、&array[0]、&array几个符号的含义。array:有两层含义,一是数组名,使用场景像sizeof(array);二是表示第一个元素的首地址,此时等价于&array[0],为常量值。 array[0]:表示数组第一个元素空间,可以读操作也可以写操作。 &array[0]:表示数组第一个元素的地址,作为常量值只能进行读操作。 &array:表示数组的首地址,是一个地址常量,

2022-04-29 14:13:25 310

原创 操作系统的内存管理方式

动态空间自动管理:栈栈内存的开辟和释放是完全自动化的,栈空间主要为函数的局部变量开辟空间。函数运行时,变量空间自动开辟,函数结束时,空间自动释放,空间可读可写。手动管理:堆堆内存空间管理靠手动实现,需要时调用函数接口手动开辟,不需要时也必须调用相应的函数接口将其释放,空间可读可写。静态空间静态区的特点是,程序在编译时就已经决定好了这些内存空间的布局,一旦程序运行,就会根据编译器的布局在静态区中开辟空间。在程序运行的过程中,既不能在静态区重新开辟空间也不能释放静态区已有的空间,只有在整个程序

2022-03-18 17:37:31 388 1

转载 CPU的字节序——大端小端模式详解

1. 什么是大端,什么是小端:所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。2.为什么会有大小端:为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的long型(要看具体的编译器),另外,对于位数大于8位的处理器

2022-03-07 11:35:28 2415 1

原创 串口流控(CTS/RTS)使用详解

1.流控概念 在两个设备正常通信时,由于处理速度不同,就存在这样一个问题,有的快,有的慢,在某些情况下,就可能导致丢失数据的情况。如台式机与单片机之间的通讯,接收端数据缓冲区已满,则此时继续发送来的数据就会丢失。 流控制能解决这个问题,当接收端数据处理不过来时,就发出“不再接收”的信号,发送端就停止发送,直到收到“可以继续发送”的信号再发送数据。因此流控制可以控制数据传输的进程,实现收发双方的速度匹配,防止数据的丢失。PC机中常用的两种流控制是硬件流控制(包括RTS/CT...

2021-11-12 14:53:02 53905 4

转载 SylixOS中的动态内存分配 --- 内核堆与系统堆实现原理详解

实现原理内核堆与系统堆通过内存堆操作库实现,系统会定义两个内存堆指针全局变量,分别指向内核堆和系统堆,接口调用时即通过这两个指针访问内核堆和系统堆。内核堆和系统堆全局指针定义__KERNEL_EXT PLW_CLASS_HEAP _K_pheapKernel; /* 内核堆 */__KERNEL_EXT PLW_CLASS_HEAP _K_pheapSystem;

2021-10-28 11:32:33 467

转载 SylixOS中的动态内存分配 --- 内核堆与系统堆

概念内核堆(kernel heap)与系统堆(system heap)是SylixOS原生的内存堆模块,用于内核和驱动的动态内存分配。大多数情况下系统堆是等同于内核堆的。内核堆与系统堆通过内存堆操作库实现,以宏函数为接口。接口内核堆接口#define __KHEAP_ALLOC(stNBytes) _HeapAllocate(_K_pheapKernel, stNBytes, __func__)#define __KHEAP_ZALLOC(stNByt

2021-10-28 11:27:27 457

转载 SylixOS ARM BSP 第三篇【bspInit.c】

此篇博客为 SylixOS ARM BSP 编写连载的第三篇,主要介绍 bspInit.c 文件具体实现。bspInit.c 为 BSP 操作系统初始化部分代码,通常由 startup.S 初始完基本处理器参数后调用,下面以 S3C2440A 处理器为例,逐块介绍bspInit.c 代码。SylixOS ARM BSP第二篇中提到startup.S 初始化完成会将会调用bspInit() 函数,此函数用于初始化操作系统,并开始多任务调度。intbspInit(void){...

2021-10-28 11:20:39 451

转载 SylixOS ARM BSP 第二篇【startup.S】

此篇博客为 SylixOS ARM BSP 编写连载的第二篇,主要介绍 startup.S 文件具体实现。startup.S 为 BSP 启动代码入口,通常由 bootloader 装载完 SylixOS 镜像后调用,下面以 S3C2440A 处理器为例,逐块介绍startup.S 代码。#ifndefASSEMBLY#defineASSEMBLY1#endif此段代码告知后面引用的头文件,此文件为汇编程序。#include<arch/assembler.h>...

2021-10-28 11:11:44 554

转载 SylixOS BSP 第一篇【文件结构】

SylixOS BSP 分为两大部分:基础支持程序 驱动程序其中【基础支持程序】主要是实现系统的启动流程与硬件板最基础的功能实现,例如中断控制器管理,TICK 定时器管理,初始内存映射管理等等。【驱动程序】主要是实现操作系统对外部设备的管理。此篇博客主要介绍SylixOS BSP 文件的构成。SylixOS BSP 可通过 RealCoder(SylixOS 集成开发环境,可点击这里申请下载)创建,创建出来的 BSP 模板分为三个文件夹:bsp、driver、user。bsp 文件夹下的..

2021-10-28 11:06:10 409

原创 ioctl函数获取/修改mac地址(C语言实现)

直接上代码吧,亲测可用#include <stdio.h> /* for fprintf etc */#include <net/if.h> /* for struct ifreq */#include <net

2021-10-09 14:26:53 1605

原创 消息队列和任务队列的区别

任务队列传递的是"任务",消息队列传递的是"消息"。任务队列可以说是消息队列的二次开发。消息队列更侧重于消息的吞吐、处理,具有有处理海量信息的能力。另外利用消息队列的生产者和消费者的概念,也可以实现任务队列的功能,但是还需要进行额外的开发处理。 任务队列则提供了执行任务所需的功能,比如任务的重试,结果的返回,任务状态记录等。虽然也有并发的处理能力,但一般不适用于高吞吐量快速消费的场景。其实任务队列和远程函数调用很像,是通过利用消息队列传递任务信息。消息队列是一个可以存放多则消息的 FIFO(先入.

2021-09-07 15:47:48 1138

原创 ROM和硬盘的关系(ROM-RAM-NANDFLASH-HDD-SSD)

ROM是只读存储器(Read-Only Memory),是计算机内部存储器中的一种,而硬盘是外部存储器,所以对于大学学子来说,考试时你如果把这两个混为一种东西绝对是错误的,当然,如果出选择题让你选,那么BIOS应该是用到ROM的那个。那么ROM究竟是干什么的,ROM和硬盘是否就没有任何关系呢?这就要从其发展历程说起,早期,乃至现在,我们的主要存储介质都是磁性存储,也就是磁盘,分成硬盘和软盘两种,硬盘不太适合做移动存储,因为我们知道硬盘磁头容易损失,不耐摔,而且体积较大,就算是缩小容量仍然很难缩小其体积,软盘

2021-09-07 13:36:28 6640 3

原创 POSIX接口man手册下载安装失败 Unable to locate package manpages-posix-dev

问题描述:posix man手册介绍安装失败,提示如下Unable to locate package manpages-posixUnable to locate package manpages-posix-dev解决方案:

2021-09-06 17:59:14 879

原创 linux下C语言开发使用man手册安装

linux下C语言开发使用manpages手册安装列表:manpages 包含 GNU/Linux 的基本操作:$ sudo apt-get install manpagesmanpages-dev 包含 GNU/Linux 的基本操作API:$ sudo apt-get install manpages-devmanpages-posix 包含 POSIX 所定义公用程序的方法:$ sudo apt-get install manpages-posixmanpages-posix-de.

2021-09-06 17:47:57 622

原创 中断的一些理解

中断:中断是一种硬件机制,用于通知CPU“有个异步事件产生了”。中断一旦被识别,CPU保存部分或全部现场(context),即部分或全部寄存器的值,跳转到专门的子程序中,称为中断服务子程序(ISR)。中断服务子程序做事件处理,处理完成后程序回到:在前后台系统中,程序回到后台系统; 在不可抢占内核系统中,程序回到被中断的任务; 在可抢占内核系统中,运行就绪态中优先级最高的任务;中断使得CPU可以在事件发生时才予以处理,而不必让微处理器不断查询(polling)是否...

2021-08-26 21:01:57 814

原创 前/后台系统

早期的嵌入式系统中没有操作系统的概念,程序员编写嵌入式程序通常直接面对裸机及裸设备。在这种情况下,通常把嵌入式程序分成两部分,即前台程序和后台程序。应用程序是一个无限的循环,循环中调用相应函数完成相应的操作,这部分可以看成后台行为为(background)。 中断服务程序处理异步事件,这部分可以看成前台行为(foreground)。 后台程序也可以叫做任务级程序。前台程序也叫中断级程序或者事件处理级程序。 前台程序通过中断来处理事件;后台程序则掌管整个嵌入式系统软、硬...

2021-08-26 14:04:01 677

原创 实时系统基本概念介绍(持续更新中)

资源:任何被任务所占用的实体都可以称为资源。 资源可以是具体的文件、输入/输出设备,也可以是一个变量、一个结构或一个数组。共享资源:可以被一个以上的任务使用的资源叫做共享资源。为了防止数据被破坏,每个任务在使用共享资源时必须独占该资源,这叫做互斥。代码临界区:代码临界区也称为临界段,指处理时不可分割的代码。 临界区的代码开始执行,不允许任何中断打入,因此在进入临界区之间必须关中断,临界区代码执行完之后要立即把中断打开。任务:一个任务就是一个线程,一个应用程序的实现可能会包含多个任务

2021-08-12 15:29:02 563

原创 win键失效、win+e、win+r等及桌面左下角开始点击无响应

最近电脑待机一段时间后出现桌面左下角"开始"图标点击没有反应,win+r、win+e等相关键也没有反馈,桌面显示也不正常。可能是因为最近有修改系统用户名称,还改了一些其他设置导致,目前没有找到原因,这里先将出现问题后的解决办法描述一下,看到这里的大佬们如果知道原因或者根本解决方法可以评论告诉我一下,先行谢过啦 (ˉ▽ˉ;)解决方法:ctrl+shift+esc打开任务管理器(或者ctrl+alt+del然后点任务管理器),见下图; 点击菜单栏的详细信息,列表应该可以找到一个或者和多个...

2021-07-28 14:44:19 5934

原创 SylixOS设备驱动

驱动简介设备驱动是最底层的、直接控制和监视各类硬件的部分,它们的职责是隐藏硬件的具体细节,并向其他部分提供一个抽象的、通用的接口,设备驱动是内核空间的一部分,其运行在内核态下。 按照硬件设备的具体工作方式,读写设备的寄存器,完成设备的轮询、中断处理、DMA 通信,进行物理内存向虚拟内存的映射等,最终让通信设备能收发数据,让显示设备能显示文字和画面,让存储设备能记录文件和数据。 在BSP工程将驱动静态的和内核编译在一起(生成.elf / .bin等文件),为了减小编译出的镜像大小,可以将驱动

2021-07-28 13:39:55 462

转载 OSI 七层模型讲解

OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 。完成中继功能的节点通常称为中继系统。在OSI七层模型中,处于不同层的中继系统具有不同的名称。一个设备工作在哪一层,关键看它工作时利用哪一层的数据头部信息。网桥工作时,是以MAC头部来决定转发端口的,因此显然它是数据链路层的设备。具体说:物理层:网卡,网线,集线器,中继器,调制解调器数据链路层:网桥,交换机网络层:路由器网关工作在第四层...

2021-07-28 13:39:11 346

原创 32位与64位系统C语言基本数据类型的字节数

基本数据类型的字节数对比 数据类型 说明 32位字节数 64位字节数 取值范围 bool 布尔型 1 1 true, false char 字符型 1 1 -128 ~ 127 unsigned char 无符号字符型 1 1 0 ~ 255 short 短整型 2 2 -32768 ~ 32767 unsigned short 无符号短整型

2021-07-08 16:37:51 1610

原创 计算机网络的性能指标(学习总结)

速率比特(bit)是计算机中数据量的单位,也是信息论中使用的信息量的单位,一个比特就是二进制数字中的一个 1 或 0。 速率即数据率(data rate)或比特率(bit rate)是计算机网络中最重要的一个性能指标。速率的单位是 b/s,或kb/s, Mb/s, Gb/s 等 速率往往是指额定速率或标称速率。...

2021-07-08 15:54:11 756

原创 实体、协议、服务和服务访问点

实体(entity) 表示任何可发送或接收信息的硬件或软件进程。 协议是控制两个对等实体进行通信的规则的集合。 在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。 要实现本层协议,还需要使用下层所提供的服务。 本层的服务用户只能看见服务而无法看见下面的协议。 下面的协议对上面的服务用户是透明的。 协议是“水平的”,即协议是控制对等实体之间通信的规则。 服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。 同一系统相邻两层的实体进行交互的地方,称为服务访问点 SAP...

2021-06-01 20:13:53 995

原创 计算机网络的性能指标(学习记录)

速率、带宽、吞吐量、时延(delay 或 latency)、利用率、时延与网络利用率的关系

2021-06-01 13:43:00 186

原创 应用程序执行脚本---指定循环次数及运行时间(C语言实现)

目录示例说明 :代码实现:运行结果:使用说明 :使用举例: /apps/test/test 5 /apps/app/app 2/apps/test/test 是运行该应用程序 5 是循环次数 /apps/app/app 是被循环程序 2 是延时2秒代码实现:

2021-05-15 17:53:35 1687

原创 TCP服务器连接多客户端(C语言实现)

目录思路:逻辑设计:代码实现:思路:在服务端客户端T一对一TCP的基础上增加几条通信即可,要求各个连接可同时进行通信因此使用多线程。主线程在listen实现后,使用一个 for 循环一直循环等待客户端的连接请求,将每次连接标记(sockFd)保存作为开启检测(检测条件可修改,我写的这个检测貌似也没啥用(▼ヘ▼#))。每次连接都会开启一个线程用于和客户端的通信(也是使用 for 循环进行数据的接收、处理、发送),数据接收使用阻塞等待。通信的具体实现,在开发板上部署运行下方..

2021-05-13 21:04:40 9826 20

win7在线升级win10(微软官方升级包)

解压后是exe文件,打开即可在线下载升级win10,微软官方升级程序,个人保存使用。竟然还要50字 害。。。。。

2020-07-27

空空如也

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

TA关注的人

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