U-Boot поддерживает «автономные» приложения ( U-Boot Standalone Applications), которые загружаются динамически.
Эти приложения могут иметь доступ к функциям ввода-вывода консоли U-Boot,
распределению памяти и службам прерывания.
Несколько простых примеров включены в исходный код U-Boot:
Демо "Hello World"
Файл examples/hello_world.c содержит небольшое демонстрационное приложение «Hello World»,
которое автоматически компилируется при сборке U-Boot и настроено для работы по адресу 0x00040000.
Обратите внимание, что точка входа в программу - 0x40000 для архитектуры PowerPC.
Для других архитектур он может быть другим.
=> loads
## Ready for S-Record download ... ( Готов к загрузке S-Record ... )
~>examples/hello_world.srec
1 2 3 4 5 6 7 8 9 10 11 ...
[file transfer complete]
[connected]
## Start Addr = 0x00040000
=> go 40000 Hello World! This is a test.
## Starting application at 0x00040000 ... ( Запуск приложения с адреса 0x00040000 ...)
Hello World
argc = 7
argv[0] = "40000"
argv[1] = "Hello"
argv[2] = "World!"
argv[3] = "This"
argv[4] = "is"
argv[5] = "a"
argv[6] = "test."
argv[7] = ""
Hit any key to exit ...
## Application terminated, rc = 0x0
В качестве альтернативы можно использовать TFTP для загрузки изображения по сети.
В этом случае используется двоичное изображение (hello_world.bin).
=> tftp 40000 /tftpboot/hello_world.bin
...
=> go 40000 This is another test.
## Starting application at 0x00040000 ...
Hello World
argc = 5
argv[0] = "40000"
argv[1] = "This"
argv[2] = "is"
argv[3] = "another"
argv[4] = "test."
argv[5] = ""
Hit any key to exit ...
## Application terminated, rc = 0x0