Реализуйте пользовательскую команду u-boot - PullRequest
0 голосов
/ 29 марта 2020

Я хочу добавить пользовательскую команду в u-boot, будь это простая команда hello world.

После поиска я нашел эту ссылку Пользовательские команды Yocto u-boot , где говорится: посмотрите на timer команду в cmd/misc.c в качестве отправной точки.

Как мне добавить эту команду timer в мой образ загрузки? Я предполагаю, что внес изменения в make-файлы, но не уверен, какой make-файл мне следует редактировать.

Я использую qemu для тестирования образа u-boot в Ubuntu 18.04, используя следующий метод

  1. Клонировал источник u-boot из github.
  2. Установил все зависимости сборки в системе.
  3. Подготовленные файлы конфигурации u-boot с использованием make qemu_arm_config ARCH=arm CROSS_COMPILE=arm-none-eabi-
  4. Сборка u-boot make all ARCH=arm CROSS_COMPILE=arm-none-eabi-
  5. Запуск qemu с образом u-boot qemu-system-arm -M virt -nographic -kernel u-boot

Журнал U-загрузки

$ qemu-system-arm -M virt -nographic -kernel u-boot 


U-Boot 2020.01-dirty (Mar 29 2020 - 15:46:14 +0530)

DRAM:  128 MiB
WARNING: Caches not enabled
Flash: 128 MiB
*** Warning - bad CRC, using default environment

In:    pl011@9000000
Out:   pl011@9000000
Err:   pl011@9000000
Net:   No ethernet found.
Hit any key to stop autoboot:  0 
=> timer
Unknown command 'timer' - try 'help'
=> 

Несколько подробностей

U-boot:

ОС хоста:

Distributor ID: Ubuntu
Description:    Ubuntu 18.04.4 LTS
Release:    18.04
Codename:   bionic

1 Ответ

0 голосов
/ 30 марта 2020

doc / README.commands описывает, как команды должны быть реализованы.

Ваш новый файл C должен находиться в каталоге cmd /. В cmd / Makefile вам нужно будет добавить свой объектный файл, например,

obj-$(CONFIG_CMD_TIMER) += timer.o

В cmd / Kconfig добавьте новый параметр конфигурации для вашей команды. Синтаксис Kconfig описан в https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt.

Запустите

make menuconfig

, чтобы включить опцию конфигурации.

...