首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏全栈程序员必看

    构建嵌入式 Linux 系统的4种有效工具

    在本文中,我将对构建嵌入式 Linux 系统的四种常用方式进行纵览。我将介绍一下每种产品的工作原理,并提供足够的信息来帮助读者确定使用哪种工具进行设计。 Yocto Yocto 项目 定义为“一个开源协作项目,提供模板、工具和方法,帮助您为嵌入式产品创建定制的基于 Linux 的系统,而不管硬件架构如何。” 建议 为您的下一个嵌入式 Linux 设计使用 Yocto 项目是一个强有力的选择。 在这里介绍的选项中,无论您的目标用例如何,它都是最广泛适用的。 建议 对于大多数应用程序,使用 Buildroot 进行下一个嵌入式 Linux 设计是一个不错的选择。 通常,嵌入式 Linux 开发人员也是桌面 Linux 用户,并且精通他们的选择发行版。在目标上使用类似的环境可能会让开发人员更快地入门。

    4K20发布于 2021-06-10
  • 来自专栏TopSemic嵌入式

    嵌入式Linux系列第4篇:Kernel编译下载

    01.引言 本篇接上一篇,给大家介绍Linux Kernel的编译和下载运行,达到的预期效果是都下载到板子后,可以正常通过串口登录到Linux系统里。 02.Linux Kernel编译 NUC972 Linux Kernel下载地址为:https://github.com/OpenNuvoton/NUC970_Linux_Kernel 下载完成后,放到 再来一次, 这次倒是没有刚才arm-none-linux-gnueabi-gcc找不到的问题,不过还是有一开始提示的错误: ? 这是怎么回事?我灵机一动,上面提示没有../rootfs ? 经过这一篇的讲解,你如果实际动手实现后,应该对嵌入式Linux更加感兴趣了吧,相当于我们会重装系统了。虽然困难重重,但是不要放弃。 相关资料下载链接:https://github.com/TopSemic/NUC972_Linux 04 Lesson4 Kernel编译下载中。

    1.5K50发布于 2021-05-31
  • 来自专栏韦东山嵌入式

    嵌入式Linux APP 访问硬件的 4 种方式

    4 种方法没有优劣之分,在不同的场合使用不同的方法。

    53230编辑于 2022-05-05
  • 来自专栏嵌入式iot

    树莓派4 嵌入式Linux开发过程详解

    树莓派4 嵌入式Linux开发过程详解 1.概述 2.开发环境概述 2.1 安装虚拟机环境 2.2 树莓派开发环境搭建 3.交叉编译工具的安装与uboot的编译 3.1 安装arm 64位交叉编译环境 5.1 uboot中设置启动项 5.2 插入SD卡挂在到虚拟机上 5.3 修改文件脚本 6.小结 1.概述 在这篇文章中,将会通过树莓派4Linux的启动过程,描述如何进行嵌入式Linux系统开发的思路 通过树莓派4B的启动流程,看到一个Linux启动过程,同时,通过一步一步搭建一个完整的树莓派嵌入式Linux开发环境,来指导分析各部分的开发过程。 通过对本文的阅读,可以掌握一些嵌入式Linux开发和环境搭建的方法,也能够对树莓派4的运行流程以及Linux的运行流程有一个大致的了解,从romboot-->uboot-->kernel-->rootfs 整个嵌入式Linux开发和环境搭建过程都可以在树莓派4b上很好的进行测试,万变不离其宗,掌握了嵌入式开发的流程和工具,做应用和做驱动开发都十分的方便和高效。

    8.8K32发布于 2021-03-25
  • 嵌入式Linux应用开发基础】网络编程(4):UDP协议

    嵌入式 Linux 应用开发中,UDP 常用于实时音视频传输、游戏、传感器数据采集等领域。 Linux 中的编程实现 在嵌入式Linux应用开发中,可以使用socket编程接口来实现UDP协议的数据传输。 具体步骤如下: 创建socket:使用socket()函数创建一个新的socket,指定使用的地址类型和协议(如PF_INET和SOCK_DGRAM表示使用IPv4和UDP协议)。 Linux系统中实现高效的网络通信,特别适合需要快速响应、可接受少量数据丢失的物联网应用场景。 Linux 网络编程 - UDP 协议详解:该博客对 UDP 协议在 Linux 环境下的特点、首部格式、校验和计算等方面进行了详细的讲解,并对比了 UDP 和 TCP 协议的优劣,同时给出了一些 UDP

    33910编辑于 2026-01-21
  • 嵌入式 ARM Linux 系统构成(4):设备驱动程序

    嵌入式 ARM Linux 系统的宏伟蓝图中,设备驱动程序宛如连接硬件与软件的桥梁,起着不可或缺的关键作用。 在嵌入式 ARM Linux 系统里,从简单的 GPIO(通用输入输出)引脚到复杂的 WiFi 模块、摄像头传感器等,每一个硬件设备都需要对应的驱动程序来实现其功能。 环境搭建:搭建嵌入式 ARM Linux 开发环境,包括交叉编译工具链、内核源码等。 驱动编写:根据硬件规格和需求分析结果,编写设备驱动程序。 《ARM 嵌入式 Linux 系统开发实战指南》:紧密围绕 ARM 平台的 Linux 系统开发。 电子发烧友论坛(电子发烧友):在嵌入式开发领域颇具影响力,有专门的 ARM 与 Linux 板块。

    32110编辑于 2026-01-21
  • 嵌入式Linux应用开发基础】进程间通信(4):信号

    定义 在嵌入式 Linux 系统中,信号(Signal)是一种异步的进程间通信机制,用于通知进程发生了某种特定的事件。信号可以由系统内核产生,也可以由一个进程发送给另一个进程。 默认处理动作:终止进程,并生成核心转储文件(如果系统配置允许) 三、信号的发送 在嵌入式 Linux 中,可以使用以下几种方式发送信号。 3.1. 九、总结 信号是嵌入式 Linux 系统中一种重要的进程间通信机制,它提供了一种异步的事件通知方式。通过合理地使用信号的发送、处理、阻塞和未决等机制,可以实现进程间的高效通信和异常处理。 《嵌入式 Linux 应用开发完全手册》 专门针对嵌入式 Linux 应用开发,书中结合嵌入式系统的特点,介绍了信号在嵌入式环境下的具体应用和优化方法。 Linux 内核源代码 Linux 内核源代码是了解信号实现机制的最直接资料。

    14910编辑于 2026-01-21
  • 来自专栏AIoT技术交流、分享

    嵌入式Linux:如何进行嵌入式Linux开发?

    嵌入式Linux开发主要有四种方式:裸机开发、SDK开发、驱动开发和应用开发。 1、裸机开发 裸机开发通常指在没有操作系统支持的环境中直接在硬件上运行程序的开发。 在嵌入式Linux SDK开发中,开发者可以利用Linux系统的强大功能和灵活性,同时针对特定的硬件平台进行优化和调整,以满足嵌入式设备的特定需求。 3、驱动开发 驱动开发是指为嵌入式Linux系统编写设备驱动程序的过程。在这个过程中,开发者需要深入理解Linux内核架构,学会如何在Linux内核环境下编写、调试和维护设备驱动程序。 Linux中的设备驱动主要分为3大类:字符设备驱动、块设备驱动和网络设备驱动。 4、应用开发 Linux 应用开发是指在 Linux 操作系统上开发应用程序的过程。这包括创建、编写、调试和优化应用程序,以在 Linux 环境中运行。

    5.3K00编辑于 2024-05-26
  • 来自专栏TopSemic嵌入式

    嵌入式Linux系列第11篇:使用4G模块

    随着它们速率的不断提供,模块的接口形式也在不断的变化,2G模块只要串口就可以了,4G模块一般用的USB接口,当然串口也可以,只不过速率慢些。 由于4G模块的驱动较为复杂,所以如果是USB接口,在普通MCU上做就会比较困难,这时Linux系统的优势就体现出来了,Linux由于其完备的驱动支持,在上面做4G就会容易很多。 4 Buildroot配置 • pppd配置,用来生成pppd、pppdump等相关指令 ? 这一步是调试4G模块的最关键一步,这一步成功调试工作就完成了一大半以上。其实只要完成第3节内核配置后,就可以实现上述现象了。 6.结束语 本期相关的资料在https://github.com/TopSemic/NUC972_Linux 中 本篇为大家介绍了Linux下EC20 4G模块的简单使用,欢迎大家多交流,微信公众号如下

    5.8K40发布于 2021-05-31
  • 来自专栏AIoT技术交流、分享

    嵌入式LinuxLinux库函数

    1、Linux库函数简介 Linux 提供了丰富的库函数,涵盖了各种领域,从文件操作到网络编程、图形界面、数学运算等。 这些库函数大多数都是标准的 C 库函数,同时也包括一些特定于 Linux 系统的库。 Linux库函数通常以动态库文件(.so)的形式提供,存放在根文件系统的 /lib 目录下。 Linux 内核提供了一系列系统调用供应用层使用,直接使用系统调用是一种方法。然而,有些系统调用使用起来不够方便,因此引入了 C 语言库。 2、标准C语言库函数 在Linux系统下,使用的C语言库主要是GNU C语言函数库,也被称为glibc。 它是Linux下的标准C语言函数库,为开发者提供了丰富的函数集,涵盖了输入输出、字符串处理、数学运算、文件操作等多个领域。

    1.8K00编辑于 2024-05-26
  • 来自专栏嵌入式音视频

    嵌入式day4(2022.1.10)

    4. if-else 分支结构中, 如果分支体只有 1 条语句, 范围括号 {} 可省略。 5. 尽量减少分支、 循环的嵌套, 尽量小于 5 层, 否则导致程序逻辑可读性变差。 2. printf("1\n"); else if(a++) printf("2\n"); else if(a++) printf("3\n"); else if(a++) printf("4\ printf("空格数:%d\n", space); printf("换行数:%d\n", line); printf("其他字符数:%d\n", otherchars); return 0; } 4、 ℃\n",a,c); return 0; } 6.打印如下图案: #include<stdio.h> int main() { int i, j, k; for (i = 0; i < 4; //输出后三行 { for (j = 0; j < i+1; j++) //随行数增加而增加空格的输出 { printf(" "); } for (k = 0; k <= 4-

    45320编辑于 2022-12-02
  • 来自专栏技术杂记

    嵌入式基础概念扫盲(4

    D/A转换器基本上由4个部分组成,即权电阻网络、运算放大器、基准电源和模拟开关。

    70210发布于 2021-09-15
  • 来自专栏韦东山嵌入式

    嵌入式Linux配置网络

    在线课堂:https://www.100ask.net/index(课程观看) 论  坛:http://bbs.100ask.net/(学术答疑) 开 发 板:https://100ask.taobao.com/ (淘宝) https://weidongshan.tmall.com/(天猫)

    6.6K10编辑于 2022-12-28
  • 来自专栏全栈程序员必看

    嵌入式Linux–menuconfig详解

    注:linux内核中一个功能模块有三种编译方法:一种是编入、一种去去除、一种是模块化。 MODULES help Usually, modules have to be recompiled whenever you switch to a newkernel. ... 4. ---- .config “.config文件中每一行都是一个配置项,从.config文件的规模可以看出linux内核的可配置项有两三千个。 所以linux内核是高度可配置的,而且linux内核的所有配置项很难全部搞明白。 因为linux内核的配置项太多太繁杂超出了人的大脑能够记忆和处理的数量级,因此linux内核不像uboot那样直接手工配置,而是发明了一个图形化的配置工具menuconfig。”

    8.2K20编辑于 2022-06-30
  • 来自专栏嵌入式ARM和Linux

    嵌入式Linux学习路线

    自己总结的Linux学习路线,还在这条路上继续奔跑着… 我将其总结为4个阶段吧: 入门 - 抛弃旧的思维习惯,熟练使用 Linux 命令行 从Window切换到Linux是一件很痛苦的事情,因为人类接受信息最快的方式就是图形化的信息 在这一阶段,推荐的书籍是《鸟哥的私房菜》、《linux shell脚本攻略》。 《鸟哥的私房菜》- 几乎每个linux程序的必经之路。 中级 - 通过系统调用或内核接口,学会自己进行程序设计 这一部分,我的建议是分两部分学习: linux程序设计,通过系统调用学会在linux环境下进行C/C++程序开发。 推荐的书籍有《Linux环境下C编程指南》、《UNIX 环境高级编程》。 linux驱动开发,学会基本的linux内核数据结构、接口等等,了解linux设备模型、设备树等,为理解内核打下坚实的基础。 linux内核源码解析,对每个子系统的代码架构深入研究,能对内核进行模块裁剪等。推荐的书籍有《Linux内核设计与实现》、《Linux内核源代码情景分析》和《深入理解Linux内核(第三版)》。

    7K10编辑于 2022-08-10
  • 来自专栏嵌入式技术笔记

    嵌入式Linux串口编程

    简介 嵌入式Linux下串口编程与Linux系统下的编程没有什么区别,系统API都是一样的。 嵌入式设备中串口编程是很常用的,比如会对接一些传感器模块,这些模块大多是RS232或者RS485接口,对于软件层面上来说,RS232与RS48区别不大。

    16.2K20发布于 2021-05-31
  • 来自专栏AIoT技术交流、分享

    嵌入式Linux:空洞文件

    2、在创建虚拟机时,如果一开始就分配了100GB的磁盘空间,而实际上系统安装完成后可能只使用了3、4GB的空间,这就是空洞文件的应用。 在 Linux 中,可以通过使用 lseek 和 write 系统调用来创建空洞文件。

    2.3K00编辑于 2024-05-26
  • 来自专栏AIoT技术交流、分享

    嵌入式Linux:异步IO

    2、实现异步I/O的步骤 在Linux中,使用异步I/O通常需要配合信号机制。 4、异步I/O的应用场景 网络编程:在服务器端需要处理大量连接时,异步I/O可以避免进程阻塞,适合高并发应用场景。 串口通信:在嵌入式系统中,串口通信是一种常见的通信方式。

    1.2K10编辑于 2025-03-29
  • 来自专栏AIoT技术交流、分享

    嵌入式Linux:文件共享

    Linux中,文件共享是指多个进程可以同时访问和操作同一个文件。 2、不同进程中分别使用 open 函数打开同一个文件 在Linux系统中,不同进程可以使用open函数打开同一个文件。

    1.3K00编辑于 2024-05-26
  • 来自专栏AIoT技术交流、分享

    嵌入式Linux:文件锁

    Linux 文件锁是一种用于管理多进程或多线程环境中资源访问的机制,确保只有一个进程或线程在特定时间内对文件进行操作,从而避免数据不一致的情况。 Linux 提供了多种文件锁机制,包括 flock、fcntl 和 lockf,每一种方法各有其优缺点和适用场景。 1、使用 flock() 进行文件锁定 flock 是 Linux 中最简便的文件锁方法之一,它提供了对文件整体加锁的功能。 Linux 中的文件锁机制提供了灵活的多进程并发控制方案。 flock 简单且适用于整个文件锁定,而 fcntl 更灵活,能够锁定文件的某个区域,并支持阻塞/非阻塞操作。

    1.2K10编辑于 2025-04-01
领券