 241b4ef6e4
			
		
	
	
		241b4ef6e4
		
			
		
	
	
	
	
		
			
			* furi_crash: added C2 status * debug: Added "fw-version" gdb command; vscode: updated configuration to use new command * debug: added fw-info command to debug_other session * Toolbox: versioned structure for Version * debug: fw-version: no longer needs an ELF file loaded * debug: flipperversion: removed unused variable * debug_other: print running fw version Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
		
			
				
	
	
		
			74 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "version.h"
 | |
| #include <furi.h>
 | |
| /* This header is autogenerated by build system */
 | |
| #include "version.inc.h"
 | |
| 
 | |
| #define VERSION_MAGIC (0xBE40u)
 | |
| #define VERSION_MAJOR (0x1u)
 | |
| #define VERSION_MINOR (0x0u)
 | |
| 
 | |
| struct Version {
 | |
|     // Header
 | |
|     const uint16_t magic;
 | |
|     const uint8_t major;
 | |
|     const uint8_t minor;
 | |
|     // Payload
 | |
|     const char* git_hash;
 | |
|     const char* git_branch;
 | |
|     const char* build_date;
 | |
|     const char* version;
 | |
|     // Payload bits and pieces
 | |
|     const uint8_t target;
 | |
|     const bool build_is_dirty;
 | |
| };
 | |
| 
 | |
| /* version of current running firmware (bootloader/flipper) */
 | |
| static const Version version = {
 | |
|     .magic = VERSION_MAGIC,
 | |
|     .major = VERSION_MAJOR,
 | |
|     .minor = VERSION_MINOR,
 | |
|     .git_hash = GIT_COMMIT,
 | |
|     .git_branch = GIT_BRANCH,
 | |
|     .build_date = BUILD_DATE,
 | |
|     .version = VERSION
 | |
| #ifdef FURI_RAM_EXEC
 | |
|     " (RAM)"
 | |
| #endif
 | |
|     ,
 | |
|     .target = TARGET,
 | |
|     .build_is_dirty = BUILD_DIRTY,
 | |
| };
 | |
| 
 | |
| const Version* version_get(void) {
 | |
|     return &version;
 | |
| }
 | |
| 
 | |
| const char* version_get_githash(const Version* v) {
 | |
|     return v ? v->git_hash : version.git_hash;
 | |
| }
 | |
| 
 | |
| const char* version_get_gitbranch(const Version* v) {
 | |
|     return v ? v->git_branch : version.git_branch;
 | |
| }
 | |
| 
 | |
| const char* version_get_gitbranchnum(const Version* v) {
 | |
|     UNUSED(v);
 | |
|     return "0";
 | |
| }
 | |
| 
 | |
| const char* version_get_builddate(const Version* v) {
 | |
|     return v ? v->build_date : version.build_date;
 | |
| }
 | |
| 
 | |
| const char* version_get_version(const Version* v) {
 | |
|     return v ? v->version : version.version;
 | |
| }
 | |
| 
 | |
| uint8_t version_get_target(const Version* v) {
 | |
|     return v ? v->target : version.target;
 | |
| }
 | |
| 
 | |
| bool version_get_dirty_flag(const Version* v) {
 | |
|     return v ? v->build_is_dirty : version.build_is_dirty;
 | |
| }
 |