- 博客(821)
- 资源 (17)
- 收藏
- 关注
原创 Linux通信IPC随笔
名字: HLS大神 QQ:331908961**功能:Linux内核间任意通信实现**#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#include <unistd.h>#include <string.h>#include <stdio.h>typedef struct MSG
2021-03-26 11:28:26 645 3
原创 嵌入式Linux系统中GPIO实验详解
struct gpio_desc *gpiod_get是Linux内核中用于获取GPIO描述符函数。释放GPIO描述符gpiod_put()函数是Linux内核中用于释放GPIO描述符资源的函数。该函数的作用是获取GPIO描述符所代表的GPIO的方向。通过该函数,可以确定GPIO是配置为输入还是输出。
2024-11-02 10:46:20 270
原创 嵌入式linux中HTTP协议原理基本分析
HyperTextTransferProtocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。
2024-11-02 09:29:25 229 2
原创 嵌入式linux系统中设备树综合用法实现
设备树的概念、由来和使用。DTS, 设备树就像C语言一样,它是一个文本文件,有自己的语法格式主要用于描述设备信息,设备驱动可以读取这些信息。1. DT(Device Tree),用于描述一个产品(开发板)的设备信息。包括:cpu数量,内存,总线,链接的外设(i2c-mpu6050),中断(按键中断),gpio,时钟等等。2. DTS(Device Tree Source) -> 通过DTC(Device Tree Compiler)编译成 ->
2024-11-01 00:08:49 14
原创 嵌入式C语言中VT100特殊符号实现
大家好,今天主要给大家分享一下,C语言中的VT100实现。 vt100 是⼀个古⽼的终端定义,⽬前⼏乎⼤部分的终端都兼容这种终端。VT100 控制码是⽤来在终端扩 展显示的代码。所有的控制符全部以 \ 033 打头 (即 ESC 的 ASCII 码),⽤输出语句来输出,可以输 出不同颜⾊的字符。在 C 语⾔程序中,⼀般⽤ printf 来输出 VT100 的控制字符。 基本的控制字符如下:第二:实例代码实现virtual-machine:~/work/ddd$
2024-10-28 21:50:18 56
原创 嵌入式C++中虚函数以及基本特性实现
以往所学习的运算符只能进行基本的数据类型运算符, 无法实现 两个字符串的相加 , 两个类的相加,两个结 构体的相加。这时候我们就可以利用 c++ 新增的运算符 重载的方法赋予运算符新的功能实现这些数据的运算。动态多态:在程序 《运行》的时候,才能确定执行的状 态。1.当一个函数被声明为该类的友元函数时,该函数就不 属于类中的成员函数!3.通过基类 的指针 或 引用,指向派生类,并调用重写 的方法。一个对象,作用于不同的事物,所以得到的结果不一样。3.虚表的地址,永远都在对象空间的最前面。
2024-10-20 16:43:22 191
原创 嵌入式Linux系统中POSIX信号量基本实现
这种有名信号量的名字由类似“/somename”这样的字符串组成,注意前面有一个正斜杠,这样 的信号量其实是一个特殊的文件,创建成功之后将会被放置在系统的一个特殊的虚拟文件系 统/dev/shm 之中,不同的进程间只要约定好一个相同的名字,他们就可以通过这种有名信号量来相 互协调。值得一提的是,有名信号量跟 system-V 的信号量都是系统范畴的,在进程退出之后 他们并不会自动消失,而需要手工删除并释放资源。
2024-10-15 21:23:29 65
原创 嵌入式中实现电子词典的方法与现象
用户注册和登录验证服务器端将用户信息和历史记录保存在数据库中。客户端输入用户名和密码,服务器端在数据库中查找、匹配,返回结果。单词在线翻译。根据客户端输入的单词在字典文件中搜索。历史记录查询。
2024-10-13 16:40:45 38
原创 嵌入式数据结构中树与查找方法实现
Tree)是nn≥0)个节点的有限集合T,它满足两个条件有且仅有一个特定的称为根Root的节点其余的节点可以分为mm≥0)个互不相交的有限集合T1T2……Tm,其中每一个集合又是一棵树,并称为其根的子树(Subtree一个节点的子树的个数称为该节点的度数一棵树的度数是指该树中节点的最大度数。度数为零的节点称为树叶或终端节点,度数不为零的节点称为分支节点,除根节点外的分支节点称为内部节点。一个节点的子树之根节点称为该节点的子节点。
2024-10-13 09:44:37 246
原创 嵌入式数据结构中顺序队列的基本实现
队列是限制在两端进行插入操作和删除操作的线性表,允许进行存入操作的一端称为队尾,允许进行删除操作的一端称为队头当线性表中没有元素时,称为空队。特点 :先进先出(FIFO队列的特征:特殊的线性表,先进先出(FIFO1对于非空的队列,表头没有直接前驱,表尾没有直接后继,其它有且仅有一个直接前驱和一个直接后继。2只允许在表尾插入数据,在表头删除数据。第二:嵌入式队列源文件编写方法2:队列对应头文件定义3:测试源文件test.c。
2024-10-12 23:06:37 267
原创 嵌入式数据结构中顺序栈用法
栈是限制在一端进行插入操作和删除操作的线性表(俗称堆栈),允许进行操作的一端称为“栈顶,另一固定端称为栈底,当栈中没有元素时称为空栈。特点 :后进先出(LIFO。
2024-10-12 22:37:54 193
原创 嵌入式中单链表基本实现
依次读入表L=(a0,.....,an-1)中每一元素ai(假设为整型),若ai≠结束符(-1),则为ai创建一结点,然后插入表尾,最后返回链表的头结点指针H。
2024-10-11 20:05:47 143 1
原创 嵌入式数据结构中线性表的具体实现
线性表的定义 – 线性表就是零个或多个相同数据元素的有限序列。• 线性表的表示方法 – 线性表记为: L=(a0,∙∙∙∙∙∙∙∙ai-1aiai+1 ∙∙∙∙∙∙an-1)• 其中:L为表名,ai (0≤i≤n-1)为数据元素;• n为表长,n>0 时,线性表L为非空表,否则为空表,记为φ;。
2024-10-10 23:36:00 538
原创 嵌入式硬件设计中EDA布局与布线实现
在介绍PCB的时候,先来说明一下,电子管的发明史。贝尔在1876年发明了电话,爱迪生1879年发明了白炽灯、特斯拉于1888年发明了电动机,所有这些,都为电子学的诞生准备了充足的条件。1887年,德国H.R.赫兹进行了一项实验,他用火花隙激励一个环状天线,用另一个带缝隙的环状天线接收,证实了麦克斯韦关于电磁波存在的预言。1897年德国科学家布朗(Braun)制造出第一个真空管(vacuum tube),之后电子学的真空管时期就此展开。
2024-10-06 16:57:43 1153
原创 嵌入式linux系统中库函数如何提高效率
动态库(Dynamic Library)是在运行时被加载到内存中的库,它的代码不会被复制到目标程序中,而是在运行时动态链接到目标程序中,因此生成的可执行文件比较小,但是需要依赖外部库文件,如果外部库文件被删除或者改名,程序就无法正常运行。静态库(Static Library)是在编译时被链接到目标程序中的库,它的代码被复制到目标程序中,因此生成的可执行文件比较大,但是运行时不需要依赖外部库文件,具有良好的可移植性和兼容性。工作中总是会用到各种库,比如本地使用静态库,下载源上的动态库;
2024-09-29 23:45:32 472
原创 嵌入式linux系统中Sysfs设备驱动管理方法
sysfs 是非持久性虚拟文件系统,它提供系统的全局视图,并通过它们的 kobiect 显示内核对象的层次结构(拓扑)。每个 kobiect 显示为目录和目录中的文件,目录代表相关 kobject 导出的内核变量。这些文件称为属性可以读取或写入。如果任何已注册的 kobiect 在 sysfs 中创建目录,则目录的创建位置取决于 kobiec 的父项(它也是 kobiect )。这些目录自然创建为 kobject 父项的子目录。这向用户空间出显示了内部对象的层次结构。
2024-09-28 23:45:41 608
原创 嵌入式单片机底层原理详解
单片机启动并不是从main函数开始执行的,而是从启动文件规定的函数开始执行的大部分单片机都会上电自动配置时钟保证单片机能够正常工作寄存器和库函数通过地址这个东西联系在一起,库函数本质就是在操作寄存器本章简单展示了如何查找手册来配置寄存器,且再次强调库函数的本质就是操作寄存器。单片机都会有一个时钟树,时钟树的图可以在编程手册(不是数据表和内核手册)中找到。部分单片机想要工作在高工作频率下,需要设置flash等待时间并打开缓存和预取指令使能。
2024-09-26 22:51:32 2724
原创 嵌入式中CW32多功能测试笔实现
虽然本项目的模拟前端有较多功能,乍一看电路图也较为复杂,但只要将电路图根据功能拆解开,“逐个击破”来分析,还是很容易就能理解的。简单的总结一下就是,模拟前端可以分为信号输入、信号输出、和电流源输出这三个部分,而不同的工作模式,就是通过切换模拟开关来实现这三个部分的切换。
2024-09-26 21:31:07 1805
原创 嵌入式项目开源网站有哪些?
用户可以在该网站上发现各种有趣和创新的产品,包括硬件、电子设备、创客工具和开源项目等。与传统的众筹平台不同,crowdsupply.com还为创造者提供了更多的服务,包括供应链管理、制造支持、物流配送等,帮助他们实现产品从设计到生产的全过程。"hackaday.com"是一个技术社区和博客网站,主要关注电子设备、计算机、硬件和创客等方面的技术内容。该网站上发布了大量有关电子制作、创客项目、开源硬件、编程和创新的文章、教程和新闻。此外,该网站也举办在线活动、竞赛和培训课程,以促进硬件开发社区的发展和创新。
2024-09-24 23:49:47 347
原创 嵌入式linux方向细分工作岗位分析
1、开发和维护Linux系统的板级支持包(BSP),包括启动加载程序、设备驱动、文件系统等。2、负责解决硬件和软件之间的兼容性问题,确保Linux系统在硬件平台上稳定运行。与硬件工程师和软件工程师协作,进行硬件设计和软件开发,以及解决问题和提供技术支持。1、精通C、C++、Shell等编程语言,以及相关的开发工具和环境。2、熟悉Linux内核的架构和运行机制,包括进程管理、内存管理、文件系统熟悉常用的Linux BSP开发工具,如U-Boot、Yocto等。
2024-09-23 22:42:55 555
原创 嵌入式单片机STM32开发板详细制作过程--01
大家好,今天主要给大家分享一下,单片机开发板的制作过程,原理图的制作与PCB设计,以及电子元器件采购与焊接。
2024-09-22 23:40:32 245
原创 嵌入式linux系统中rk3588芯片引脚基本操作
控制器,分别为 RK_GPIO0、RK_GPIO1、RK_GPIO2、RK_GPIO3、RK_GPIO4,在这里分别对应 gpiochip0、gpiochip32、gpiochip64、gpiochip96、gpiochip128 这 5 个文件夹,每一个gpiochipX 文件夹用来管理一组 GPIO。:则指示了 LED 灯的触发方式,查看该文件的内容时,该文件会列出它的所有可用触方式,而当前使用的触发方式会以“[]”符号括起。:该属性文件为只读属性,不能写,用于获取 LED 设备的最大亮度等级。
2024-09-20 21:22:49 821
原创 嵌入式单片机中can总线调试方法
CAN的基本应用不难,如果真正应用在项目中,需要考虑更多的协议处理,例如仲裁。通过CAN的学习,希望大家有数据链路层的概念。以后做项目,每一种通信,最好加上数据链路层,这样可以保证数据传输的可靠性。
2024-09-17 21:17:51 2179
原创 嵌入式DCMI摄像头功能调试方法
DCMI数字摄像头接口是一个同步并行接口,能接收外部8位、10位、12位或14位CMOS摄像头模块发出的高速数据流。可支持不同的数据格式:YCbCr4:2:2/RGB565逐行视频和压缩数据(JPEG)。此接口适用于黑白摄像头、X24和X5摄像头,并假定所有预处理(如调整大小)都在摄像头中执行。
2024-09-17 21:08:19 1111
原创 嵌入式单片机程序运行机制,从helloworld说起
如果程序A中引用了文件B中定义的函数,为了A中的函数能正常执行,就需要把B中的函数部分也放在A的源代码中,那么将A和B合并成一个文件的过程就是链接了。在过去的机器里都是把整个程序都加载进入物理内存中,现在一般都采用了虚拟存储机制,即每个进程都有完整的地址空间,给人的感觉好像每个进程都能使用完成的内存。上面是内容用具体的实例说了目标文件内部的组织形式,目标文件只是产生可执行文件过程中的一个中间过程,对于程序是如何运行的还没做讨论,目标文件是如何转变为可执行文件以及可执行文件是如何执行的将在下面的部分中讨论。
2024-09-16 22:10:51 844
原创 嵌入式单片机程序运行基本机理
硬件首先要知道硬件的组成。在前面章节我们说过,芯片包含Flash和RAM。他们虽然不是相同的东西,但是都属于同一个地址空间,32位芯片的地址空间大小是4G。比如ST32,FLASH通常从0X8000000开始,而RAM就从0x20000000开始。高级点的芯片,可能会有外部SDRAM,内核也会为这SDRAM分配一段地址。地址,就是地址,比如你们家的门牌号,酒店的房间号。TODO添加STM32芯片地址映射图。程序程序包含什么?写代码的时候包含函数过程和变量。编译得到的目标文件包含函数过程。
2024-09-15 23:08:38 1395
电机+嵌入式详细解说+各个电机分析与说明,包括常见的直流电机、异步电机、同步电机等
2024-04-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人