flipper.c 1.5 KB

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