自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(96)
  • 收藏
  • 关注

原创 Centos7硬盘测速工具

在CentOS 7系统中,测试硬盘速度可以使用多种工具,包括hdparm、fio、dd等。

2024-11-08 18:18:37 666

原创 zynq启动和程序固化流程

FPGA的启动方式主要包含主动模式、被动模式和JTAG模式。

2024-07-10 21:41:47 1267

原创 zynq使用简单I/O对Flash进行读写测试

硬件环境:ALINX 7020ZYNQ的QSPI Flash 控制器有以下三种模式:I/O 模式、线性地址模式,以及传统 SPI 模式。

2024-07-10 17:04:10 1835 4

原创 AXI接口简介

AXI接口,全称为Advanced eXtensible Interface,是ARM公司推出的一种高性能、低成本、可扩展的高速总线接口。AXI接口是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)高级微控制器总线架构的一部分。2003年发布了AXI的第一版即AXI3.0(称为AXI3),2010年发布了AXI的第二版即AXI4.0(称为AXI4)。

2024-06-28 16:37:57 737

原创 SDK 程序卡在 AXI DMA 配置 (XAxiDma_CfgInitialize)的解决方法

在进行 AXI DMA 配置 时候代码一直卡在XAxiDma_CfgInitialize函数出不来,也没有打印报错。解决方法是,鼠标放在项目上右键打开Run as,打开Run Confiration查验下如下两项有没有勾选。

2024-06-27 16:45:41 405

原创 ZYNQ的异构通信

总的来说,ZYNQ开发中,对于PS端和PL端的数据交互可以采用多种方式,主要有BRAM,AXI DMA,DDR, 文件。BRAM主要适用于数据量较少,地址不连续,长度不规则的数据传输场景,AXI DMA适用于数据量较大的块状连续数据传输场景。同时可以采用读写文件来实现数据的交互。

2024-05-22 15:37:44 1248

原创 DDS和锁相环基本原理

DDS主要由相位累加器,ROM,DA转换模块,同步寄存器等模块组成。主要有相位控制字和频率控制字作为输入。时钟上升沿到来,加法器就将输入频率控制字与累加寄存器输出的相位数据相加,所得的结果又给到累加寄存器的输入端,每个时钟沿到来,将频率控制字进行线性相位的累加。相位累加器输出的数据是波形存储器ROM的相位的采样地址,与相位控制字结合,这样可以实现相位到幅度的转变,它的溢出频率就是DDS输出的信号频率。波形数据表ROM再经过DA模块将数字信号转为模拟信号输出。

2024-05-16 15:10:32 877

原创 vivado新版本兼容老版本,vitis classic兼容sdk教程

我们在ps_hello.sdk的文件夹找到src的源码文件夹,复制带建立的ps_hello.vitis文件夹目录下即可。回到vitis classic,点击XSA,点击browse,选择刚刚导出的XSA文件。选择存放在工程文件夹路径,点击next,最后点击finsh,等待生成。点击creat Application Project,点击next。选择硬件的XSA工程文件,这个可以从vivado生成。点击Yes,合并当前的目录架构。勾选要升级的IP核,点击升级。输入工程名点击next。

2024-05-10 21:49:44 2507

原创 常见扩频系统的基础概念和模型

扩频系统是一种通信技术,它通过将信号的频谱扩展到一定程度来实现传输,这种系统的设计和实现涉及到多种不同的方法和技术。扩频系统的主要特点和好处包括:抗干扰能力强:由于信号被扩展到较宽的频带上,单位带宽内的功率降低了,这减轻了噪声和其他干扰的影响。低截获率:信号的功率频谱密度低于噪声水平,使得信号难以被检测和截获,适用于需要隐蔽通信的场合。码分多址能力:扩频技术易于实现码分多址(CDMA),允许多个用户在同一宽带频道上使用不同的码进行通信,提高了频谱的使用效率。

2024-05-10 20:33:11 1636

原创 linux的并发和竞争处理(最全)

在 Linux 系统中,处理并发和竞争的问题是非常重要的,特别是在多线程编程和多进程编程中。

2024-02-21 10:40:28 1207

原创 ARM汇编基础

介绍ARM汇编的基础知识

2024-02-21 10:12:57 1145

原创 常见的实时操作系统(RTOS)和主要特点

适用场景:Windows Embedded Compact广泛应用于嵌入式系统、自动化设备、移动设备、医疗设备等领域,尤其适合需要Windows环境的实时应用。适用场景:RTOS被广泛应用于工业控制、实时数据采集、嵌入式系统、自动化设备、网络设备等领域,尤其是对实时性能和可靠性要求较高的场景。特点:ThreadX是一款小型、快速的实时操作系统,具有小内核、低功耗、高性能等特点。适用场景:QNX广泛应用于汽车信息娱乐系统、工业自动化、医疗设备、航空航天、铁路信号系统等对安全性和可靠性要求较高的领域。

2024-02-20 23:37:08 1452

原创 嵌入式linux开发之LAN8720A网络驱动

I.MX6ULL 内核集成了两个 10/100Mbit/S 的网络 MAC,符合 IEEE802.3-2002 标准,MAC层支持双工、半双工局域网。在编写驱动的时候其实并不需要关注 ENET外设的具体内容,因为这部分驱动是 SOC 厂商编写的,重点关注的是更换 PHY 芯片以后需要调整的地方。PHY 芯片寄存器地址空间为 5 位,地址 0-31 共 32 个寄存器,IEEE 定义了 0-15 这 16 个寄存器的功能,16~31 这 16 个寄存器由厂商自行实现。

2024-02-20 23:24:58 1538

原创 用户空间与内核通信(二)

介绍了系统调用(System Call),内核模块参数和sysfs,sysctl函数方式进行用户空间和内核空间的访问。本章节我将介绍使用netlink套接字和proc文件系统实现用户空间对内核空间的访问。

2024-02-19 22:29:44 672

原创 用户空间与内核通信(一)

在Linux中,内核空间与用户空间是操作系统中的两个主要部分,它们有着明显的区别和不同的功能。

2024-02-19 22:18:59 1355

原创 docker简介

Docker是一种用于开发、交付和运行应用程序的开放平台,通过使用容器技术,可以更加高效地打包和部署应用程序。容器化技术: Docker使用容器化技术,允许开发人员将应用程序和其依赖项打包到一个称为容器的轻量级、可移植的环境中。容器提供了一种隔离的执行环境,使应用程序可以在任何环境中以相同的方式运行,无论是开发、测试还是生产环境。镜像: Docker镜像是一个只读的模板,包含了运行应用程序所需的所有文件和依赖项。镜像可以用来创建容器实例。

2024-02-19 15:31:46 1158

原创 Linux-RT特点与简单应用

Linux-RT是指Linux Real-Time(实时)的简称,它是针对实时性能优化的Linux内核版本。传统的Linux内核并不是专为实时性设计的,因此在一些对实时性要求较高的应用场景下,可能无法满足实时性要求。Linux-RT通过对Linux内核进行调整和优化,以提供更可预测、更低延迟的实时性能。Linux-RT的主要特点和优势包括:实时性能: Linux-RT对内核进行了调整和优化,使其具有更可预测、更低延迟的实时性能。

2024-02-19 13:42:03 2674

原创 嵌入式调试工具之GDB

在单片机开发中,我们可以通过集成式的IDE 来进行调试,比如 MDK、IAR 等。GDB 工具是 GNU 项目调试器,基于命令行使用。和其他的调试器一样,可使用 GDB工具单步运行程序、单步执行、跳入/跳出函数、设置断点、查看变量等等,它是 UNIX/LINUX 操作系统下强大的程序调试工具。GDB 支持多种语言,包括 Ada、汇编、C/C++、D、Fortran、GO、Objective-C、OpenCL、Modula-2、Pascal 和 Rust。

2024-02-18 22:46:49 597

原创 嵌入式开发之SQLite数据库

SQLite是一种轻量级的嵌入式关系型数据库管理系统(RDBMS),它是一个开源项目,实现了自包含、零配置、无服务器的特性。

2024-02-18 22:16:58 1431

原创 视频接入协议之MIPI

是一种用于移动设备的串行接口标准,旨在提供高速、低功耗、低成本的接口解决方案。MIPI联盟是一个全球性的组织,致力于开发、推广和管理MIPI标准。MIPI接口包括了多种协议和规范,其中最常见的是MIPI D-PHY和MIPI CSI-2。

2024-02-18 17:48:04 1962

原创 图像接入协议之LVDS

LVDS (Low-Voltage Differential Signaling) 是一种高速串行通信协议,用于在电子设备之间传输数据。它通常用于连接液晶显示屏、摄像头、显示器、模拟数字转换器(ADC)等设备。

2024-02-18 17:39:07 2446

原创 嵌入式linux开发之阻塞IO

在Linux中,阻塞IO(Input/Output)是一种同步I/O模型,当进程进行I/O操作时,如果数据没有准备好或者缓冲区没有空间,进程会进入睡眠状态,直到数据准备好或缓冲区有空间为止。这种模型下,进程会一直等待I/O操作完成,期间不会执行其他任务。阻塞IO是最通用的I/O类型,所有套接字默认情况下都是阻塞的。在阻塞IO模型中,输入操作如read、readv、recv、recvfrom和recvmsg等,如果缓冲区没有数据可读,该进程会进入睡眠状态,直到有数据可读时才被唤醒。

2024-02-17 18:28:40 367

原创 嵌入式linux驱动开发篇之设备树

设备树(Device Tree)是一种用于描述嵌入式系统硬件组件及其连接关系的数据结构。它被广泛用于嵌入式 Linux 系统,尤其是针对使用多种不同架构和平台的嵌入式系统。它是一种与硬件描述相关的中间表示形式,将硬件信息抽象成一种可移植的格式,使得操作系统和引导加载程序能够在不同的硬件平台上运行,而无需硬编码特定的硬件配置信息。树状结构:设备树是一个层次结构,由节点和属性组成。节点可以有子节点,形成树状结构。

2024-02-17 17:57:45 1484

原创 配置ARM交叉编译工具的通用步骤

例如,如果你下载的是arm-linux-gnueabi-5.4.0.tar.xz,你可以使用xz --decompress arm-linux-gnueabi-5.4.0.tar.xz命令来解压。其中,<具体交叉编译器前缀>是具体的交叉编译器工具链的前缀,例如arm-linux-gnueabi-。1.安装ARM交叉编译器工具链:ARM交叉编译器工具链是专门用于ARM架构的编译器。因此,在实际操作时,最好参考你所使用的工具链的官方文档或相关教程,以确保正确配置和使用ARM交叉编译工具。

2024-02-09 12:11:02 1106

原创 linux下的多线程通信

在Linux下,多线程通信主要涉及共享内存和线程间同步。因为Linux的线程库(POSIX线程库,或称为pthreads)允许线程共享进程的地址空间,所以线程间可以直接读写共享的内存区域来实现通信。然而,由于多个线程可能同时访问和修改共享数据,因此需要使用同步机制来避免数据竞争和不一致。

2024-02-08 23:38:35 835

原创 linux下的多进程通信

在Linux下,多进程通信(Inter-Process Communication, IPC)是操作系统提供的一种机制,允许不同的进程之间交换数据或同步操作。Linux提供了多种IPC机制,每种机制都有其特定的使用场景和优缺点。

2024-02-08 13:52:05 447

原创 OpenSSL库,SSL协议,TLS协议

OpenSSL是一个强大的安全套接字层密码库,包含主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。OpenSSL由两个主要组件组成:OpenSSL库和OpenSSL工具。OpenSSL库是一个软件开发包(SDK),包含了SSL协议、各种加密算法、数字签名以及相关的应用程序。它提供了一套丰富的函数接口,使得开发者能够在自己的应用程序中方便地实现SSL加密通信、数字签名、数据压缩等功能。

2024-02-08 13:50:18 1288

原创 数据库简介

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。同时,数据库也是一个按数据结构来存储和管理数据的计算机软件系统,其内部包含保管数据的“仓库”以及管理数据的方法和技术。

2024-02-07 22:02:12 404

原创 opencv入门讲解

OpenCV是Open Source Computer Vision Library的缩写,是一个基于开源发行的跨平台计算机视觉库。它由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令, 如今也提供对于C#、Ch、Ruby、GO的支持。

2024-02-07 10:35:58 501

原创 linux编程常见的锁(互斥锁、读写锁、自旋锁等)

在Linux编程中,常见的锁(Lock)机制用于保护共享资源,防止多个线程或进程同时访问同一资源,从而导致数据不一致或其他问题。

2024-02-07 10:35:29 535

原创 嵌入式linux同步原理详解与实现思路

互斥锁是最简单的同步机制之一,用于确保在任何时候只有一个线程可以访问某个特定的资源或代码段。当一个线程需要访问受保护的资源时,它会尝试获取互斥锁。如果锁已经被其他线程持有,则该线程会被阻塞,直到锁被释放。这种机制可以防止多个线程同时修改共享资源,从而避免数据不一致的问题。/*在这个例子中,我们有两个线程:一个用于增加共享资源,另一个用于减少共享资源。共享资源是一个整数shared_resource,初始值为0。

2024-02-07 10:34:47 920

原创 最全软件系统架构演变!

软件系统架构经过了重重的演变。总体上经历了一下几个阶段,单体架构,应用服务器和数据库服务器分离,应用服务器集群,数据库压力变大读写分离,微服务架构和分布式架构。

2024-02-06 19:28:13 1019

原创 Linux和FreeRTOS的主要区别

Linux和FreeRTOS的主要区别体现在设计目标、应用场景、特性以及复杂性等方面。Linux是一款开源的、基于UNIX的操作系统内核,它旨在为用户提供一款可供免费使用的类UNIX操作系统。Linux是一个完整的操作系统内核,可以运行在桌面、服务器、移动设备等多种平台上,支持多用户、多任务、多线程以及分时和实时处理等功能。它拥有丰富的功能,包括GUI、驱动框架、shell等,并允许用户方便地使用电脑和计算机资源。而FreeRTOS是一款实时操作系统内核,主要用于嵌入式系统和实时系统。

2024-02-06 17:05:08 2684

原创 linux应用编程开发常见问题和处理思路

当然,在实际的生产环境中,还需要考虑更多的细节,如错误处理、资源管理、协议实现等。事件驱动:使用事件驱动的非阻塞IO模型,如select/poll/epoll/kqueue等,可以减少线程数目和上下文切换的开销,同时能够处理大量并发连接。其他并发模型:如Go语言中的Goroutines,Erlang语言中的Actor模型等,都是设计上为并发而生,能够实现高性能的并发处理。协程:协程是一种用户态的轻量级线程,可以在用户空间进行上下文切换,拥有极低的切换成本,并能够在单线程内实现高并发。

2024-02-06 15:22:39 778

原创 嵌入式linux驱动开发之网络设备驱动

Linux网络设备驱动是Linux内核中的一个重要组成部分,它负责网络设备的底层数据传输和设备控制。与字符设备驱动和块设备驱动相比,网络设备驱动的特点和功能如下:首先,网络设备驱动不再是对文件进行操作,而是通过网络接口struct net_device来实现。这个接口为网络设备提供了统一的数据结构和操作接口,使得不同的硬件可以在软件层次上实现统一。应用程序不能直接访问网络驱动程序,只能通过网络子系统与它交互。

2024-02-06 14:51:29 862

原创 最全AI工具汇总四(文本生成,图画,语音,生活助手,AI翻译)

上传PDF文件并获得答案。

2024-02-06 11:25:27 2117

原创 最全AI工具汇总三(文本生成,图画,语音,生活助手,AI翻译)

根据你的需求快速生成提示词。

2024-02-06 11:24:53 2915

原创 最全AI工具汇总二(文本生成,图画,语音,生活助手,AI翻译)

以下内容收集整理自网络,便于学习。

2024-02-05 10:13:04 944

原创 最全AI工具汇总一(文本生成,图画,语音,生活助手,AI翻译)

国内免费使用的Chatgpt 3.5。

2024-02-05 10:12:39 1665

原创 MQTT在linux下服务端和客户端的应用

MQTT(Message Queuing Telemetry Transport)是一种轻量级、开放标准的消息传输协议,设计用于受限设备和低带宽、不稳定网络的通信。

2024-02-04 18:36:48 1146

modbus协议标准V1-1b3

工控领域常用协议Modbus标准文档

2024-02-04

空空如也

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

TA关注的人

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