文章目录 Linux嵌入式开发——C编程 一、编写C程序 1.1、设置vim编辑器 1.2、编写C程序 二、编译C程序 三、make工具和Makefile文件 3.1、编写C程序 C文件 H文件 3.2...、不使用make工具 3.3、使用make工具和Makefile文件编译 Linux嵌入式开发——C编程 一、编写C程序 我们目前就是使用VIM编辑器编写程序,当然,也可以使用vscode,但是vscode...gcc -c main.c gcc -c input.c gcc -c calcu.c gcc main.o input.o calcu.o -o main # 当有文件需要修改 gcc -c input.c...: input.c gcc -c input.c calcu.o: calcu.c gcc -c calcu.c # clear需要执行的命令 clean: rm *.o rm main...make 运行结果如下所示: gcc -c main.c gcc -c input.c gcc -c calcu.c gcc -o main main.o input.o calcu.o 当我们修改其中一个文件时
嵌入式Linux开发主要有四种方式:裸机开发、SDK开发、驱动开发和应用开发。 1、裸机开发 裸机开发通常指在没有操作系统支持的环境中直接在硬件上运行程序的开发。...在嵌入式Linux SDK开发中,开发者可以利用Linux系统的强大功能和灵活性,同时针对特定的硬件平台进行优化和调整,以满足嵌入式设备的特定需求。...3、驱动开发 驱动开发是指为嵌入式Linux系统编写设备驱动程序的过程。在这个过程中,开发者需要深入理解Linux内核架构,学会如何在Linux内核环境下编写、调试和维护设备驱动程序。...4、应用开发 Linux 应用开发是指在 Linux 操作系统上开发应用程序的过程。这包括创建、编写、调试和优化应用程序,以在 Linux 环境中运行。...Linux 提供了丰富的开发工具和库,使开发者能够构建各种类型的应用,从命令行工具到图形用户界面(GUI)应用,再到服务器端应用。
今天咱们来聊聊嵌入式Linux开发这个话题。 说实话,我从机械转行做嵌入式这么多年,最让我觉得有意思的就是嵌入式Linux这块。...什么是嵌入式Linux开发 1.1 嵌入式Linux的定义 嵌入式Linux开发,简单来说就是把Linux操作系统移植到嵌入式设备上,然后在这个系统上开发应用程序或者驱动程序。...2.4 设备驱动开发 驱动开发是嵌入式Linux开发中最核心也是最难的部分。 Linux的驱动分为字符设备驱动、块设备驱动和网络设备驱动。...如果你也想从事嵌入式Linux开发,我的建议是先打好基础,学习C语言、数据结构、操作系统原理等等。 然后动手实践,从简单的驱动开始写起,逐步深入。 遇到问题不要怕,多查资料,多思考,多尝试。...AD画板零基础入门学习路线 C语言零基础入门学习路线 C++语言零基础入门学习路线 ESP32零基础入门学习路线 FreeRTOS零基础入门学习路线 Linux应用开发零基础入门学习路线 Linux底层开发零基础入门学习路线
文章目录 Linux嵌入式开发——连接文件 ln命令 硬连接 符号连接(软连接) Linux嵌入式开发——连接文件 Linux有两种连接文件:第一种叫符号连接也称为软连接,第二种就是硬链接。...1578340 -rwxrwxrwx 3 ygr ygr 15960 1月 18 17:08 a2* 1574339 -rw-rw-r-- 1 ygr ygr 78 1月 18 17:07 a.c...我们来具体的看一下到底是怎么回事: 首先,我们给a.c创建一个硬连接,然后修改这个硬连接文件,看一下源文件会不会被修改。...具体做法如下所示: # 创建硬连接文件 ln a.c a1.c # 编辑硬连接文件 gedit a1.c 具体修改如下所示: // 修改前 #include int main (void...lrwxrwxrwx 1 ygr ygr 11 1月 20 17:09 a1 -> /home/ygr/a* 1574339 -rw-rw-r-- 1 ygr ygr 107 1月 20 16:47 a.c
文章目录 Linux嵌入式开发——文件权限 文件权限 文件权限管理 修改文件权限 修改文件所属用户 拥有者 拥有者组 Linux嵌入式开发——文件权限 文件权限 文件权限是指不同的用户或用户组对某个文件拥有的权限...我们可以使用如下命令去查看一个文件的信息: ls a.c -l # ls 文件名 -l 我们接下来就来分析一下 a.c文件信息,首先,a.c的文件信息如下所示: - rw-...rw- r-- # 我们将其划分开来 首先,第一位表示文件类型,在这里没有显示,但是有些开头是c 或者 d ,然后剩下的每三位表示一组权限。
# 改名 mv b.txt a.txt # 移动 mv a.c test1/ 显示网络配置信息——ifconfig 显示一下网络信息,可以打开和关闭网卡,就是使用前可能要下载一下。...find -name a.c 查找内容——grep 这个主要用来查找内容,相当于我们windows下的查找操作。...gedit a.c 当前的系统进程查看——ps 这个用来查看系统进程,在嵌入式开发比较常用。...top 文件类型查看——file 就是用来查看文件类型,在嵌入式用的蛮多。 file a.c
文章目录 Linux嵌入式开发——shell脚本 一、shell脚本基本原则 二、shell脚本语法 2.1、编写shell脚本 2.2、交互式shell脚本 2.3、shell脚本的数值计算 2.4、...判断符 2.6、默认变量 三、shell脚本条件判断 if then if then else case 四、shell脚本函数 不带参数 带参数 五、shell循环 while until for Linux...嵌入式开发——shell脚本 经过我们前面的学习,我们已经能够在终端中输入命令来完成一些常用的操作,但是都是一条一条地输入命令,如果需要执行的命令一旦多起来,就会很麻烦。...shell脚本提供数组、循环、条件判断的等功能,一般是Linux运维或者系统管理员要掌握的,但作为嵌入式开发人员,我们只需要掌握shell脚本最基础的部分即可。...只能说有点像C语言里面的短路,接下来我们来介绍一下||运算符。
2.2.4 配置网络 重点来了,以前我们在VMware中使用桥接,这需要保证Windows、Ubuntu、开发板三者互通,而很多人的电脑有多个网卡,这涉及的网络设置太复杂了。...2.2.4.2 设置NAT网络的端口映射 在NAT网络下,外面的设备无法看到Ubuntu,要想开发板能访问到Ubuntu,需要进行端口映射。 先关闭Ubuntu,再关闭VMware,才能设置。...这样,开发板访问Windows的这些端口时,才可以访问到Ubuntu。 先使用管理员身份运行“虚拟网络编辑器”,如下图所示: ?...2.2.4.3 修改Ubuntu的mountd端口 在NAT网络下,要想开发板能通过NFS挂载Ubuntu,需要修改mountd端口为9999 如果你还不会用vi命令,可以在Ubuntu桌面启动终端,
搭建开发环境的主要工作是:安装虚拟机、安装Windows开发工具。 学习嵌入式Linux时,各种程序比如Linux内核、你编写的驱动、应用,都需要在Linux机器下编译。...正所谓在Windows下生活,在Linux下工作。难道我们需要2台电脑,一台装Windows、另一台装Linux?不,我们可以用虚拟机。在Windows电脑上安装虚拟机,在虚拟机里安装Linux。...无论是VMware还是Docker,都可以满足嵌入式Linux的学习与工作。...2.1.2 安装Windows软件 选择、安装好虚拟机后,就要在Windows安装各种开发软件了。...注意:在Windows解压Linux内核源时有错误是正常的,因为Windows并不支持某些Linux特有的文件,并且Windows中文件名不区分大小写,当出现提示是否覆盖文件时,选择“是”。
Yocto :一个开源协作项目,提供模板、工具和方法,帮助您为嵌入式产品创建定制的基于 Linux 的系统,而不管硬件架构如何。...《Buildroot》 Buildroot是我学习的第一个构建嵌入式系统的方式。 Buildroot:通过交叉编译生成嵌入式 Linux 系统的简单、高效且易于使用的工具。...核心构建系统用 Make 编写,并且足够短以便开发人员了解整个系统,同时可扩展到足以满足嵌入式Linux 开发人员的需求。Buildroot 核心通常只处理常见用例,但它可以通过脚本进行扩展。...Kconfig 由 Linux 内核社区开发,广泛用于开源项目,使得许多开发人员都熟悉它。 由于禁用所有可选的构建时设置的设计目标,Buildroot 通常会使用开箱即用的配置生成尽可能最小的镜像。...个人感想: 我在使用buildroot之前,我在学习嵌入式Linux是没有通过什么构建方法的,只是裸露的uboot,kernel,根文件系统。每一个都要自己去编译,创建。
c的代码及动态库调用: 最终需要完成的封装有:串口驱动,扫码模块,语音播放库,UI显示库,卡库... 一、串口及扫码模块驱动: linux上的串口驱动,这个较简单,有标准的模块可用。...都用到了标准的linux串口。只不过二维码模块的供电需要先开启IO口 这个已经验证,串口和二维码的串口都是ok了。可以使用。...C.uint = C.GUI_BLUE GUI_GREEN C.uint = C.GUI_GREEN GUI_RED C.uint = C.GUI_RED GUI_CYAN...C.uint = C.GUI_CYAN GUI_MAGENTA C.uint = C.GUI_MAGENTA GUI_YELLOW C.uint = C.GUI_YELLOW...C.uint = C.GUI_WHITE GUI_LIGHTGRAY C.uint = C.GUI_LIGHTGRAY GUI_GRAY C.uint = C.GUI_GRAY
文章目录 Linux嵌入式开发——Makefile基本语法 一、Makefile 规则格式 二、Makefile 变量 2.1、赋值符“=” 2.2、赋值符“:=” 2.3、赋值符“?...=” 2.4、变量追加“+=” 三、Makefile 模式规则 四、Makefile 自动化变量 五、Makefile 伪目标 Linux嵌入式开发——Makefile基本语法 接下来我们来详细介绍一下基本的...: input.c gcc -c input.c calcu.o: calcu.c gcc -c calcu.c # clear需要执行的命令 clean: rm *.o rm main...main.o: main.c gcc -c main.c input.o: input.c gcc -c input.c calcu.o: calcu.c gcc -c calcu.c 其实我们所谓的模式规则就是在目标中引入了一个通配符...根据我们刚刚学习的自动化变量,我们可以得到下面的等价语句: # 等价 main.o: main.c gcc -c main.c input.o: input.c gcc -c input.c
嵌入式Linux系统开发:从零基础到实战经验,一步步揭秘-LINUX-PHP中文网....文中对 Linux 在嵌入式系统中的应用进行了介绍,虽然未专门针对进程实战开发,但 Linux 在嵌入式系统中的特性与应用场景等内容,有助于从宏观角度理解进程开发所处的环境。...[4] 【嵌入式 Linux (基础篇)】嵌入式 Linux 底层系统开发流程和应用开发流程 [EB/OL]. [发布时间 2024-10-24]....【嵌入式Linux(基础篇)】嵌入式Linux底层系统开发流程和应用开发流程_嵌入式linux uboot kernel 和根文件系统开发过程-CSDN博客....详细阐述了嵌入式 Linux 底层系统开发流程和应用开发流程,进程开发作为应用开发的一部分,该流程介绍有助于明确进程实战开发在整个嵌入式 Linux 开发体系中的位置和作用。
嵌入式Linux驱动开发——汇编点灯 本文章开始记录学习嵌入式Linux的过程,使用的开发板是正点原子的阿尔法,以及左老师的书籍和视频。...ldr r0, =0X020C406C: 这一行将立即数 0X020C406C 加载到寄存器 r0 中,这个值是GPIO1的时钟寄存器的地址。...-g -c led.s -o led.o: arm-linux-gnueabihf-gcc:使用arm-linux-gnueabihf工具链中的gcc编译器。...kali@ubuntu:~/linux/driver/01_leds$ arm-linux-gnueabihf-gcc -g -c led.s -o led.o kali@ubuntu:~/linux/...arm-linux-gnueabihf-gcc -g -c led.s -o led.o:编译led.s文件为目标文件led.o,这里使用了arm-linux-gnueabihf工具链中的gcc编译器,
1.2.1 嵌入式 Linux 开发有哪些内容? 嵌入式 Linux 系统,就相当于一套完整的 PC 软件系统。 ? Windows 为例: ① 电脑一开机,那些界面是谁显示的?...类似的,这个 BIOS 对应于嵌入式 Linux 里的 bootloader。 Bootloader 的作用就是去 Flash、SD 卡等设备上读入 Linux 内核,并启动它。...在 C 盘上,里面有各种系统软件。 对应的,系统运行必需的文件在 Linux 下我们称之为根文件系统。 ③ windows 能识别出 C 盘、D 盘,那么肯定有读写硬盘的能力。...同样的,嵌入式 Linux 系统中我们也有各种 APP,它们位于根文件系统上。...简单地说,嵌入式 LINUX 系统里含有: ① bootloader:用于启动 Linux 内核 ② Linux 内核(含有驱动程序):提供进程管理、文件管理、硬件驱动等 ③ 根文件系统:系统运行必需的文件
100ask.taobao.com/ (淘宝) https://weidongshan.tmall.com/(天猫) ---- 版本 日期 作者 说明 V1 2020 韦东山 技术文档 全文下载地址: 嵌入式...Linux系统开发完全手册 第二版 2.1 安装Windows软件 2.1.1 这么多虚拟机,如何选择?...搭建开发环境的主要工作是:安装虚拟机、安装Windows开发工具。 学习嵌入式Linux时,各种程序比如Linux内核、你编写的驱动、应用,都需要在Linux机器下编译。...无论是VMware还是Docker,都可以满足嵌入式Linux的学习与工作。...2.1.2 安装Windows软件 选择、安装好虚拟机后,就要在Windows安装各种开发软件了。
一、freetype简介 FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,可以非常方便我们开发字体显示相关的程序功能。...FreeType库是高度模块化的程序库,虽然它是使用ANSI C开发,但是采用面向对象的思想,因此,FreeType的用户可以灵活地对它进行裁剪。...比如:[wbyq@wbyq lcd_freetype]$ arm-linux-gcc freetype.c -lfreetype 2.3 windows电脑上的矢量字体存放目录 2.4 示例代码 #.../8*y+x*vinfo.bits_per_pixel/8); *lcd_p=c; } /* 函数功能: 封装读点函数 函数参数: u32 x,u32 y,u16 c */ u32 LCD_ReadPoint...驱动开发"); /*7.
在嵌入式系统开发中,C语言可以用于各个部分的开发,uboot、内核、驱动、应用。所以只要会c语言,就可以做嵌入式系统开发,不过对于应用层的开发,还是C++好一些。...在这里也对C语言列举几个例子,展示下C语言的强大: Unix操作系统、Linux操作系统都是C语言开发的。...Lua脚本语言,是一个速度非常快的脚本语言,其解释器也是c语言开发的。 Shell脚本语言,其解释器也是C语言开发的,Linux下的命令,都是C语言编写的。 C语言作为底层开发语言,当之无愧。...C++ 在嵌入式系统开发中,大部分是使用C语言,在嵌入式Linux系统中,随着处理器的处理能力的增强,现在做业务应用开发时C++用的越来越多了。...使用Qt开发效率是很高的,包括界面与非界面的应用,使用Qt做嵌入式的应用开发会越来越多。 使用过boost与Qt组件库与封装,可能就不再想使用标准C++的啦!
2.2.5 配置Ubuntu 确保Ubuntu能上网之后,使用下面命令一键配置/初始化开发环境((其实就是安装tftp,nfs,vim等软件,此脚本只支持Ubuntu-16.04 /Ubuntu-18.04...2.2.6 默认不能使用root用户登录 我在开发过程中从没用过root用户,要使用root权限时可以在命令前加上“sudo”,比如“sudo ps -a”。
在嵌入式 Linux 应用开发中,vfork() 函数是一个用于创建新进程的系统调用。它与 fork() 函数类似,但在实现机制和使用场景上存在一些差异。...替代 system() 的安全方案 场景特点:嵌入式开发中,system() 函数内部调用 fork() + exec(),可能存在 Shell 注入漏洞。...在嵌入式开发中,vfork() 是一把双刃剑——用对场景可显著优化性能,但稍有不慎会导致灾难性后果。若非必要,优先选择更安全的 fork() 或 posix_spawn()。...六、总结 综上所述,在嵌入式开发中,vfork() 是一把双刃剑:用对场景可显著优化性能,但稍有不慎就会导致灾难性后果。若非必要,建议优先选择更安全的 fork() 或 posix_spawn()。...GNU C Library(glibc)文档 获取方式:可以访问 GNU 官方网站 查看相关文档。 简介:glibc 是 GNU 计划发布的 C 标准库,是 Linux 系统中最常用的 C 库。