Автономные приложения U-Boot


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