0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式Linux开发-uboot常用命令介绍(上篇)

DS小龙哥-嵌入式技术 来源:DS小龙哥-嵌入式技术 作者:DS小龙哥-嵌入式技 2022-08-14 08:54 次阅读

1. 前言

U-boot是一种开源bootloader, 作用是用来引导操作,以及给开发人员提供测试调试工具。本身算是个精简的Linux系统,主要是负责硬件的初始化和引导,本身带有一些工具,作为引导程序,常作为嵌入式设备的引导。当真正的系统开始运行的时候U-boot就把管理权限交了出去。

选择U-Boot的理由: ① 开放源码; ② 支持多种嵌入式操作系统内核,如Linux、NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS, android; ③ 支持多个处理器系列,如PowerPC、ARM、x86、MIPS; ④ 较高的可靠性和稳定性; ⑤ 高度灵活的功能设置,适合U-Boot调试、操作系统不同引导要求、产品发布等; ⑥ 丰富的设备驱动源码,如串口、以太网、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、键盘等; ⑦ 较为丰富的开发调试文档与强大的网络技术支持;

U-BOOT工作模式

U-Boot的工作模式有启动加载模式和下载模式。启动加载模式是Bootloader的正常工作模式,嵌入式产品发布时,Bootloader必须工作在这种模式下,Bootloader将嵌入式操作系统从FLASH中加载到SDRAM中运行,整个过程是自动的。下载模式就是Bootloader通过某些通信手段将内核映像或根文件系统映像等从PC机中下载到目标板的FLASH中。用户可以利用Bootloader提供的一些命令接口来完成自己想要的操作。

当前测试uboot命令的开发板是友善之臂tin441,使用三星的EXYNOS4412,本篇文章重点是介绍uboot命令行的命令功能,用法,使用的uboot版本是2010.12,是友善之臂官方提供的uboot。

image-20220124133952572

2. UBOOT命令介绍

2.1 帮助命令--help

查看当前的UBOOT支持那些命令。

TINY4412 # help
?    - alias for 'help'
base  - 打印一组地址偏移量
bdinfo - 开发板的信息结构
boot  - boot default, i.e., run 'bootcmd'
bootd  - boot default, i.e., run 'bootcmd'
bootelf - Boot from an ELF image in memory
bootm  - 从内存启动应用程序
bootp  - 通过使用BOOTP / TFTP协议的网络引导映像
bootvx - Boot vxWorks from an ELF image
chpart - 更改活动分区 
cmp   - memory compare
coninfo - print console devices and information
cp   - 内存拷贝
crc32  - 检验和的计算 
dcache - 启用或禁用数据缓存
dnw   - dnw   - USB设备进行初始化并准备好接受Windows server(特定的)
​
echo  - echo args to console
editenv - 修改环境变量
emmc  - 打开/关闭eMMC引导分区
env   - 环境处理命令
exit  - 退出脚本
ext2format- ext2 ext2format——磁盘格式
​
ext2load- 从Ext2文件系统加载二进制文件
ext2ls - 在一个目录列表文件(默认/)
ext3format- ext3 ext3format——磁盘格式
​
false  - 什么也不做,但没有成功
fastboot- fastboot——使用USB fastboot协议
​
fatformat- FAT32 fatformat——磁盘格式
​
fatinfo - fatinfo——打印文件系统的信息
fatload - fatload——从dos加载二进制文件的文件系统
​
fatls  - 一个目录列表文件(默认/)
fdisk  - fdisk for sd/mmc.
​
go   - 在“addr”启动应用程序
help  - 打印命令描述/使用帮助
icache - enable or disable instruction cache
iminfo - print header information for application image
imxtract- extract a part of a multi-image
itest  - return true/false on integer compare
loadb  - load binary file over serial line (kermit mode)
loads  - load S-Record file over serial line
loady  - load binary file over serial line (ymodem mode)
loop  - infinite loop on address range
md   - memory display
mm   - memory modify (auto-incrementing address)
mmc   - MMC子系统
mmcinfo - mmcinfo -- display MMC info
movi  - movi - sd/mmc r/w sub system for SMDK board
mtdparts- define flash/nand partitions
mtest  - simple RAM read/write test
mw   - memory write (fill)
nfs   - boot image via network using NFS protocol
nm   - memory modify (constant address)
ping  - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
reginfo - print register information
reset  - Perform RESET of the CPU
run   - run commands in an environment variable
saveenv - save environment variables to persistent storage
setenv - set environment variables
showvar - print local hushshell variables
sleep  - delay execution for some time
source - run script from memory
test  - minimal test like /bin/sh
tftpboot- boot image via network using TFTP protocol
true  - do nothing, successfully
usb   - USB sub-system
version - print monitor version
复制代码

2.2 查看具体命令的使用方法--help

格式: help <你想要查的指令> 或者 ? <你想要查的指令> , 甚至 h <你想要查的指令缩写>。

TINY4412 # help sleep
sleep - 延迟执行一段时间
​
Usage:
sleep N
  - 延迟执行N秒(N是_decimal_ ! ! !)
复制代码

image-20220124130542141

2.3 打印环境变量--printenv

TINY4412 # printenv
baudrate=115200
bootargs=root=/dev/nfs nfsroot=192.168.18.3:/work/rootfs ip=192.168.18.123:192.168.18.3:192.168.18.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200
bootcmd=movi read kernel 0 40008000;movi read rootfs 0 41000000 400000;bootm 40008000 41000000
bootdelay=3
ethaddr=00:40:5c:26:0a:5b
gatewayip=192.168.0.1
ipaddr=192.168.0.20
netmask=255.255.255.0
serverip=192.168.0.10
​
Environment size: 416/16380 bytes
复制代码

baudrate: 当前的波特率。 一般不修改。 bootcmd: 启动命令。 bootdelay:启动命令 bootcmd 延时执行的时间。 ethaddr: 网卡 MAC 地址。 gatewayip:网关 IP 地址。 ipaddr: 开发板 IP 地址。 netmask: 子网掩码。 serverip: 服务器 IP(一般是 PC 的 IP,给开发板提供各种网络服务的主机的 IP) bootargs: u-boot 传递给操作系统内核的启动参数。(很重要)

使用示例 打印指定的环境变量

格式: printenv 打印的环境变量名称

TINY4412 # printenv bootargs
bootargs=root=/dev/nfs nfsroot=192.168.18.3:/work/rootfs ip=192.168.18.123:192.168.18.3:192.168.18.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200
复制代码

2.4 设置环境变量--setenv

查看帮助:
TINY4412 # help setenv
setenv - set environment variables -->作用是设置环境变量
​
Usage:  //命令使用方法
setenv name value ...  //使用格式
  - set environment variable 'name' to 'value ...'
   //设置环境变量“名称”“数值……格式
setenv name
  - delete environment variable 'name'
//删除环境变量
复制代码

使用示例

设置上电的延时时间:
TINY4412 # setenv bootdelay 10   //设置上电延时时间为10秒
TINY4412 # saveenv        //保存设置
Saving Environment to SMDK bootable device...
done
​
设置波特率示例:
TINY4412 # setenv baudrate 115200   //设置波特率为115200
## Switch baudrate to 115200 bps and press ENTER ...  //设置完需要重启开发板,自动生效
​
删除环境变量示例:
setenv baudrate  //删除baudrate环境变量
复制代码

引用环境变量示例:

TINY4412 # setenv timer 10   //随便设置一个环境变量
TINY4412 # setenv bootdelay ${timer}  //引用环境变量
TINY4412 # save           //保存环境变量
Saving Environment to SMDK bootable device...
done
TINY4412 # print
baudrate=115200
bootargs=root=/dev/nfs nfsroot=192.168.18.3:/work/rootfs ip=192.168.18.123:192.168.18.3:192.168.18.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200
bootcmd=movi read kernel 0 40007fc0;bootm 40007fc0
bootdelay=10   //设置成功
ethaddr=00:40:5c:26:0a:5b
gatewayip=192.168.18.1
ipaddr=192.168.18.123
netmask=255.255.255.0
serverip=192.168.18.124
timer=10  //设置的新环境变量
​
Environment size: 389/16380 bytes
TINY4412 # 
复制代码

2.5 设置bootargs参数

bootargs是环境变量中的重中之重,甚至可以说整个环境变量都是围绕着bootargs来设置的。

coherent_pool参数:

设置DMA的大小
示例: coherent_pool=2M
复制代码

本地挂载示例

set bootargs root=/dev/mmcblk0p2 rootfstype=ext3 init=/linuxrc console=ttySAC0,115200
​
set bootargs root=/dev/mmcblk0p2 rw rootfstype=ext3 init=/linuxrc console=ttySAC0,115200
复制代码

NFS网络挂载示例:

set bootargs root=/dev/nfs nfsroot=192.168.18.3:/work/nfs_root ip=192.168.18.123:192.168.18.3:192.168.18.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200
复制代码

root参数用来指定根文件系统挂载的位置。

nfsroot参数是NFS网络文件系统挂载才需要设置,后面跟着服务器的NFS地址,挂载目录

ip参数是设置开发板的网卡IP地址,NFS网络挂载时必须设置。

init 是指定挂载文件系统之后运行的脚本,用来做一些系统初始化。

2.6 查看开发板的配置信息--bdinfo

TINY4412 # bdinfo
arch_number = 0x00001200 ->开发板的机器码, 用来引导操作系统的内核
boot_params = 0x40000100 ->启动参数存储的内存位置
DRAM bank = 0x00000000 -> DRAM 编号,这里表示是第 0 个 DDR
-> start = 0x40000000  -->DRAM 的起始地址
-> size = 0x10000000   -->DRAM 的大小 ( 0x10000000 /1024 /1024 = 256M)
DRAM bank = 0x00000001 -> DRAM 编号,这里表示是第 1 个 DDR
-> start = 0x50000000  -->DRAM 的起始地址
-> size = 0x10000000   -->DRAM 的大小( 0x10000000 /1024 /1024 = 256M)
DRAM bank = 0x00000002-> DRAM 编号,这里表示是第 2 个 DDR
-> start = 0x60000000  -->DRAM 的起始地址
-> size = 0x10000000   ->DRAM 的大小( 0x10000000 /1024 /1024 = 256M)
DRAM bank = 0x00000003-> DRAM 编号,这里表示是第 3 个 DDR
-> start = 0x70000000  ->DRAM 的起始地址
-> size = 0x0FF00000   ->DRAM 的大小( 0x10000000 /1024 /1024 = 256M)
ethaddr = 00:40:5c:26:0a:5b ->网卡 MAC 地址(DM9600)
ip_addr = 192.168.0.20   ->开发板的 IP
baudrate = 0      bps ->波特率,这里是代码有问题,应该 115200
TLB addr = 0x3FFF0000   ->MMU(CPU) 映射表存储位置
relocaddr = 0xC3E00000   ->代码重新定位的地址
reloc off = 0x00000000   ->重定位地址
irq_sp = 0xC3CFBF58    ->irq堆栈指针
sp start = 0xC3CFBF50   ->开始地址堆栈指针 
FB base = 0x00000000   ->framebuffer基地址
复制代码

2.7 内存数据显示->md

查看帮助:

TINY4412 # ? md
md - memory display 内存数据显示---只能显示内存中的数据,就是说只能在DDR地址中操作
​
Usage:
md [.b, .w, .l] address [# of objects] 
复制代码

Md.b : 以字节方式显示数据 Md.w : 以字(2 个字节) Md.l : 以双字(4 个字节) 以上表示以字节、字(2 个字节)、双字(4 个字节)为单位进行显示

格式: Md.b <要显示的地址> [显示的数据个数]

TINY4412 # md.b 1000000 10   //将起始地址1000000处的10个数据显示到终端
01000000: 06 00 00 ea fe ff ff ea fe ff ff ea fe ff ff ea   ................
复制代码

示例:

TINY4412 # md.b 1000000 10         一个字节显示:
01000000: 06 00 00 ea fe ff ff ea fe ff ff ea fe ff ff ea   ................
TINY4412 # md.w 1000000 10        两个字节显示
01000000: 0006 ea00 fffe eaff fffe eaff fffe eaff   ................
01000010: fffe eaff fffe eaff 301a ea00 301b ea00   .........0...0..
TINY4412 # md.l 1000000 10         四个字节显示
01000000: ea000006 eafffffe eafffffe eafffffe   ................
01000010: eafffffe eafffffe ea00301a ea00301b   .........0...0..
01000020: e59f01a4 e3a01000 e5801000 e59f019c   ................
01000030: e5900000 e200003e e330003e 1a00000d   ....>...>.0.....
复制代码

2.8 复制内存命令 cp

查看帮助:

TINY4412 # help cp
cp - memory copy  内存拷贝 --只能在内存中拷贝,就是说只能在DDR地址中操作
​
Usage:
cp [.b, .w, .l] source target count 源地址 目标地址 数量个数
复制代码

示例1:

TINY4412 # cp 100000 4000000 10
从起始地址100000开始拷贝10个数据到4000000的地址处
复制代码

示例2:

TINY4412 # md.b 46000000
46000000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff   ................
TINY4412 # md.b 10000000     
10000000: 11 20 41 e4 08 00 05 08 05 00 00 00 10 00 00 00   . A.............
TINY4412 # cp 10000000 46000000 10   从起始地址10000000开始拷贝10个数据到46000000的地址处
TINY4412 # md.b 46000000     
46000000: 11 20 41 e4 08 00 05 08 05 00 00 00 10 00 00 00   . A.............
复制代码

image-20220124132620277

2.9 查看EMMC的信息->mmcinfo

查看帮助:

TINY4412 # help mmcinfo
mmcinfo - mmcinfo -- display MMC info  >输出指定编号 mmc 的信息, 是要指定的编号
​
Usage:
mmcinfo 
复制代码

编号说明: mmc 的编号是会变化的, Tiny4412 板上有 EMMC,有SD卡。这两个都归类为 MMC。 编号是0,1。 但是谁是0,谁是 1,是不确定的, 和启动方式有关。 在哪个存储器启动,哪个就是编号就是0。

image-20220124132744606

查看SD卡信息:

TINY4412 # mmcinfo 0
Device: S3C_HSMMC2      设备名称
Manufacturer ID: 2       制造商标识 ID
OEM: 544d          设备制造商
Name: SE08G          名称
Tran Speed: 0   
Rd Block Len: 512        每一块的大小,字节为单位
SD version 2.0         SD卡的版本
High Capacity: Yes        是否是大容量卡
Size: 7460MB (block: 15278080)  容量大小,(总共有多少个块)
Bus Width: 4-bit         总线宽度,SD卡接口是4条线
Boot Partition Size: 0 KB      引导分区大小
复制代码

查看EMMC的信息:

TINY4412 # mmcinfo 1
Device: S5P_MSHC4      设备
Manufacturer ID: 15     制造商ID
OEM: 100           原始设备制造商
Name: 4YMD3         名称
Tran Speed: 0        Tran速度
Rd Block Len: 512      每一块的大小,字节为单位
MMC version 4.0       MMC版本
High Capacity: Yes      是否是大容量卡
Size: 3728MB (block: 7634944) 卡的容量和总共的块大小
Bus Width: 8-bit       总线宽度 
Boot Partition Size: 4096 KB 引导分区大小
复制代码

2.10 mmc命令子系统

mmc不是单独的命令,他是一个子系统,支持多个命令。

查看mmc子系统的帮助信息

TINY4412 # help mmc
mmc - MMC sub system      MMC子系统
​
Usage:
mmc read  addr blk# cnt     --从 mmc 指定扇区读取数据到 ddr 中
mmc write  addr blk# cnt     --写 ddr 中的数据到指定 mmc 扇区中
mmc rescan            --重新扫描指定设备, 相当于重新初始化
mmc erase  --擦除指定扇区
mmc list - lists available devices     --列出有效的 mmc 设备
复制代码

参数说明:

: mmc 编号,编号原则同前面说的,就是对哪一个设备操作。
addr: DDR3 内存地址;
blk#: 要读/写的 mmc 扇区地址起始地址;
cnt:  要读/写的 mmc 扇区数量;
boot: 引用分区,一般是操作 bl1,bl2,u-boot 的 mmc 扇区范围。
user:  用户分区, 一般是操作内核,文件系统的 mmc 扇区范围。
:要擦除的 mmc 扇区起始地址;
:要擦除的 mmc 扇区数量;
复制代码

mmc 命令中的参数都是 16 进制表示,不是 10 进制表示

(1)从MMC扇区读数据到DDR内存中->mmc read

格式:mmc read  addr blk# cnt
blk#:要读/写的 mmc 扇区的起始地址 (十六进制表示)
Cnt :要读/写的 mmc 扇区数量(十六进制表示)
addr: DDR3 内存地址;
TINY4412 # mmc read 0 45000000 1 1
​
MMC read: dev # 0, block # 1, count 1 ... 1 blocks read: OK
​
这里是从SD卡的第1个扇区开始,读取一个扇区的数据到DDR的45000000地址处!
​
示例:
TINY4412 # md.b 48000000 10
48000000: ff ff ff ff ff ff ff ff ff ff ff ff bf ff ff ff   ................
​
//从SD卡第一个扇区开始,读取一个扇区的数据到DDR的48000000地址处
TINY4412 # mmc read 0 48000000 1 1
​
MMC read: dev # 0, block # 1, count 1 ... 1 blocks read: OK
TINY4412 # md.b 48000000 10    
48000000: a3 69 d3 18 e9 7d b9 66 d1 6b d5 6e d4 79 a6 79   .i...}.f.k.n.y.y
复制代码

image-20220124133040383

(2)mmc write --写 ddr 中的数据到指定 mmc 扇区中

格式:mmc write  addr blk# cnt  --将 ddr 中的数据到写到指定mmc 扇区中
blk#:要读/写的 mmc 扇区的起始地址(十六进制表示)
Cnt :要读/写的 mmc 扇区数量(十六进制表示)
addr:DDR3 内存地址;
示例:
TINY4412 # mmc write 0 48000000 1 1  从DDR 48000000地址处,写1个扇区的数据到SD的第1个扇区
​
MMC write: dev # 0, block # 1, count 1 ... 1 blocks written: OK
复制代码

(3)擦除指定扇区

格式:
mmc erase  --擦除指定扇区
参数说明:
:要擦除的 mmc 扇区起始地址
:要擦除的 mmc 扇区数量
boot: 引用分区
User: 用户分区
为了方便比较,先将SD卡的第1个扇区内容读到DDR中。
​
读出第10个扇区的数据
TINY4412 # mmc read 0 48000000 1 1
​
MMC read: dev # 0, block # 1, count 1 ... 1 blocks read: OK
​
显示第1个扇区的数据
TINY4412 # md.b 48000000 30    
48000000: a3 69 d3 18 e9 7d b9 66 d1 6b d5 6e d4 79 a6 79   .i...}.f.k.n.y.y
48000010: 07 00 00 ea fe ff ff ea fe ff ff ea fe ff ff ea   ................
48000020: fe ff ff ea fe ff ff ea fe ff ff ea fe ff ff ea   ................
 
​
擦除SD卡的第一个扇区
TINY4412 # mmc erase user 0 1 1  
START: 1 BLOCK: 1     开始1扇区,擦除1扇区
high_capacity: 1     高容量
Capacity: 15278080    容量
​
Erase           擦除
​
 512 B erase Done    512字节
MMC erase Success.!! MMC擦除成功。! !
 
​
再读再显示
TINY4412 # mmc read 0 40000000 1 1
​
MMC read: dev # 0, block # 1, count 1 ... 1 blocks read: OK
TINY4412 # md.b 40000000 30    
40000000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff   ................
40000010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff   ................
40000020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff   ................
 
​
恢复数据,再读再显示
TINY4412 # mmc write 0 48000000 1 1  将DDR里的数据写入SD卡中
​
MMC write: dev # 0, block # 1, count 1 ... 1 blocks written: OK
TINY4412 # mmc read 0 40000000 1 1  再次读出数据
​
MMC read: dev # 0, block # 1, count 1 ... 1 blocks read: OK
TINY4412 # md.b 40000000 30     显示---数据已经恢复
40000000: a3 69 d3 18 e9 7d b9 66 d1 6b d5 6e d4 79 a6 79   .i...}.f.k.n.y.y
40000010: 07 00 00 ea fe ff ff ea fe ff ff ea fe ff ff ea   ................
40000020: fe ff ff ea fe ff ff ea fe ff ff ea fe ff ff ea   ................
复制代码

(4)列出MMC设备--mmc list

TINY4412 # mmc list
S3C_HSMMC2: 0 --- 0 编号的 mmc 设备,这里接 SD 卡
S5P_MSHC4: 1 --- 1 编号的 mmc 设备,这里接 开发板板载的EMMC
复制代码

2.11 查看MMC分区信息--fatinfo

TINY4412 # help fatinfo
fatinfo - fatinfo - print information about filesystem 
           打印文件系统信息
​
Usage:
fatinfo   格式说明
  - print information about filesystem from 'dev' on 'interface'
​
参数说明:
: mmc 或 usb;
dev: 设备编号;
part: 设备分区号
​
​
查看第0个设备信息---这里是SD卡:
TINY4412 # fatinfo mmc 0  
-----Partition 1-----
Partition1: Start Address(0x2e2e2e2e), Size(0x2e2e2e2e)
分区1      起始地址         大小
------------------------
-----Partition 2-----
Partition1: Start Address(0x2e2e2e2e), Size(0x2e2e2e2e)
------------------------
-----Partition 3-----
Partition1: Start Address(0x2e2e2e2e), Size(0x2e2e2e2e)
------------------------
-----Partition 4-----
Partition1: Start Address(0x2e2e2e2e), Size(0x2e2e2e2e)
------------------------
Interface:  SD/MMC
接口
    
  Device 0: Vendor: Man 02544d Snr c9226e33 Rev: 2.1 Prod: SE08G
       Type: Removable Hard Disk 
       类型:可移动硬盘
      
       Capacity: 14.5 MB = 0.0 GB (29840 x 512)
Partition 1: Filesystem: FAT32 "NO NAME   "
复制代码[:part]>

下一篇继续介绍。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11236

    浏览量

    209024
  • 命令
    +关注

    关注

    5

    文章

    679

    浏览量

    21998
  • Uboot
    +关注

    关注

    4

    文章

    125

    浏览量

    28178
收藏 人收藏

    评论

    相关推荐

    Linux常用命令汇总

    本篇文章一个介绍了约40个Linux常用命令,这些命令也正是Linux入门的精髓之处,所以,对于这些命令
    发表于 10-25 15:08 674次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>常用命令</b>汇总

    Linux常用命令介绍

    大家好,我是嵌入式老林,从事嵌入式软件开发多年,今天分享的内容是Linux基础知识,最常用命令
    发表于 07-14 15:58 363次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>常用命令</b><b class='flag-5'>介绍</b>

    请问嵌入式Linux GCC常用命令有哪些?

    嵌入式Linux GCC常用命令有哪些?
    发表于 04-19 09:39

    了解嵌入式系统的应用以及Linux系统的结构和常用命令

    #嵌入式系统开发概述及Linux基础本人进度计划及任务:了解嵌入式系统的应用以及Linux系统的结构和
    发表于 12-22 08:24

    嵌入式Linux常用命令

    嵌入式Linux常用命令,比较基础,非常实用,适合新手学习。
    发表于 11-24 15:22 3次下载

    Linux终端常用命令大全

    Linux终端常用命令大全,通俗易懂,容易上手。包含所有命令,方便查找各个指令功能。
    发表于 04-28 16:30 15次下载

    vim常用命令

    vim常用命令
    发表于 01-08 15:59 3次下载

    Linux教程之Linux常用命令大全

    Linux教程之Linux常用命令大全
    的头像 发表于 03-30 10:34 5663次阅读

    周立功嵌入式Linux开发教程上册PDF电子书免费下载

    本篇主要讲述进行嵌入式Linux 开发所必备的基础知识, 以实用和够用为标准进行介绍,与嵌入式Linux
    发表于 11-13 17:28 129次下载
    周立功<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b><b class='flag-5'>开发</b>教程上册PDF电子书免费下载

    linux常用命令手册

    linux常用命令手册免费下载。
    发表于 06-01 14:59 68次下载

    linux常用命令大全

    linux常用命令大全,一些常用命令都可以找到
    发表于 03-03 09:20 0次下载

    嵌入式Linux开发-uboot常用命令介绍(下篇)

    这篇文章是UBOOT命令介绍的下篇,接着上篇文章介绍剩下的几个命令用法。
    的头像 发表于 08-14 08:55 2161次阅读

    Linux常用命令

    Linux常用命令
    的头像 发表于 01-12 11:19 1127次阅读

    Linux常用命令手册分享

    linux常用命令合集
    发表于 04-26 11:46 1次下载

    linux常用命令及用法

    Linux是一种开源的操作系统,它以稳定、高效和安全的特点受到广大用户的喜爱。掌握Linux常用命令及其用法对于操作系统的管理和开发都至关重要。本文将详尽、详实、细致地
    的头像 发表于 11-17 09:47 632次阅读