[FL-2627] Flipper applications: SDK, build and debug system (#1387)
* Added support for running applications from SD card (FAPs - Flipper Application Packages) * Added plugin_dist target for fbt to build FAPs * All apps of type FlipperAppType.EXTERNAL and FlipperAppType.PLUGIN are built as FAPs by default * Updated VSCode configuration for new fbt features - re-deploy stock configuration to use them * Added debugging support for FAPs with fbt debug & VSCode * Added public firmware API with automated versioning Co-authored-by: hedger <hedger@users.noreply.github.com> Co-authored-by: SG <who.just.the.doctor@gmail.com> Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
		
							
								
								
									
										13
									
								
								.vscode/example/launch.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								.vscode/example/launch.json
									
									
									
									
										vendored
									
									
								
							@@ -31,7 +31,10 @@
 | 
			
		||||
            ],
 | 
			
		||||
            "postAttachCommands": [
 | 
			
		||||
                // "attach 1",
 | 
			
		||||
                "compare-sections",
 | 
			
		||||
                // "compare-sections",
 | 
			
		||||
                "source debug/flipperapps.py",
 | 
			
		||||
                // "source debug/FreeRTOS/FreeRTOS.py",
 | 
			
		||||
                // "svd_load debug/STM32WB55_CM4.svd"
 | 
			
		||||
            ]
 | 
			
		||||
            // "showDevDebugOutput": "raw",
 | 
			
		||||
        },
 | 
			
		||||
@@ -50,7 +53,8 @@
 | 
			
		||||
                "attach 1",
 | 
			
		||||
                "set confirm off",
 | 
			
		||||
                "set mem inaccessible-by-default off",
 | 
			
		||||
                "compare-sections",
 | 
			
		||||
                "source debug/flipperapps.py",
 | 
			
		||||
                // "compare-sections",
 | 
			
		||||
            ]
 | 
			
		||||
            // "showDevDebugOutput": "raw",
 | 
			
		||||
        },
 | 
			
		||||
@@ -65,6 +69,9 @@
 | 
			
		||||
            "device": "STM32WB55RG",
 | 
			
		||||
            "svdFile": "./debug/STM32WB55_CM4.svd",
 | 
			
		||||
            "rtos": "FreeRTOS",
 | 
			
		||||
            "postAttachCommands": [
 | 
			
		||||
                "source debug/flipperapps.py",
 | 
			
		||||
            ]
 | 
			
		||||
            // "showDevDebugOutput": "raw",
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
@@ -73,7 +80,7 @@
 | 
			
		||||
            "request": "launch",
 | 
			
		||||
            "program": "./lib/scons/scripts/scons.py",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "sdk"
 | 
			
		||||
                "plugin_dist"
 | 
			
		||||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								.vscode/example/settings.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.vscode/example/settings.json
									
									
									
									
										vendored
									
									
								
							@@ -12,6 +12,9 @@
 | 
			
		||||
    "cortex-debug.openocdPath.windows": "${workspaceFolder}/toolchain/i686-windows/openocd/bin/openocd.exe",
 | 
			
		||||
    "cortex-debug.openocdPath.linux": "${workspaceFolder}/toolchain/x86_64-linux/openocd/bin/openocd",
 | 
			
		||||
    "cortex-debug.openocdPath.osx": "${workspaceFolder}/toolchain/x86_64-darwin/openocd/bin/openocd",
 | 
			
		||||
    "cortex-debug.gdbPath.windows": "${workspaceFolder}/toolchain/i686-windows/bin/arm-none-eabi-gdb-py.bat",
 | 
			
		||||
    "cortex-debug.gdbPath.linux": "${workspaceFolder}/toolchain/x86_64-linux/bin/arm-none-eabi-gdb-py",
 | 
			
		||||
    "cortex-debug.gdbPath.osx": "${workspaceFolder}/toolchain/x86_64-darwin/bin/arm-none-eabi-gdb",
 | 
			
		||||
    "editor.formatOnSave": true,
 | 
			
		||||
    "files.associations": {
 | 
			
		||||
        "*.scons": "python",
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										30
									
								
								.vscode/example/tasks.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								.vscode/example/tasks.json
									
									
									
									
										vendored
									
									
								
							@@ -93,11 +93,41 @@
 | 
			
		||||
            "type": "shell",
 | 
			
		||||
            "command": "./fbt FIRMWARE_APP_SET=unit_tests FORCE=1 flash_usb"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "[Debug] Flash (USB, with resources)",
 | 
			
		||||
            "group": "build",
 | 
			
		||||
            "type": "shell",
 | 
			
		||||
            "command": "./fbt FORCE=1 flash_usb_full"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "[Release] Flash (USB, with resources)",
 | 
			
		||||
            "group": "build",
 | 
			
		||||
            "type": "shell",
 | 
			
		||||
            "command": "./fbt COMPACT=1 DEBUG=0 FORCE=1 flash_usb_full"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "[Debug] Build FAPs",
 | 
			
		||||
            "group": "build",
 | 
			
		||||
            "type": "shell",
 | 
			
		||||
            "command": "./fbt plugin_dist"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "[Release] Build FAPs",
 | 
			
		||||
            "group": "build",
 | 
			
		||||
            "type": "shell",
 | 
			
		||||
            "command": "./fbt COMPACT=1 DEBUG=0 plugin_dist"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "[Debug] Launch App on Flipper",
 | 
			
		||||
            "group": "build",
 | 
			
		||||
            "type": "shell",
 | 
			
		||||
            "command": "./fbt launch_app APPSRC=${relativeFileDirname}"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "[Release] Launch App on Flipper",
 | 
			
		||||
            "group": "build",
 | 
			
		||||
            "type": "shell",
 | 
			
		||||
            "command": "./fbt COMPACT=1 DEBUG=0 launch_app APPSRC=${relativeFileDirname}"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user