Variables d'environnement de u-boot

Cet article est basé sur u-boot.2016.03.

1. Le rôle des variables environnementales

Le rôle des variables d'environnement dans uboot est de nous permettre de définir des variables d'environnement pour que le code se comporte différemment sans changer le code source ou recompiler, comme l'heure de démarrage, l'adresse IP, les bootargs vers le noyau, etc., certains La variable d'environnement peut ne prend effet qu'après le redémarrage et la valeur nouvellement définie peut être utilisée immédiatement après certains réglages.

2. Variables d'environnement couramment utilisées

Les variables d'environnement couramment utilisées sont définies dans une structure et chaque variable d'environnement est composée d'un nom de variable, d'un symbole égal, d'un contenu de variable et de "\ 0".

/include/env_default.h

const uchar default_environment[] = {
...
#ifdef	CONFIG_BOOTARGS
	"bootargs="	CONFIG_BOOTARGS			"\0"
#endif
#ifdef	CONFIG_BOOTCOMMAND
	"bootcmd="	CONFIG_BOOTCOMMAND		"\0"
#endif
...
#ifdef	CONFIG_EXTRA_ENV_SETTINGS
	CONFIG_EXTRA_ENV_SETTINGS
#endif
...
};
Variable d'environnement la description
bootargs Paramètres de démarrage transmis au noyau
bootcmd Commandes exécutées depuis le démarrage
bootdelay Nombre de secondes à attendre pour le démarrage automatique
débit en bauds Le débit en bauds de la console série
ipaddr Adresse IP de cette machine
serverip Adresse IP du serveur
passerelleip Passerelle native
masque de réseau Masque de sous-réseau
cambre Architecture (bras)
vendeur Usine de copeaux (freescale)

ici CONFIG_EXTRA_ENV_SETTINGSIl est assez spécial et est généralement défini dans le fichier au niveau de la carte.
Ce que nous utilisons ici est la carte de développement de référence de sabreauto, cette macro est définie dans mx6sabre_common.h.

3. Analyse du code

Les principaux documents concernés sont:

common/board_f.c//uboot启动时比较靠前的初始化工作
common/board_r.c//uboot启动时比较靠后的初始化工作
common/env_common.c// 中间层实现
cmd/nvedit.c//命令层实现
common/env_flash.c//驱动层实现(以eimnor为例)
lib/Hashtable.c //哈希表实现

3.1 Structure de séquence:

Insérez la description de l'image ici

3.2 Structure hiérarchique:

Toute l'architecture d'env dans uboot peut être divisée en 3 parties:

Insérez la description de l'image ici

4. Utilisez l'analyse "bootdelay"

6. Références utiles

https://www.cnblogs.com/lidabo/p/5274162.html

Je suppose que tu aimes

Origine blog.csdn.net/amwha/article/details/87185523
conseillé
Classement