自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【最通用版FPGA 实现 SPI 驱动】

最通用的SPI协议的FPGA实现

2023-12-03 17:04:51 1202 1

原创 verilog实现RS锁存器

verilog实现RS锁存器。

2023-09-28 09:57:05 345

原创 linux内核vmlinux生成过程简要分析

简述vmlinux的生成过程

2023-02-02 11:07:46 900 1

原创 Linux字符设备、块设备的区别

字符设备就是在对某设备进行操作时,该设备的读取以字节为单位进行。字符设备的操作是通过linux系统直接调用驱动程序完成的,在驱动程序的上一层并没用文件系统。块设备对于数据的操作是依靠数据块的形式进行的,在操作块设备时除了操作字符设备接口之外,1、以字节流的方式进行读写、一个字节一个字节的读写设备(有先后顺序)。3、操作块设备往往通过文件系统,而不是直接与设备进行通讯。3、每个字符设备都在 /dev 目录下存在一个设备文件。1、块设备以数据块形式进行操作。2、块设备的数据能够随机存取。

2023-02-01 09:44:23 2039

原创 systemd和initd添加开机自启服务

Systemd和initd创建开机自启的方法

2023-01-13 17:32:51 1854

原创 linux系统添加和删除用户密码

linux系统添加和删除用户密码。

2023-01-13 16:06:42 392

原创 kobject应用实例--在/sys下创建设备的属性节点

本文讲解如何利用内核提供的接口,在/sys下创建设备的属性节点,实现属性的读写接口。

2022-12-15 17:40:48 574

原创 三、cmake常用函数

cmake常用函数解析

2022-12-09 11:16:28 1426

原创 DDR压力测试工具memtester的源码解读和交叉编译

最近公司的一款产品,核心板上的DDR由工业级的降为民用的,程序运行过程中容易出现内存泄漏的问题。所以再产品测试流程中增加DDR的压力测试。使用最流行的开源工具 memtester 但是memtester默认测试循环次数太多,完成一次压力测试需要20多分钟不利于生产测试,于是需要修改源码,从新编译。

2022-12-08 17:33:00 3399

原创 四、buildroot中添加自己的软件包

描述如何在buildroot中添加自己的源码包

2022-11-06 11:36:10 2760 1

原创 二、buildroot菜单配置

本文介绍buildroot编译菜单配置

2022-11-04 19:10:36 1097

原创 三、使用buildroot制作mke2fs (mkfs.ext2、mkfs.ext3、mkfs.ext4)

最近维护公司的一款产品,在开机脚本中需要将emmc格式化为ext4的文件系统,发现在方案厂商提供的根文件系统中不存在mkfs.ext4工具。这里想到一种快速的临时解决办法,使用buildroot将mke2fs编译出来,然后移植到产品的根文件系统镜像中。

2022-11-04 15:45:08 1877

原创 linux内核的VFS文件系统的理解

VFS (Virtual File System),是linux内核文件系统中一个极其重要的基础,VFS为所有的文件系统提供了统一的接口,对每一个具体文件系统的访问要通过VFS定义的接口来实现。其设计目的是对用户层(系统调用)屏蔽底层(各特定文件系统)实现的复杂性,对底层提供统一的接口与数据结构,使得能衔接各个特定文件系统(如ext2、ext3、fat32等)的对接,是用户层与文件系统层之间的抽象层。

2022-11-02 19:30:36 597

原创 浏览器中输入的URL网址的意义-概述

浏览器本身具备多种功能,因此它需要一些东西来判断应该使用那种功能来访问相应的数据,二各种不同的URL就是用来告诉浏览器应该使用那种方式来访问不同的数据,比如访问Web服务器时用 “http:” ,而访问FTP服务器时用 “ftp:”。尽管URL有各种不同的写法,但他们有一个共同点,那就是URL开头的文字,即 “http:” “ftp:” “file:” “mailto:” 这部分文字都表示浏览器应当使用的访问方法。下图例举了现在互联网中常见的几种URL,根据访问目标不同,URL的写法不同。

2022-10-28 12:20:44 1976

原创 mount.nfs: an incorrect mount option was specified

mount.nfs: an incorrect mount option was specified

2022-10-13 09:24:50 1316

原创 shell脚本将uboot zImage 和文件系统打包成为一个img系统镜像

最近使用NXP的imx6ull开发,看官方给的程序烧录方法是使用官方给的 mfgtools 工具,通过usb将uboot kernel rootfs这些文件烧写到 emmc nandflash或者sd卡等存储介质上面,这种方式效率比较低。官方推荐的量产烧写方式是把SD卡刷机,就是把SD卡做成启动盘,启动板子再把系统烧录emmc或者nandflash里面。这里分享一种通过脚本将 uboot kernel dtb rootfs打包成img镜像的方法,可以使用 dd 指令将打包好的img系统镜像

2022-10-12 11:20:32 3137 2

原创 Makefile常用函数

makefile常用函数

2022-10-08 14:36:45 430

原创 2、opencv工程创建及cmake编译

为了练习C++,使用比较有趣的opencv来实战演练,本章编写代码 并借助cmake对代码进行编译。

2022-09-29 14:03:11 938

原创 1 超详细的ubuntu安装opencv

ubuntu安装opencv的过程 以及相关知识点

2022-09-28 11:09:58 18882 16

原创 Your environment is misconfigured, you probably need to ‘unset LD_LIBRARY_PATH‘ but please check why

Your environment is misconfigured, you probably need to 'unset LD_LIBRARY_PATH' but please check why

2022-09-26 11:18:58 1219 3

原创 linux工作队列应用实例

工作队列是实现中断下文的机制之一,是一种将工作推后执行的形式。本文以代码实例来表现工作队列的应用方法

2022-09-23 11:32:05 466 1

原创 go接口的使用方法

go语言接口的用法简介

2022-09-01 15:02:25 971 1

原创 4、ROS话题通信实战,代码逐行解析

ROS话题代码开发,CMakeLists.txt package.xml

2022-08-22 13:34:49 441

原创 linux中coredump文件分析

Core就是内存的意思,这个词源自很早以前制造内存的材料,一直延用到现在,当程序运行过程中检测到异常程序异常退出时, 系统把程序当前的内存状况存储在一个core文件中, 叫core dumped,也就信息转储。当程序出现段错误,内核错误的时候出现的文件,通常出现这类的问题是低级bug中的内存访问越界、使用空指针、堆栈溢出等情况。使程序运行过程中异常退出或者终止,满足这些条件就会产生coredump的文件。可以通过该文件复现出现错误的位置,查看错误的各项值,帮助解决程序里面的bug。

2022-08-20 09:21:19 5650

原创 3、ROS工作空间的创建

ROS工作空间创建方法

2022-08-09 17:58:29 1840

原创 linux查找设备被哪个进程占用、proc目录简介

linux查找设备被哪个进程占用、proc目录简介

2022-08-06 11:48:47 2128

原创 GCC编译的时候头文件搜索规则

GCC编译的时候头文件搜索规则

2022-08-04 12:10:18 3301

原创 Unknown CMake command “add_action_files“

UnknownCMakecommand"add_action_files"

2022-08-01 16:58:38 799

原创 1、20分钟完成Ubuntu18.04安装ROS

本人虚拟机是ubuntu18.04,安装ros的melodic版本国外源下载失败最进安装ROS走了好多弯路,回想起来感觉挺扯淡的,在此写下自己的总结和安装过程。...

2022-07-26 14:10:00 3530 5

原创 2、ubuntu18.04安装cmake

本文以安装cmake3.18.0为例。

2022-07-24 21:06:43 3131 3

原创 Ubuntu已经安装VMware Tools后依然无法和主机之间进行复制粘贴

由于之前安装的Ubuntu使用一段时间之后磁盘爆满了,不得已从新安装了Ubuntu18.04,在安装完VMwaretools之后发现Ubuntu和主机之间并不能复制粘贴,反复从新安装了好几次VMwaretools后依然无法解决问题。主要的原因是因为从Ubuntu14.04开始,“open-vm-tools”代替了官方的“VMwareTools”。因此,我们除了安装Vmware官方的“VMwareTools”之外,还需要安装“open-vm-tools”。2、安装工具open-vm-tools。...

2022-07-22 22:47:49 5300 4

原创 一、buildroot目录结构

Buildroot是linux平台上一个开源的嵌入式Linux系统自动构建框架。一个linux系统主要包含bootloader、kernal和rootfs三部分。我们可以独立去开发各个部分,在使用的时候分别去交叉编译,烧写这些软件组件。buildroot这个工具提供了一种更为高效的方法,他把bootloader、kernal和rootfs集成在一起,可以非常方便的去定制、管理、编译和组装一个自己需要的、针对自己的设备的一个完整的软件系统。......

2022-07-22 14:10:47 1264

原创 子网掩码的作用

子网掩码通常有十进制和二级制两种表现形式,255.255.0.0用二进制表示则为1111111.11111111.00000000.00000000,其中,前面2个字节的16位“1”表示网络号,后面2个字节的16位“0”表示主机号。子网掩码有两个特殊地址,当子网掩码的主机地址全为0时,表示该网络地址,当子网掩码的主机地址全为1时,表示该网络的广播地址。上文中的26代表主机ID的掩码地址长度,从前往后有26位,即子网掩码的地址是255.255.255.192。1)将主机数目转化为二进制来表示,总位数是N;..

2022-07-19 22:39:39 6223

原创 将虚拟机的Ubuntu映射为windows的网络驱动器

Samba服务(SMB)主要用于Linux和Windows系统主机间的文件共享,也可用于Linux和Linux之间的共享文件。在Linux和Linux系统主机之间文件共享通常是通过更好的NFS服务器进行的。1、安装samba软件包2、修改samba配置文件3、在文件末尾添加如下common: 共享说明,可自定义path: 共享目录,应与之前创建的一致,必须为绝对路径browseable: 允许所有人都能够看到此目录writable: 允许用户在此目录下可写create mask: 创建文件的权

2022-07-12 17:25:48 2650 1

原创 linux内核系统调用创建和删除文件

linux内核提供的创建和删除函数的系统调用

2022-07-11 20:23:10 2040

原创 编译代码出现arm-linux-gnueabi-gcc: Command not found

今天编译代码时出现arm-linux-gnueabi-gcc: Command not found的错误解决办法如下:等待安装完成,然后再次编译完成。

2022-07-07 10:26:01 2000

原创 shell脚本接收和返回参数

$1 代表第一个参数$2 代表第二个参数…$@ 代表所有的参数

2022-07-05 15:32:22 5021 2

原创 常用linux进程间通信方式

进程用户空间是相互独立的,一般而言是不能相互访问的。但很多情况下进程间需要互相通信,来完成系统的某项功能。进程通过与内核及其它进程之间的互相通信来协调它们的行为。管道分为有名管道和无名管道无名管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用.进程的亲缘关系一般指的是父子关系。无明管道一般用于两个不同进程之间的通信。当一个进程创建了一个管道,并调用fork创建自己的一个子进程后,父进程关闭读管道端,子进程关闭写管道端,这样提供了两个进程之间数据流动的一种方式。有名管道也是一

2022-06-28 22:47:59 282

原创 linux设备树概念及使用方法简述

设备树总结

2022-06-28 22:39:17 2921

原创 linux顶层makefile--1

上图为linux4内核源码目录。vmlinux: scripts/link-vmlinux.sh \ vmlinux_prereq $(vmlinux-deps) \ FORCE+$(call if_changed,link-vmlinux)vmlinux_prereq: $(vmlinux-deps) FORCE vmlinux-deps := $(KBUILD_LDS) $(KBUILD_VMLINUX_INIT) $(KBU.

2022-04-06 15:50:08 215

空空如也

空空如也

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

TA关注的人

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