Resumen de los comandos de uso común de uboot

Tabla de contenido

Prefacio

1. Comandos de consulta de información (bdinfo, printenv, versionn)

2. Comandos de operación de variables de entorno (setenv, saveenv)

3. Instrucciones de funcionamiento de la memoria (md, nm, mm, mw, cp, cmp)

4. Comandos de operación de red (ping, dhcp, nfs, tftp)

5. Comandos de operación de tarjetas EMMC y SD

6. Comandos de operación del sistema de archivos en formato FAT (fatinfo, fatls, fstype, fatload, fatwrite)

7. Comandos de operación del sistema de archivos en formato EXT

8. Comando de operación NAND

9. Comando de operación BOOT

10. Algunos otros comandos de uso común (restablecer, ir, ejecutar)

Referencia


Prefacio

El siguiente contenido es un resumen de los memos de los capítulos de aprendizaje de la placa de desarrollo puntual Atom Alpha (placa de desarrollo I.MAX6ULL Linux) U-BOOT.

1. Comandos de consulta de información (bdinfo, printenv, versionn)

bdinfo

printenv

versión

2. Comandos de operación de variables de entorno (setenv, saveenv)

setenv se utiliza para establecer y modificar el valor de las variables de entorno ; setenv se utiliza para eliminar el entorno cuando el contenido establecido está vacío; saveenv se utiliza para guardar las variables de entorno modificadas ; las variables de entorno generales se almacenan en la memoria flash externa, que se utilizará cuando se inicie uboot Lea las variables de entorno de flash a DRAM. Por lo tanto, use el comando setenv para modificar el valor de las variables de entorno en DRAM. Después de la modificación, debe usar el comando saveenv para guardar las variables de entorno modificadas en la memoria flash. De lo contrario, el siguiente reinicio de uboot continuará usando los valores de las variables de entorno anteriores.

3. Instrucciones de funcionamiento de la memoria (md, nm, mm, mw, cp, cmp)

1. .b.w.l significa mostrar en byte, word y long respectivamente

2, la dirección es la dirección de inicio de la memoria a visualizar

3. La unidad de longitud de los datos no son bytes, sino que está relacionada con el formato de visualización que elija. Por ejemplo, si configura la longitud de la memoria para que se vea como 20 (hexadecimal 0x14), si el formato de visualización es .b, significa 20 bytes; si el formato de visualización es .w, significa 20 palabras, que es 20 * 2 = 40 bytes; si el formato de visualización es .l, significa 20 largos, es decir, 20 * 4 = 80 bytes.

4. ¡Los números en el comando uboot son todos hexadecimales! ¡No decimal!

(1) Mostrar valor de memoria: md [.b, .w, .l] dirección [# de objetos]

(2) Modifique el valor de memoria de la dirección especificada, la dirección no aumentará después de la modificación: dirección nm [.b, .w, .l]

(3) Modifique el valor de memoria de la dirección especificada, la dirección aumentará después de la modificación: mm [.b, .w, .l] dirección

(4) Llene la memoria con los datos especificados: mw [.b, .w, .l] valor de dirección [cuenta]

(5) Copia de datos: cp [.b, .w, .l] recuento de destino de origen

Copie los datos en DRAM de una memoria a otra memoria, o copie los datos en Nor Flash a DRAM

(6) Comparación de datos: cmp [.b, .w, .l] addr1 addr2 count

4. Comandos de operación de red (ping, dhcp, nfs, tftp)

Antes de usar los comandos de operación de red, configure las variables de entorno

Variable ambiental

descripción

ipaddr

La dirección IP de la placa de desarrollo se puede dejar sin configurar Utilice el comando dhcp para obtener la dirección IP del enrutador.

ethaddr

Se debe configurar la dirección MAC de la placa de desarrollo.

IP de acceso

Dirección de la entrada.

máscara de red

Máscara de subred.

servidor IP

La dirección IP del servidor, que es la dirección IP del host de Ubuntu, se utiliza para depurar el código.

(1) Ver el estado de la conexión de red: ping

(2) Obtenga la dirección IP automáticamente: dhcp

(3) Descargue el archivo desde el host ubuntu: nfs [loadAddress] [[hostIPaddr:] bootfilename]

loadAddress es la dirección de la DRAM que se guardará, [[hostIPaddr:] bootfilename] es la dirección del archivo que se descargará

nfs (Network File System) sistema de archivos de red, a través de nfs podemos compartir recursos entre computadoras a través de la red, por ejemplo, colocamos la imagen de linux y el archivo de árbol de dispositivos en Ubuntu, y luego usamos el comando nfs en uboot para reflejar el linux en Ubuntu Y el árbol de dispositivos se descarga a la DRAM de la placa de desarrollo . El propósito de esto es facilitar la depuración de la duplicación y el árbol de dispositivos de Linux, es decir, la depuración de la red. La depuración de la red es el método de depuración más utilizado en el desarrollo de Linux. La razón es que el desarrollo de Linux embebido no es como el desarrollo de una microcomputadora de un solo chip. El código se puede programar directamente en la memoria flash interna de la microcomputadora de un solo chip a través de emuladores como JLINK o STLink. Linux embebido generalmente se programa para dispositivos externos como EMMC, NAND Flash, SPI Flash, etc. En flash, no hay un IDE como MDK IAR para el desarrollo de Linux integrado, y no hay un algoritmo de programación, por lo que es imposible actualizar el firmware al flash externo haciendo clic en un botón de descarga. Aunque los fabricantes de semiconductores generalmente proporcionan una programación Software de firmware, pero este software es más complicado de usar Este software de programación se usa generalmente para producción en masa.

(4) Descargue el archivo desde el host ubuntu: tftp [loadAddress] [[hostIPaddr:] bootfilename]

loadAddress es la dirección de la DRAM que se guardará, [[hostIPaddr:] bootfilename] es la dirección del archivo que se descargará (no es necesario especificar el nombre completo cuando se usa TFTP, siempre que el servicio tftpd esté habilitado en el host ubuntu y el archivo se coloque en el servidor tftp Carpeta)

5. Comandos de operación de tarjetas EMMC y SD

(1) Cambiar el dispositivo mmc actual: mmc dev [dev] [part]

[dev]: se utiliza para configurar el número de dispositivo del dispositivo MMC que se cambiará (0 es la tarjeta SD, 1 es el eMMC),

[parte]: es el número de partición. Si no escribe el número de partición, el valor predeterminado es la partición 0.

使用如下命令切换到 SD卡:
mmc dev 0 //切换到 SD卡, 0为 SD卡, 1为 eMMC

(2) Ver partición: parte mmc

比如查看 EMMC的分区情况,输入如下命令: 
mmc dev 1 //切换到 EMMC 
mmc part //查看 EMMC分区

Como se puede ver en la figura, EMMC tiene dos particiones en este momento, los sectores 20480 ~ 1024000 son la primera partición y los sectores 1228800 ~ 6504448 son la segunda partición. Si el sistema Linux se graba en EMMC, EMMC tiene 3 particiones. La 0ª partición almacena uboot, la 1ª partición almacena archivos de imagen de Linux y árboles de dispositivos, y la segunda partición almacena el sistema de archivos raíz . Sin embargo, solo hay dos particiones en la figura. Esto se debe a que la partición 0 no está formateada, por lo que no se puede reconocer. De hecho, la partición 0 existe.

(3) Instrucción de lectura: mmc read addr blk # cnt

addr: es la dirección donde se leen los datos en la DRAM

blk: es la dirección inicial del bloque a leer (hexadecimal), un bloque (sector) tiene 512 bytes, en equipos MMC solemos decir sector

cnt: es el número de bloques a leer (hexadecimal)

比如从 EMMC的第 1536(0x600)个块开始,读取 16(0x10)个块的数据到 DRAM的0X80800000地址处,命令如下: 
mmc dev 1 0 //切换到 MMC分区 0 
mmc read 80800000 600 10 //读取数据

(4) Instrucción de escritura: mmc write addr blk # cnt

addr es la dirección de inicio en DRAM de los datos que se escribirán en MMC

blk es la dirección inicial del bloque que se escribirá en la MMC (hexadecimal

cnt es el tamaño del bloque que se va a escribir, un bloque tiene 512 bytes

Puede utilizar el comando "mmc write" para actualizar uboot, es decir, actualizar uboot en uboot . Aquí debe usar el comando nfs o tftp. Use el comando nfs o tftp para descargar el nuevo u-boot.bin a la DRAM de la placa de desarrollo, y luego use el comando "mmc write" para escribirlo en el dispositivo MMC.

比如更新EMMC中的uboot: 
mmc dev 1 0 //切换到 EMMC分区 0 
tftp 80800000 u-boot.imx //下载 u-boot.imx到 DRAM 
mmc write 80800000 2 32E //烧写 u-boot.imx到 EMMC中 
mmc partconf 1 1 0 0 //分区配置, EMMC需要这一步!

6. Comandos de operación del sistema de archivos en formato FAT (fatinfo, fatls, fstype, fatload, fatwrite)

(1) Consultar la información del sistema de archivos de la partición especificada: fatinfo <interface> [<dev [: part]>]

interfaz: indica la interfaz, como mmc

dev: es el número de dispositivo que se va a consultar, 0 es la tarjeta SD, 1 es EMMC

part: es la partición a consultar 

(2) Consultar el directorio y la información del archivo del dispositivo de formato FAT: fatls <interface> [<dev [: part]>] [directorio]

interfaz: indica la interfaz, como mmc

dev: es el número de dispositivo que se va a consultar, 0 es la tarjeta SD, 1 es EMMC

part: es la partición a consultar

directorio: es el directorio que se va a consultar 

(3) Consultar el formato del sistema de archivos de una partición del dispositivo MMC: fstype <interface> <dev>: <part>

interfaz: indica la interfaz, como mmc

dev: es el número de dispositivo que se va a consultar, 0 es la tarjeta SD, 1 es EMMC

part: es la partición a consultar

fstype mmc 1:0 //查看EMMC分区0的文件系统格式 
fstype mmc 1:1 //查看EMMC分区1的文件系统格式 
fstype mmc 1:2 //查看EMMC分区2的文件系统格式

(4) Lea el archivo especificado en DRAM: fatload <interface> [<dev [: part]> [<addr> [<filename> [bytes [pos]]]]]

interfaz: indica la interfaz, como mmc

dev: es el número de dispositivo que se va a consultar, 0 es la tarjeta SD, 1 es EMMC

part: es la partición a consultar

addr: dirección de inicio almacenada en DRAM

filename: el nombre del archivo que se leerá

bytes: indica cuántos bytes de datos leer, 0 u omitido significa leer el archivo completo

pos: el desplazamiento de los datos que se leerán en relación con la primera dirección del archivo, 0 u omitido significa comenzar a leer desde la primera dirección del archivo

fatload mmc 1:1 80800000 zImage //将EMMC分区1中的zImage文件读取到DRAM中的80800000地址处

(5) Escriba los datos en DRAM en el dispositivo MMC:

fatwrite <interface> <dev [: part]> <addr> <filename> <bytes>

interfaz: indica la interfaz, como mmc

dev: es el número de dispositivo que se va a consultar, 0 es la tarjeta SD, 1 es EMMC

part: es la partición a consultar

addr: la dirección de inicio de los datos que se escribirán en DRAM

nombre de archivo: el nombre del archivo que se va a escribir

bytes: indica cuántos bytes de datos se escribirán, 0 u omitido significa escribir el archivo completo

7. Comandos de operación del sistema de archivos en formato EXT

Hay cuatro comandos de uso común para el funcionamiento del sistema de archivos de estos dos formatos, a saber: ext2load, ext2ls, ext4load, ext4ls y ext4write . El significado y uso de estos comandos es el mismo que fatload, fatls y fatwrit, excepto que ext2 y ext4 son para el sistema de archivos ext.

 

8. Comando de operación NAND

 

9. Comando de operación BOOT

(1) Inicie Linux: bootz [addr [initrd [: size]] [fdt]]

addr: es la ubicación del archivo de imagen de Linux en DRAM,

initrd: es la dirección del archivo initrd en DRAM, si no se usa initrd, use'- 'en su lugar

fdt: es la dirección del archivo de árbol de dispositivos en DRAM.

Ejemplo: descargue zImage y el árbol de dispositivos del host de ubuntu a DDR a través de la red tftp:

tftp 80800000 zImage 
tftp 83000000 imx6ull-14x14-emmc-4.3-800x480-c.dtb 
bootz 80800000 - 83000000

Ejemplo: Copie zImage y el árbol de dispositivos de la partición 1 de EMMC a DDR mediante fatload:

fatload mmc 1:1 80800000 zImage 
fatload mmc 1:1 83000000 imx6ull-14x14-emmc-4.3-800x480-c.dtb 
bootz 80800000 - 83000000

(2) Inicie Linux: arranque

El comando de arranque también se usa para iniciar Linux; el comando de arranque lee la variable de entorno bootcmd para iniciar Linux. La variable de entorno bootcmd almacena el comando de arranque, que es el conjunto de comandos de arranque, y el contenido específico del comando de arranque se puede modificar.

Ejemplo: descargue zImage y el árbol de dispositivos del host de ubuntu a DDR a través de la red tftp:

setenv bootcmd ' 
tftp 80800000 zImage; 
tftp 83000000 imx6ull-14x14-emmc-4.3-800x480-c.dtb; 
bootz 80800000 - 83000000;' //设置bootcmd环境变量 
saveenv //保存环境变量 

boot //启动Linux

Ejemplo: Copie zImage y el árbol de dispositivos de la partición 1 de EMMC a DDR mediante fatload:

setenv bootcmd '
fatload mmc 1:1 80800000 zImage; 
fatload mmc 1:1 83000000 imx6ull-14x14-emmc-4.3-800x480-c.dtb; 
bootz 80800000 - 83000000;' //设置bootcmd环境变量 
saveenv //保存环境变量 

boot //启动Linux

10. Algunos otros comandos de uso común (restablecer, ir, ejecutar)

(1) Reiniciar: reiniciar

(2) Salte a la dirección especificada para ejecutar la aplicación: vaya a addr [arg ...] ; se usa principalmente para depurar programas bare metal

addr: la primera dirección utilizada en DRAM

(3) Comandos definidos en la ejecución de variables de entorno: ejecutar variables de entorno; se utiliza principalmente para ejecutar variables de entorno personalizadas

 

Referencia

"[Punctual Atom] i.MX6U Embedded Linux Driver Development Guide V1.3"

 

 

 

Supongo que te gusta

Origin blog.csdn.net/m0_37845735/article/details/105922501
Recomendado
Clasificación