
嵌入式Linux软件
文章平均质量分 92
嵌入式Linux软件
嵌入式逍遥
一直在嵌入式Linux软件领域深耕,目前芯片平台主要是RK,主要从事Linux系统搭建与移植,对U-Boot有一定积累,同时接触过Ubuntu、Openwrt、Manjaro等操作系统移植与开发。喜欢发掘与折腾不同Linux发行版的玩法,逍遥玩转嵌入式,浪!
展开
-
彻底弄懂netcat命令的使用
netcat 是一个使用 TCP 或 UDP 协议的网络工具,它被称为网络界的“瑞士军刀”,它可以在两台计算机之间建立连接,进行数据传输。原创 2024-02-06 23:41:10 · 7107 阅读 · 0 评论 -
[Firefly-RK3399] TFTP/NFS网络启动内核与Buildroot文件系统
[Firefly-RK3399] TFTP/NFS网络启动内核与Buildroot文件系统。原创 2023-12-09 11:31:02 · 1073 阅读 · 0 评论 -
OpenWRT Hotplug原理分析
本次研究基于OpenWRT 14_07 trunk。其他版本有部分差异,请阅读时注意。即热插拔,在新版本OpenWRT上,hotplugcoldplug与watchdog等被集成到全新的Procd系统中。是OpenWRT下新的预初始化,初始化,热插拔和事件系统。在openwrt中,procd作为init进程会处理许多事情, 其中就包括hotplug。procd本身并不知道如何处理hotplug事件,也没有必要知道,因为它只实现机制,而不实现策略。事件的处理是由配置文件决定的,这些配置文件即所谓的rules。转载 2023-07-06 09:47:51 · 2056 阅读 · 0 评论 -
Linux固件开发 | 几分钟看透GPT分区
保护MBR保护MBR包含一个DOS分区表(LBA0),只包含一个类型值为0xEE的分区项,在小于2TB的磁盘上,大小为整个磁盘;在更大的磁盘上,它的大小固定为2TB。它的作用是阻止不能识别GPT分区的磁盘工具试图对其进行分区或格式化等操作,所以该扇区被称为“保护MBR”。实际上,EFI根本不使用这个分区表。EFI部分EFI部分又可以分为4个区域:EFI信息区(GPT头)、分区表、GPT分区、备份区域。EFI信息区(GPT头)起始于磁盘的LBA1,通常也只占用这个单一扇区。其作用是定义分区表的位置和原创 2022-03-08 20:18:19 · 2141 阅读 · 3 评论 -
什么是OPTEE-OS?
OPTEE-OS技术概要转载 2021-03-17 19:47:30 · 1451 阅读 · 1 评论 -
Linux固件开发 | 工欲善其事必先利其器之Linux dd命令
dd命令man手册描述:Copy a file, converting and formatting according to the operands.一、dd命令参数dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。参数注释:if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >ibs=bytes:一次读入bytes个原创 2022-03-03 22:21:28 · 469 阅读 · 0 评论 -
如何理解嵌入式U-Boot的作用?这篇告诉你
1PC机与嵌入式系统启动的对比1.1、计算机系统的主要部件(1)计算机系统就是以CPU为核心来运行的系统。 典型的计算机系统有: PC机(台式机+笔记本) 嵌入式设备(手机、平板电脑、游戏机) 单片机(家用电器像电饭锅、空调)(2)计算机系统的组成部件非常多,不同的计算机系统组成部件也不同。但是所有的计算机系统运行时需要的主要核心部件都是3个东西: CPU +外部存储器(Flash/硬盘) +内部存储器(DDR SDRAM/SDRAM/SRAM)...原创 2021-04-09 22:12:58 · 1384 阅读 · 0 评论 -
深入理解Overlayfs(二):使用与原理分析
在初步了解overlayfs用途之后,本文将介绍如何使用overlayfs以及理解该文件系统所特有的一些功能特性。由于目前主线内核对overlayfs正在不断的开发和完善中,因此不同的内核版本改动可能较大,本文尽量与最新的内核版本保持一致,但可能仍会存在细微的出入。内核版本:Linux-4.14示例环境:pi3挂载文件系统挂载文件系统的基本命令如下:mount -t overlay overlay -o lowerdir=lower1:lower2:lower3,upperdir=转载 2021-04-12 20:36:18 · 1161 阅读 · 0 评论 -
深入理解Overlayfs(一):初识
Overlayfs是一种类似aufs的一种堆叠文件系统,于2014年正式合入Linux-3.18主线内核,目前其功能已经基本稳定(虽然还存在一些特性尚未实现)且被逐渐推广,特别在容器技术中更是势头难挡。本系列博文将首先介绍overlayfs的基本概念和应用场景,然后通过若干实例描述它的使用方式,最后从源码角度结合Linux VFS Layer和Ext4fs连通分析overlayfs的实现。本文先来大致认识一下什么是Overlayfs,它有什么应用场景和使用限制。内核版本:Linux-4.13.y.转载 2021-04-12 19:57:35 · 474 阅读 · 0 评论 -
玩转内核链表list_head,3个超级哇塞的的例子
玩转内核链表list_head,3个超级哇塞的的例子转载 2021-02-05 20:28:46 · 447 阅读 · 1 评论 -
一篇短文让你彻底理解什么是I2C通信
一、I2C协议I2C 也叫 IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司在80年代开发的两线式串行总线,用于连接微控制器及其外围设备。它是半双工通信方式。我们首先阅读以下这个例子,这会方便后面大家进一步理解I2C协议:如图所示,老师(MCU)将球(数据)传给众多学生中的一个(众多外设设备中的一个)。首先老师将球踢给某学生,即主机发送数据给从机,步骤如下:① 老师:开始了(start);② 老师:A!我要发球给你!(地址/方向);③ 学原创 2021-07-11 13:21:28 · 17567 阅读 · 13 评论 -
一篇短文让你彻底理解什么是串口通信
1 并行与串行通信机器的通信方式有两种,分别是并行通信与串行通信。并行通信:并行通信是指多比特数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,数据也就容易出错。串行通信:串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。拿汽车通道来说,并行通信就是多车道,多辆车一起行驶,而串行通信就是单车道,只能一原创 2021-06-12 10:32:24 · 29218 阅读 · 2 评论 -
嵌入式软件高频面试题
本文转载自公众号:嵌入式Hacker原文地址:https://mp.weixin.qq.com/s/i0jcrzZ5gBaAyko7nl26uw一、进程与线程1、什么是进程、线程,有什么区别?进程是资源(CPU、内存等)分配的基本单位,线程是CPU调度和分配的基本单位(程序执行的最小单位)。同一时间,如果CPU是单核,只有一个进程在执行,所谓的并发执行,也是顺序执行,只不过由于切换速度太快,你以为这些进程在同步执行而已。多核CPU可以同一时间点有多个进程在执行。2、多进程、多线程的优缺转载 2021-01-17 17:52:11 · 5317 阅读 · 0 评论 -
Yocto理论篇 | Yocto Fakeroot与Pseudo
Some tasks are easier to implement when allowed to perform certain operations that are normally reserved for the root user (e.g.do_install,do_package_write*,do_rootfs, anddo_image*). For example, thedo_installtask benefits from being able to set the ...翻译 2020-12-12 20:53:54 · 1530 阅读 · 0 评论 -
Yocto理论篇 | Yocto自动添加运行时依赖项
The OpenEmbedded build system automatically adds common types of runtime dependencies between packages, which means that you do not need to explicitly declare the packages usingRDEPENDS. Three automatic mechanisms exist (shlibdeps,pcdeps, anddepchains) ...翻译 2020-12-12 20:45:16 · 2146 阅读 · 0 评论 -
Yocto理论篇 | Yocto共享状态缓存
By design, the OpenEmbedded build system builds everything from scratch unlessBitBakecan determine that parts do not need to be rebuilt. Fundamentally, building from scratch is attractive as it means all parts are built fresh and no possibility of stale ..翻译 2020-12-12 20:32:22 · 1903 阅读 · 0 评论 -
Yocto理论篇 | Yocto交叉开发工具链生成
The Yocto Project does most of the work for you when it comes to creatingcross-development toolchains. This section provides some technical background on how cross-development toolchains are created and used. For more information on toolchains, you can al.翻译 2020-12-12 19:54:58 · 4418 阅读 · 0 评论 -
Yocto理论篇 | OpenEmbedded构建系统之SDK
1 工作流下图表示OpenEmbedded构建系统生成的高级工作流: 通常,构建的工作流由几个功能区域组成:User Configuration:可用于控制生成过程的元数据。 Metadata Layers:提供软件、板子和发行版元数据的各种层。 Source Files:上游发布、本地项目和SCMs。 Build System:在BitBake控制下的进程。这个模块扩展了BitBake如何获取源代码、应用补丁、完成编译、分析生成包的输出、创建和测试包、生成镜像以及翻译 2020-12-11 22:28:09 · 936 阅读 · 0 评论 -
Yocto理论篇 | OpenEmbedded构建系统之Images
1 工作流下图表示OpenEmbedded构建系统生成的高级工作流: 通常,构建的工作流由几个功能区域组成:User Configuration:可用于控制生成过程的元数据。 Metadata Layers:提供软件、板子和发行版元数据的各种层。 Source Files:上游发布、本地项目和SCMs。 Build System:在BitBake控制下的进程。这个模块扩展了BitBake如何获取源代码、应用补丁、完成编译、分析生成包的输出、创建和测试包、生成镜像以及翻译 2020-12-11 22:05:48 · 678 阅读 · 0 评论 -
Yocto理论篇 | OpenEmbedded构建系统之BitBake
1 工作流下图表示OpenEmbedded构建系统生成的高级工作流: 通常,构建的工作流由几个功能区域组成:User Configuration:可用于控制生成过程的元数据。 Metadata Layers:提供软件、板子和发行版元数据的各种层。 Source Files:上游发布、本地项目和SCMs。 Build System:在BitBake控制下的进程。这个模块扩展了BitBake如何获取源代码、应用补丁、完成编译、分析生成包的输出、创建和测试包、生成镜像以及翻译 2020-12-05 14:30:17 · 2185 阅读 · 0 评论 -
Yocto理论篇 | OpenEmbedded构建系统之Package Feeds
1 工作流下图表示OpenEmbedded构建系统生成的高级工作流: 通常,构建的工作流由几个功能区域组成:User Configuration:可用于控制生成过程的元数据。 Metadata Layers:提供软件、板子和发行版元数据的各种层。 Source Files:上游发布、本地项目和SCMs。 Build System:在BitBake控制下的进程。这个模块扩展了BitBake如何获取源代码、应用补丁、完成编译、分析生成包的输出、创建和测试包、生成镜像以及翻译 2020-12-01 21:29:30 · 703 阅读 · 0 评论 -
Yocto理论篇 | OpenEmbedded构建系统之Sources
1 工作流下图表示OpenEmbedded构建系统生成的高级工作流: 通常,构建的工作流由几个功能区域组成:User Configuration:可用于控制生成过程的元数据。 Metadata Layers:提供软件、板子和发行版元数据的各种层。 Source Files:上游发布、本地项目和SCMs。 Build System:在BitBake控制下的进程。这个模块扩展了BitBake如何获取源代码、应用补丁、完成编译、分析生成包的输出、创建和测试包、生成镜像以及翻译 2020-12-01 21:26:24 · 595 阅读 · 0 评论 -
Yocto理论篇 | OpenEmbedded构建系统之Metadata、Machine Configuration与Policy Configuration
1 工作流下图表示OpenEmbedded构建系统生成的高级工作流: 通常,构建的工作流由几个功能区域组成:User Configuration:可用于控制生成过程的元数据。 Metadata Layers:提供软件、板子和发行版元数据的各种层。 Source Files:上游发布、本地项目和SCMs。 Build System:在BitBake控制下的进程。这个模块扩展了BitBake如何获取源代码、应用补丁、完成编译、分析生成包的输出、创建和测试包、生成镜像以及翻译 2020-12-01 21:21:25 · 607 阅读 · 0 评论 -
Yocto理论篇 | OpenEmbedded构建系统之User Configuration
1 工作流下图表示OpenEmbedded构建系统生成的高级工作流: 通常,构建的工作流由几个功能区域组成:User Configuration:可用于控制生成过程的元数据。 Metadata Layers:提供软件、板子和发行版元数据的各种层。 Source Files:上游发布、本地项目和SCMs。 Build System:在BitBake控制下的进程。这个模块扩展了BitBake如何获取源代码、应用补丁、完成编译、分析生成包的输出、创建和测试包、生成镜像以及翻译 2020-12-01 21:16:15 · 472 阅读 · 0 评论 -
Yocto理论篇 | Yocto Project组件与Layers
1 Yocto Project组件BitBake任务执行器与各种类型的配置文件一起构成了开放内核。BitBake处理数据文件的解析和执行。数据本身有多种类型:Recipes:提供特定软件的详细信息。 Class Data:抽象常见的构建信息(例如,如何构建Linux内核)。 Configuration Data:定义板子特定的配置、策略等。配置数据充当粘合剂将所有内容绑定在一起。1.1 BitBakeBitBake是OpenEmbedded构建系统的核心工具,负责解析元数据,从中生成任翻译 2020-12-01 21:10:29 · 661 阅读 · 0 评论 -
100ASK-IMX6ULL开发板_QT移植全过程
100ASK-IMX6ULL开发板_QT移植全过程环境及开发包介绍:主机:ubuntu18.04(百问网提供)交叉编译器:gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf(百问网提供的bsp包)QT5.6.0:qt-everywhere-opensource-src-5.6.0(链接:https://pan.baidu.com/s/1hiDQEDYWCq8FQYirw9yedg 密码:gvd7)tslib:tslib-1.6(git clon转载 2020-11-15 19:56:49 · 1932 阅读 · 0 评论 -
BalenaOS理论篇 | BalenaOS及其系统结构概述
一、什么是balenaOS?BalenaOS的设计包含了所需的最小组件集,以在嵌入式场景中可靠地支持Docker引擎的操作。它以YOCTO框架为基础,systemd作为初始化系统。网络栈由Network Manager、DNSmasq和Modem Manager组成。我们发现这些组件对于处理硬件的多样性和设备可能启动的网络配置的不可预测性是一个健壮的堆栈。此外,还包括Avahi、OpenSSH和OpenVNP,它们分别添加了对mdn、SSH和VNP连接的支持。这个基础非常适合在balenaO原创 2020-11-15 09:40:46 · 3083 阅读 · 0 评论 -
Yocto开发篇 | Poky添加一个demo层
一、使用bitbake命令创建demo层$ export PATH=$PATH:/home/neutionwei/poky/bitbake/bin$ export BBPATH=/home/neutionwei/proj/yocto/poky/build$ cd ..$ bitbake-layers create-layer meta-demoNOTE: Starting bitbake server...Add your new layer with 'bitbake-layers add原创 2020-11-14 22:08:17 · 496 阅读 · 0 评论 -
Yocto开发篇 | Ubuntu构建与体验Poky发行版(Yocto 3.1版本)
一、开发环境要求 50GB空闲磁盘空间(最好还剩余100GB以上) Git 1.8.3.1以上版本 tar 1.28以上版本 Python 3.5.0以上版本 gcc 5.0以上版本 二、安装依赖原创 2020-11-01 18:20:34 · 2476 阅读 · 2 评论 -
Yocto理论篇 | Yocto Project概述
一、什么是Yocto Project?Yocto项目是一个开源协作项目,它帮助开发人员定制基于Linux的系统,这些系统是为嵌入式产品而设计的,与产品的硬件架构无关。Yocto项目提供了一个灵活的工具集和一个开发环境,允许全世界的嵌入式开发人员通过共享技术、软件堆栈、配置和最佳实践进行协作,以生成这些定制的Linux镜像。全球数千名开发人员发现,Yocto项目在系统和应用程序开发、归档和管理以及用于速度、占用空间和内存利用的定制方面都具有优势。这个项目是交付嵌入式软件栈的标准。该项目允许软件定制和建翻译 2020-10-30 18:40:51 · 2321 阅读 · 0 评论 -
Buildroot开发篇 | Ubuntu构建与体验Buildroot(2020.02版本)
一、利用docker建立ubuntu编译环境(若本地编译则跳过)(1)拉取最新ubuntu镜像:$ docker pull ubuntu:latestlatest: Pulling from library/ubuntud72e567cc804: Pull complete 0f3630e5ff08: Pull complete b6a83d81d1f4: Pull complete Digest: sha256:bc2f7250f69267c9c6b66d7b6a81a54d3878.原创 2020-10-04 22:41:02 · 4600 阅读 · 0 评论 -
计算机三级嵌入式知识点总结
知识总结:1、嵌入式系统的CPU具有4个特点:支持实时处理 低功耗 结构可扩展 集成了测试电路注:高主频非其特点2、USB的特点 (1) 在具有OTG(On-The-Go)的USB总线上,可实现在没有主机(Host)情况下从设备之间直接进行点对点通信 (2) USB3.0的速率是5Gbps,而USB2.0的速率是480Mbps (3) 主机的...原创 2019-03-30 17:35:05 · 11945 阅读 · 3 评论 -
ARM常用汇编指令
转载来源: https://blog.youkuaiyun.com/qqliyunpeng/article/details/45116615 ...转载 2018-09-09 16:07:03 · 9571 阅读 · 1 评论