自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 make V=1 输出信息

make -f ./Makefile syncconfigmake -f ./scripts/Makefile.build obj=scripts/basicrm -f .tmp_quiet_recordmcountmake -f ./scripts/Makefile.build obj=scripts/kconfig syncconfigscripts/kconfig/conf --syncconfig Kconfigmake -f ./scripts/Makefile.autoconf ||

2024-07-15 16:13:36 81

原创 make -f ./scripts/Makefile.build obj=dir 分析

由上可知,目标只有创建命令没有依赖,接下来执行目标的创建命令即可。6. 由步骤1中的定义可知, 在。2. 由步骤1中的定义可知,在。3. 由步骤1中的定义可知,在。4. 由步骤1中的定义可知,在。5. 由步骤1中的定义可知,在。

2024-07-10 19:32:32 289

原创 ./Kbuild 分析

由上可知,创建目标前要先创建其依赖,在。

2024-07-05 11:02:12 255

原创 ./scripts/Makefile.autoconf 分析

由于执行的命令未带目标参数,所以默认执行第一个目标(即目标。由上可知,目标有很多,第一个目标为。这些变量的定义都是在配置文件。这些变量的定义都是在配置文件。

2024-06-21 16:11:19 906

原创 make syncconfig V=1分析

命令【即生成 scripts/basic/fixdep 工具】,将实现目标。的所有依赖都已生成,接下来执行目标的生成语句即可。的所有依赖都已生成,接下来执行目标的生成语句即可。所用的命令、源码、头文件等信息全部写入到。,所以第493行条件不成立,这里什么都不做。输入命令自动匹配 563 行,由于目标。在顶层 Makefile 中定义为。时,94行条件成立,,101行条件成立,由上面三步可知,目标。

2024-06-19 19:28:23 351

原创 make V=1 分析

文章目录make V=1make V=11 Makefile:2321: "####### _all all scripts_basic outputmakefile scripts inputs dtbs cmd common disk drivers drivers/dma drivers/gpio drivers/i2c drivers/net drivers/net/phy drivers/power drivers/power/battery drivers/power/domain dr

2024-06-18 17:21:29 343

原创 make menuconfig V=1分析

(当在命令行中输入:时,94行条件成立,,101行条件成立,,则输出整个命令。输入命令自动匹配顶层 Makefile 的第563 行并执行,由于目标%config依赖和FORCE, 则执行顺序如下:执行依赖481-483行执行依赖492-497行执行依赖FORCE,什么都不做,2318行这三个依赖的生成见《》中的步骤1和步骤2:打印和执行命令【即生成 scripts/basic/fixdep 工具】,将实现目标所用的命令、源码、头文件等信息全部写入到文件中。

2024-06-11 18:55:41 493

原创 fixdep & conf & pkg-config & mconf 工具介绍

将配置文件和Kconfig文件中的相应信息写入到。查找实现目标所用的命令、源码、头文件等全部信息。实现目标所用的命令、源码、头文件等全部信息。系统的文件,较为复杂,也比较枯燥。,完成具体的词法和语法分析任务。编译产生的依赖文件*.d。编译时,编译器会根据选项。,是整个应用的主程序;主程序的文件,通过分析。文件生成新的依赖文件。

2024-06-06 19:40:42 482

原创 make xxxx_defconfig 分析【生成fixdep、conf工具】

(当在命令行中输入:时,94行条件成立,,101行条件成立,,则输出整个命令。输入命令自动匹配顶层 Makefile 的第563 行并执行,由于目标%config依赖和FORCE, 则执行顺序如下:执行依赖481-483行执行依赖492-497行执行依赖FORCE,什么都不做,2318行。

2024-05-31 16:49:12 461

原创 ./scripts/Makefile.build 分析

($($($($($($(if$($(if$($($($($($($($($($($($(if$($($($($(" = \$(目标PHONY在第17、417、424行中定义,最终目标PHONY依赖__build和FORCE。

2024-05-30 15:40:56 830

原创 scripts/Makefile.host 分析【fixdep、conf】

所以第75行条件成立,执行第76行,第76行中的 $(_hostc_flags) 在第70行中定义,其中的。第92行:$(HOSTCC) 在顶层 Makefile 的282行定义。,在 scripts/basic/Makefile 中定义。,又在 Makefile.build 中第57行引用。第83行:$(__hostc_flags),当输入。,其目录下存在此类文件【fixdep.c】,经过。第24行:由于顶层 Makefile 中执行。分析,第95行实际是打印并执行。函数,并将相应内容输入到。

2024-05-30 13:45:40 715

原创 make disclean V=1 分析

编译后执行。

2024-05-27 19:46:30 755

原创 ./scripts/Makefile.clean 文件分析

从上到下依次执行,伪目标PHONY在第8行和第91行可知,,目标__clean在74行定义了依赖和语句,在92行定义了依赖和语句,所以从这两个目标的依赖和语句可知,优先执行目标再执行目标__clean。

2024-05-23 22:33:42 1007 1

原创 Makefile中的函数介绍

返回与模式相匹配的所有文件名列表,如果没有任何匹配,那么返回空字符串。在Makefile中用于获取匹配指定模式的所有文件名列表。

2024-05-20 16:00:40 328 1

原创 ./scripts/Makefile.buid 的分析

用于实现对用户自己定义函数引用。在执行时,将它的参数“ PARAM”依次赋值给临时变量“ $(1)”、“ $(2)”(这些临时变量定义在“ VARIABLE”的值中)……第 8 行就是在“scripts/basic”或“scripts/kconfig ”中查找符合“tpl/%”的部分,然后将“tpl/”取消掉,但是“scripts/basic”或“scripts/kconfig ”没有“tpl/”,所以 src= “scripts/basic”或“scripts/kconfig ”即src=$(obj)。

2024-05-16 13:51:50 871

原创 uboot 顶层 Makefile 逐行分析

uboot顶层Makefile逐行分析

2024-05-10 19:30:09 380

原创 uboot 顶层 Makefile 分析

在 Makefile 中,规则的顺序是很重要的,因为,Makefile 中只应该有一个最终目标,其它的目标都是被这个目标所连带出来的,所以一定要让 make 知道你的最终目标是什么。一般来说,定义在 Makefile 中的目标可能会有很多,但是第一条规则中的目标将被确立为最终的目标。如果第一条规则中的目标有很多个,那么,第一个目标会成为最终的目标。但 make 并不会完全马上展开,make 使用的是拖延战术,如果变量出现在依赖关系的规则中,那么仅当这条依赖被决定要使用了,变量才会在其内部展开。

2024-05-10 17:13:48 148

原创 uboot工程目录分析

这个文件夹里面存放着和架构有关的文件,有很多架构,比如 arm、avr32、m68k 等,我们现在用的是 ARM 芯片,所以只需要关心 arm 文件夹即可,打开 arm 文件夹里面内容,有一部分 mach-xxx 的文件夹(mach 开头的文件夹是跟具体的设备有关的,比如“mach-exynos”就是跟三星的 exyons 系列 CPU 有关的文件)。.u-boot.xxx_cmd 是一系列的文件,这些文件都是编译生成的,都是一些命令文件,后续分析 uboot 的时候详细介绍。cpu 文件夹里面有个名为“

2024-05-09 19:53:10 827

原创 程序代码载体---存储器介绍

NAND 闪存的存储单元则采用串行结构,没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,存储单元的读写是以页和块为单位来进行(一页包含若干字节,若干页则组成储存块, NAND 的存储块大小为 8 到 32KB ),这种结构最大的优点在于容量可以做得很大,超过 512MB 容量的 NAND 产品相当普遍, NAND 闪存的成本较低,有利于大规模普及。NORFlash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NORFLASH里面的代码,采取内存的随机读取技术。

2024-05-09 15:04:42 1020

原创 Python编译exe可执行程序

Python程序py格式文件的优点是可以跨平台,但运行必须有Python环境,没有Python环境无法运行py格式文件。有没有方法,用户不同安装Python就可直接运行开发的项目工程?这就涉及到需要将Python的.py格式文件编写的脚本编译成一个系统可执行文件,这可用。PyInstaller支持在在Windows/Linux/Mac环境下将Python脚本打包成可执行程序,在没有Python环境的机器上运行。注意:需要在哪个操作系统平台一运行,需在相应的操作系统(或虚拟机)下编译。

2024-05-06 13:08:15 681 2

原创 嵌入式基础篇--环境搭建

文章目录1.手动搭建1.1 虚拟机1.21.1 TFTP服务端安装1.1.2 NFS服务端安装1.1.3 交叉编译工具链下载与说明1.1.4 更换国内源1.1.5 安装必要库1.2 开发板(树莓派3B)1.2.1 系统下载1.2.2 串口登录1.2.3 设置静态IP1.2.4 时区设置1.2.5 更换软件源1.2.6 ssh登录1.2.7 TFTP服务2.脚本自动搭建(推荐)2.1 公共函数分析2.2 虚拟机2.3 开发板2.3.1 开发板--镜像备份2.3.2 开发板--环境部署![在这里插入图片描述](

2024-01-30 18:48:30 1455 1

原创 sudo apt-get update错误情形分析

sudo apt-get update时,有时会出现空间不足,这个时候可以扩展一下根文件系统大小:在我们把镜像写入SD卡后,我们可以看到我们的树莓派文件存储空间很小,这是因为树莓派在刷系统时根分区不会使用剩余的SD卡空间,这样就会造成空间浪费,并且如果我们需要存储一下大文件时会受到限制。扩展文件系统后会把根分区扩展到整个SD卡,最大效率使用SD卡。解决办法:将系统版本修改为debian8更旧的稳定版,即可解决。错误原因:软件源的系统版本不匹配。

2024-01-30 10:25:07 416 1

原创 树莓派DNS重启失效

【代码】树莓派DNS重启失效。

2024-01-29 23:06:36 422

原创 树莓派串口登录密码输入始终错误,导致登录不了

注意:以上其实就是username:hash(password),这一串hash就是raspberry。以上动作结束后,重启树莓派,用putty登录,输入用户名: pi,密码: raspberry。在SD卡中根目录建立文件userconf。解决办法:重置树莓派的默认账号和密码。

2024-01-29 22:07:46 708

原创 boot 分区下cmdline.txt 文件详解

【代码】boot 分区下cmdline.txt 文件详解。

2024-01-29 21:57:02 447

原创 交叉编译器名称解释

代表用嵌入式库uclib或newlib,同时64位的arm默认就是hf的,因此不需要hf的后缀。例1:[gcc]-[arm]-[8.3]-[2019.03]-[x86_64]-例2:[gcc]-[arm]-[8.3]-[2019.03]-[x86_64]-例3:[gcc]-[arm]-[8.3]-[2019.03]-[x86_64]-例4:[gcc]-[arm]-[8.3]-[2019.03]-[x86_64]-例5:[gcc]-[arm]-[8.3]-[2019.03]-[x86_64]-

2024-01-29 18:48:24 353

原创 NFS配置文件/etc/exports--格式说明

如果多个用户要写入NFS目录,则立即写入,当使用async时,则需此设置 hide 共享NFS目录的子目录。NFS客户端访问共享目录下的一个目录时,NFS服务器是否检测这个目录是否是这个共享目录下的某个子目录。例:/home/xd/nfs *(rw,sync,no_root_squash)指定NFS服务器/etc/passwd文件中匿名用户的UID。指定NFS服务器/etc/passwd文件中匿名用户的GID。如果多个用户要写入NFS目录,则归组写入(默认)/home/xd/nfs,客户端访问的目录。

2024-01-29 17:58:44 815

原创 嵌入式驱动篇--Hello测试驱动

编写测试Hello测试驱动。编写Makefile。

2024-01-28 09:45:00 355 1

原创 嵌入式系统篇--系统镜像制作与备份

整个构建过程可以在安装Linux系统的PC或服务器上进行,也可以在64位树莓派上进行(推荐使用基地2.0最新的u3),我使用x64平台的Debian进行演示,过程中我会说明与使用树莓派不同的地方,没有说明的就是通用的。我们首先来创建镜像文件,这次我们构建的是lite系统不包含桌面环境,所以我创建一个3G的镜像(其实2G就够),这里可以根据自己定制的需要改变镜像的大小。树莓派系统镜像有两个分区,一个boot分区类型为FAT32,一个rootfs根分区类型为ext4,下面开始分区。fat32分区格式化工具。

2024-01-27 10:00:00 1819 1

原创 树莓派3B用32位系统还是64位系统?

树莓派3B处理器使用的是 ARM Cortex-A53,它支持 ARMv8 架构,因此可以使用 32 位系统或 64 位系统。但是,由于树莓派3B的内存只有 1GB,因此使用 64 位系统可能会出现一些限制。总体来说,使用 32 位系统是更适合树莓派3B的选择。

2024-01-26 11:03:51 1220

原创 嵌入式系统篇--上电启动流程

文章目录1.ARM芯片上电启动流程1.1 内核引导1.2 运行init初始化进程—— 初始化系统环境1.3 运行级别 —— runlevel1.4 系统初始化 —— 加载开机启动程序1.5 用户登录1.5.1 方式1:命令行登录1.5.2 方式2:ssh登录(常用)1.5.3 方式3:图形界面登录(常用)1.6 进入 login shell1.7 打开 non-login shell2.树莓派启动流程2.1 树莓派 boot分区2.1.1 COPYING.linux2.1.2 LICENCE.broadco

2024-01-25 22:09:53 1436 1

原创 嵌入式基础篇--了解和搭建开发环境

芯片一上电 SP 指针还没有初始化,所以 C 语言没法运行,对于有些芯片还需要初始化 DDR,因为芯片本身没有 RAM,或者内部 RAM 不开放给用户使用,用户代码需要在DDR 中运行,因此一开始要用汇编来初始化 DDR 控制器。Cortex-A 芯片一上电 SP 指针还没初始化,C 环境还没准备好,所以肯定不能运行 C 代码,必须先用汇编语言设置好 C 环境,比如初始化 DDR、设置 SP 指针等等,当汇编把 C 环境设置好了以后才可以运行 C 代码。存储在CPU内部,是指导并优化CPU运算的硬件程序。

2024-01-24 18:31:36 1036 1

虚拟机环境和树莓派调试环境自动配置脚本

虚拟机环境设置包括ssh、ftp、nfs、交叉编译工具链、必要库; 树莓派环境设置包括串口登录、静态IP、软件源更换、时区、ssh、tftp等

2024-01-29

空空如也

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

TA关注的人

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