Перейти к содержанию
    

Шаги по чтению и изменению переменных среды U-Boot на этапе ядра

1. Скомпилируйте инструмент fw_printenv.

Выполните команду по исходному пути uboot, а затем сгенерируйте исполняемый файл fw_printenv в папке Tools/env.

. /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabimake env

2. Настройте файл fw_env.config.

Измените файл fw_env.config в разделе Tools/env в исходном каталоге uboot в соответствии с разделом mtd, расположением и размером переменных среды UBOOT и т. д. См. инструкции в файле fw_env.config и файле /tools/env/README. файл для конкретных модификаций.

Среди них смещение устройства, размер Env и размер сектора Flash должны соответствовать соответственно трем определениям макросов CONFIG_ENV_OFFSET, CONFIG_ENV_SIZE и CONFIG_ENV_SECT_SIZE в файле include/configs/xxxx.h в каталоге исходного кода U-Boot.

vi include/configs/mx6ul_14x14_evk.h

В качестве примера возьмем тест 256nand:

Шаги по чтению и изменению переменных среды U-Boot на этапе ядра

CONFIG_ENV_OFFSET = 0x600000

ONFIG_ENV_SECT_SIZE = 0x20000

Шаги по чтению и изменению переменных среды U-Boot на этапе ядра

Откройте инструменты/env/fw_env.config и внесите изменения, как показано на следующих рисунках:

Шаги по чтению и изменению переменных среды U-Boot на этапе ядра

В качестве примера возьмем тест 1gnand:

Шаги по чтению и изменению переменных среды U-Boot на этапе ядра

CONFIG_ENV_OFFSET = 0x1000000

ONFIG_ENV_SECT_SIZE = 0x20000

Шаги по чтению и изменению переменных среды U-Boot на этапе ядра

номер модели nand MT29F8G08ABACA

Шаги по чтению и изменению переменных среды U-Boot на этапе ядра

Обратитесь к руководству, чтобы изменить значение ENV_SECT_SIZE на 256 КБ.

Шаги по чтению и изменению переменных среды U-Boot на этапе ядра

Откройте инструменты/env/fw_env.config и внесите изменения, как показано на следующих рисунках:

Шаги по чтению и изменению переменных среды U-Boot на этапе ядра

номер модели nand MT29F8G08ABABA

Шаги по чтению и изменению переменных среды U-Boot на этапе ядра

Обратитесь к руководству, чтобы изменить значение ENV_SECT_SIZE на 512 КБ.

Шаги по чтению и изменению переменных среды U-Boot на этапе ядра

Откройте инструменты/env/fw_env.config и внесите изменения, как показано на следующих рисунках:

f_2633250b5fdf84dc7f6d42fee7feadc6&t=png

3. Скопируйте файл

Скопируйте инструменты/env/fw_env.config в путь /etc платы разработки;

Скопируйте инструменты/env/fw_printenv в корневую файловую систему платы разработки по пути /usr/bin.

И создайте мягкую ссылку на fw_setenv ln -s /usr/bin/fw_printenv /usr/bin/fw_setenv

4. Чтение и запись теста переменной среды.

Чтение среды:

f_324510f98fd8f49df1a8e7842d0204fb&t=png

Запишите переменную среды:

f_82df6e99a376f9441a1f9a92167120b6&t=png

Фаза uboot была изменена синхронно.

f_1a6043e838da9025471f7a0c978830ed&t=png

5. Проблемы и решения

Проблема: make env сообщает об ошибке в исходном коде uboot.

f_86375eee7796e23ceebab0bd49dd03b4&t=png

Решение: закомментируйте CC в Makefile верхнего уровня и используйте переменную среды в CC.

f_e92bf1c141611f64a60a8d998fcd401d&t=png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

29 minutes ago, Jason said:

закомментируйте CC в Makefile

А вы в курсе, что этого можно не делать? Makefile вообще лучше не трогать. Если он хорошо написан, то его поведение можно изменять извне.

$ cat Makefile
CC = gcc

.PHONY: all

all:
	@echo $(CC)

$ make
gcc
$ make CC=gxx
gxx

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...