avatar
Articles
127
Tags
0
Categories
17
首页
归档
友链
李瑞琦的博客
首页
归档
友链

李瑞琦的博客

03 tar工具
Updated2025-10-31|04-Linux01-Linux基本操作
tar工具 tar是Ubuntu中的一个可执行文件,可以用来打包文件和目录,并生成.tar格式的文件,并且可以对打包后的文件进行压缩,生成.tar.gz等格式的文件 常见参数 参数 功能 -c 创建tar包 -x 解压tar包 -v 详细展示处理文件名 -f 指定输出文件名 -z 使用gzip压缩,.tar.gz 是常见的压缩文件扩展名 -j 使用bzip2压缩,.tar.bz2 是使用 bzip2 压缩的文件扩展名 -t 查看 tar 包中的文件列表 常见参数组合 -cvf:创建tar包 -xvf:在当前目录解压tar包 -xzvf:在当前目录使用gzip工具解压tar包
04 交叉编译
Updated2025-10-31|04-Linux01-Linux基本操作
交叉编译CMake交叉编译工具链sysroot 在使用==Cmake==搭建交叉编译环境时,需要指定sysroot,这个sysroot到底是什么呢? 在嵌入式开发中,sysroot是一个为了方便移植和交叉编译而创建的特殊目录。他包含了用于目标系统的头文件、库文件。在交叉编译时,我们通常不希望用宿主机的头文件和库文件,而仅使用sysroot中的头文件和库文件,以保证生成的东西能够在目标系统运行 未设置--sysroot 设置了--sysroot=dir后 头文件搜索路径 /usr/include dir/usr/include 依赖库搜索路径 /usr/lib dir/usr/lib 如何查看sysroot可以用以下方式查看sysroot 1${CC}...
06 开机自启动
Updated2025-10-31|04-Linux01-Linux基本操作
Linux初始化系统 想要设置开发板的某程序开机时自启动,有多种方式,本质上是使用了Linux的初始化系统(在linux内核启动后期会尝试加载用户空间的init程序,init程序是由内核启动的第一个用户空间程序(PID为1),该程序负责启动用户空间的服务和程序),init程序由初始化系统提供: 可以通过以下方法查看系统的init进程到底是谁: 法1: 法2:pstree -p BusyboxBusyBox 是一个高度集成的嵌入式Linux工具集,它既是一个轻量级初始化系统,也是一个精简版的Unix命令集合。它的核心设计目标是用最小的空间提供完整的Linux系统功能 BusyBox 提供了一个简化的init程序,用于替代传统的 SysVinit或 systemd,它的init程序有2种实现形式: (1) 传统 SysVinit 风格 配置文件:/etc/inittab 启动流程: 内核启动后执行 /sbin/init(通常是 BusyBox 的符号链接) BusyBox 读取 /etc/inittab,定义运行级别和启动脚本 执行 /etc/init.d/中的脚本(如...
07 开发板部署nodejs
Updated2025-10-31|04-Linux01-Linux基本操作
在开发板上运行node.js添加环境变量nodejs主要有2个可执行文件:node, npm他们都在同一个目录下,为了后面简单使用,需要把该目录添加到环境变量并开机自动设置 换源1npm config set registry https://registry.npmmirror.com 关闭ssl验证1npm config set strict-ssl false 安装依赖 由于js是个跨平台语言,所以只要给开发板移植了nodejs环境,就可以使用其丰富的前端代码了 安装依赖时有2种选项: 全局安装:npm install xxx -g 局部安装:npm install xxx,会在当前目录生成一个node_modules文件夹,新安装的依赖都在该目录下,切换到别的目录运行js就不行了
08 pkg config
Updated2025-10-31|04-Linux01-Linux基本操作
pkg-configpkg-config是一个命令行工具,使用它可以快速查看当前环境中安装了哪些第三方库,方便在一个库没提供.cmake文件时链接该库 核心用法12345678910pkg-config --list-all # 列出所有库pkg-config --modversion 库名 # 查看版本pkg-config --cflags 库名 # 查看编译标志pkg-config --libs 库名 # 查看链接标志pkg-config --variable=libdir 库名 # 库文件目录pkg-config --variable=includedir 库名 # 头文件目录pkg-config --variable pc_path pkg-config 注意事项 不是所有库都注册了 pkg-config 信息,有些库可能没有 .pc 文件,但是使用apt安装的带-dev的包一般都带.pc文件 如果找不到某个库,可能是因为: 库确实没有安装 库没有提供 .pc 文件 .pc 文件不在 pkg-config 的搜索路径中 你可以通过设置...
09 删掉某个可执行文件相关依赖
Updated2025-10-31|04-Linux01-Linux基本操作
删掉某个可执行文件相关依赖我们在用apt-get装了某个可执行文件/库之后,可能又想删掉它,可能第一时间想到的方式是用rm *的方式删,但是这样容易删不干净。既然文件是由apt-get安装的,拿再由包管理工具删掉就好了 寻找待卸载文件属于哪个包 以qemu-system-riscv64为例 法1:检查系统中通过 apt 安装的 QEMU 相关包 1apt list --installed | grep qemu 法2:查看具体包名 1dpkg -S /usr/bin/qemu-system-riscv64 卸载包12sudo apt-get remove qemu-system-riscv # 保留配置文件sudo apt-get purge qemu-system-riscv # 彻底删除(推荐)
00 Windows需要进行的设置
Updated2025-10-31|04-Linux02-系统移植
Windows需要进行的设置网络设置虚拟机要通过桥接与PC的物理网卡相连,2者的IP得在一个网段 虚拟机设置VMWare和WSL2的Hyper V冲突了,必须关闭一个 12345# 关hyper-vbcdedit /set hypervisorlaunchtype off# 开hyper-vbcdedit /set hypervisorlaunchtype auto
00 开发板启动方式选择
Updated2025-10-31|04-Linux02-系统移植
开发板启动流程Linux(Cortex A系列)芯片和STM32不一样,除了能从内部Flash启动,还可以从其他多种外部介质中启动,比如SD卡,EMMC,NAND Flash等。 芯片的启动可以分为启动方式选择、启动设备选择2个问题 启动方式以I.MAX6ULL为例,它的启动方式有4种,具体选择哪种由芯片上特定的引脚BOOT_MODE0和1决定,这点和STM32类似,STM32芯片上也有BOOT0和BOOT1这样的引脚。 通常只使用方式2和3,绝对不能使用方式1 不管是哪种方式,都依赖SoC内部的BOOT ROM 串行下载首先运行BOOT ROM中的代码,初始化基本外设,通过USB OTG或者串口的形式将代码下载到板子的DDR上,这个下载需要用NXP提供的软件MfgTool,一般用于设备最终量产时 内部BOOT模式首先运行BOOT ROM中的代码,初始化基本外设(比如SD卡这样的boot设备),再从对应的boot设备中将代码拷贝到指定的RAM(一般是DDR)中运行 Boot...
01 系统移植概述
Updated2025-10-31|04-Linux02-系统移植
系统移植概述 所谓Linux系统的移植,就是让Linux在自己的嵌入式板子上跑起来。但是不像STM32上移植个FreeRTOS那么简单,移植Linux还是挺复杂的,不仅包含了OS本身,还要移植bootloader和rootfs 为了让Linux系统能够运行,只需保证组成Linux最小系统的那些部分都被移植了就行了,具体地,包括以下几点(具体作用见另一个文档): BootLoader:常见的有U-Boot,本质上就是一个裸机程序,用于初始化一些外设,然后将Linux内核从Flash拷贝到DDR启动,内核启动后U-Boot就结束运行了。就相当于PC上的BIOS Linux内核:这里需要的不是Linux内核源码,而是编译好的内核镜像 根文件系统:一个目录,包含了Linux运行必备的一些文件和程序 只要移植了这3部分,那么一个基础的Linux系统就能跑起来了,而Ubuntu那些的Linux发行版也包含了这几部分,并进行了一定的扩充。 各种配置文件在编译移植完的uboot、内核、根文件系统时,大致流程都是: 1.加载适配此板子的默认(default)配置文件:make...
02 开发板网络设置
Updated2025-10-31|04-Linux02-系统移植
开发板上网 如果开发板要连接外网,且开发板是通过网线和笔记本连接的话,需要设置一些东西才行! 虚拟机网卡设置关于开发板uboot如何才能ping通ubuntu和pc机_如何让开发板和pc相互ping通-CSDN博客 1.虚拟机里面如果没有网络图标了 12sudo nmcli network offsudo nmcli network on 2.虚拟机桥接模式的那个网口默认就是线缆已断开,硬件上必须要连网线才可以 开启电脑的网络共享开发板连接外网失败ping: bad address ‘www.baidu.com‘_ping bad address-CSDN博客 设置路由和DNS信息解决开发板ping不通外网的问题_开发板网口直连不通,但是连交换机能通-CSDN博客
1…456…13
avatar
Li Ruiqi
总有低谷
Articles
127
Tags
0
Categories
17
Follow Me
Categories
  • 01-计算机基础八股12
  • 02-开发工具12
    • CMake7
  • 03-C++14
  • 04-Linux52
    • 01-Linux基本操作8
    • 02-系统移植9
    • 03-内核开发24
    • 04-应用开发8
    • 05-安卓开发3
  • 05-MCU28
    • 01-FreeRTOS7
    • 02-STM329
    • 03-MSP4304
    • 04-LVGL4
  • 06-嵌入式硬件5
  • 07-RISC-V4
Website Info
Article Count :
127
Unique Visitors :
Page Views :
Last Update :
©2019 - 2025 By Li Ruiqi
Framework Hexo|Theme Butterfly
人因梦想而伟大