flipper.c 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include "flipper.h"
  2. #include <applications.h>
  3. #include <furi.h>
  4. #include <furi-hal-version.h>
  5. static void flipper_print_version(const char* target, const Version* version) {
  6. if(version) {
  7. FURI_LOG_I(
  8. "FLIPPER",
  9. "\r\n\t%s version:\t%s\r\n"
  10. "\tBuild date:\t\t%s\r\n"
  11. "\tGit Commit:\t\t%s (%s)\r\n"
  12. "\tGit Branch:\t\t%s",
  13. target,
  14. version_get_version(version),
  15. version_get_builddate(version),
  16. version_get_githash(version),
  17. version_get_gitbranchnum(version),
  18. version_get_gitbranch(version));
  19. } else {
  20. FURI_LOG_I("FLIPPER", "No build info for %s", target);
  21. }
  22. }
  23. void flipper_init() {
  24. const Version* version;
  25. version = (const Version*)furi_hal_version_get_boot_version();
  26. flipper_print_version("Bootloader", version);
  27. version = (const Version*)furi_hal_version_get_firmware_version();
  28. flipper_print_version("Firmware", version);
  29. FURI_LOG_I("FLIPPER", "starting services");
  30. for(size_t i = 0; i < FLIPPER_SERVICES_COUNT; i++) {
  31. FURI_LOG_I("FLIPPER", "starting service %s", FLIPPER_SERVICES[i].name);
  32. FuriThread* thread = furi_thread_alloc();
  33. furi_thread_set_name(thread, FLIPPER_SERVICES[i].name);
  34. furi_thread_set_stack_size(thread, FLIPPER_SERVICES[i].stack_size);
  35. furi_thread_set_callback(thread, FLIPPER_SERVICES[i].app);
  36. furi_thread_start(thread);
  37. }
  38. FURI_LOG_I("FLIPPER", "services startup complete");
  39. }