diff --git a/examples/[template][bare-metal]/project/mdk/gcc_template.uvoptx b/examples/[template][bare-metal]/project/mdk/gcc_template.uvoptx
index 4c9f9ac82..fe5c0afab 100644
--- a/examples/[template][bare-metal]/project/mdk/gcc_template.uvoptx
+++ b/examples/[template][bare-metal]/project/mdk/gcc_template.uvoptx
@@ -240,7 +240,7 @@
Application
- 0
+ 1
0
0
0
@@ -299,8 +299,8 @@
0
0
0
- ..\..\arm_2d_scene_meter.c
- arm_2d_scene_meter.c
+ ..\..\MeterPanel.c
+ MeterPanel.c
0
0
@@ -311,20 +311,44 @@
0
0
0
- ..\..\MeterPanel.c
- MeterPanel.c
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.c
+ arm_2d_scene_fitness.c
0
0
1
7
+ 5
+ 0
+ 0
+ 0
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.h
+ arm_2d_scene_fitness.h
+ 0
+ 0
+
+
+ 1
+ 8
1
0
0
0
- ..\..\arm_2d_scene_fitness.c
- arm_2d_scene_fitness.c
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.c
+ arm_2d_scene_meter.c
+ 0
+ 0
+
+
+ 1
+ 9
+ 5
+ 0
+ 0
+ 0
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.h
+ arm_2d_scene_meter.h
0
0
@@ -338,7 +362,7 @@
0
2
- 8
+ 10
1
0
0
@@ -350,7 +374,7 @@
2
- 9
+ 11
1
0
0
@@ -362,7 +386,7 @@
2
- 10
+ 12
1
0
0
@@ -374,7 +398,7 @@
2
- 11
+ 13
1
0
0
@@ -386,7 +410,7 @@
2
- 12
+ 14
1
0
0
@@ -398,7 +422,7 @@
2
- 13
+ 15
5
0
0
diff --git a/examples/[template][bare-metal]/project/mdk/gcc_template.uvprojx b/examples/[template][bare-metal]/project/mdk/gcc_template.uvprojx
index 73559a95a..210eb5c15 100644
--- a/examples/[template][bare-metal]/project/mdk/gcc_template.uvprojx
+++ b/examples/[template][bare-metal]/project/mdk/gcc_template.uvprojx
@@ -245,7 +245,7 @@
-Ofast -flto -fdata-sections -ffunction-sections -fms-extensions -mcpu=cortex-m7 -mfloat-abi=soft -mfpu=fpv5-sp-d16 -std=gnu11
RTE_Compiler_IO_STDOUT_User,__DISP0_CFG_SCEEN_WIDTH__=480,__DISP0_CFG_SCEEN_HEIGHT__=272,__DISP0_CFG_PFB_BLOCK_WIDTH__=480,__DISP0_CFG_PFB_BLOCK_HEIGHT__=27
- ..\..\..\common\platform;..\..\..\common\platform\stm32f746g-discovery;..\..\
+ ..\..\..\common\platform;..\..\..\common\platform\stm32f746g-discovery;..\..\;..\..\..\common\scenes\fitness;..\..\..\common\scenes\meter;..\..\..\common\scenes\watch
@@ -303,11 +303,6 @@
5
..\..\virtual_resource_demo.h
-
- arm_2d_scene_meter.c
- 1
- ..\..\arm_2d_scene_meter.c
-
MeterPanel.c
1
@@ -316,7 +311,22 @@
arm_2d_scene_fitness.c
1
- ..\..\arm_2d_scene_fitness.c
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.c
+
+
+ arm_2d_scene_fitness.h
+ 5
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.h
+
+
+ arm_2d_scene_meter.c
+ 1
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.c
+
+
+ arm_2d_scene_meter.h
+ 5
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.h
@@ -582,16 +592,16 @@
RTE\Acceleration\DigitsFont.c
-
-
+
+
RTE\Acceleration\GLCD_Fonts.c
-
-
+
+
@@ -599,7 +609,7 @@
RTE\Acceleration\README.md
-
+
@@ -607,7 +617,7 @@
RTE\Acceleration\arm_2d.c
-
+
@@ -615,103 +625,103 @@
RTE\Acceleration\arm_2d_cfg.h
-
+
RTE\Acceleration\arm_2d_disp_adapter_0.c
-
-
+
+
RTE\Acceleration\arm_2d_disp_adapter_0.h
-
-
+
+
RTE\Acceleration\arm_2d_scene_0.c
-
-
+
+
RTE\Acceleration\arm_2d_scene_0.h
-
-
+
+
RTE\Acceleration\arm_2d_scene_1.c
-
-
+
+
RTE\Acceleration\arm_2d_scene_1.h
-
-
+
+
RTE\Acceleration\arm_2d_scene_2.c
-
-
+
+
RTE\Acceleration\arm_2d_scene_2.h
-
-
+
+
RTE\Acceleration\arm_2d_scene_3.c
-
-
+
+
RTE\Acceleration\arm_2d_scene_3.h
-
-
+
+
RTE\Acceleration\arm_2d_scene_4.c
-
-
+
+
RTE\Acceleration\arm_2d_scene_4.h
-
-
+
+
@@ -719,7 +729,7 @@
RTE\Acceleration\img2c.py
-
+
@@ -727,7 +737,7 @@
RTE\Acceleration\ttf2c.py
-
+
diff --git a/examples/[template][bare-metal]/project/mdk/template.uvmpw b/examples/[template][bare-metal]/project/mdk/template.uvmpw
index fb76e8276..797355ff6 100644
--- a/examples/[template][bare-metal]/project/mdk/template.uvmpw
+++ b/examples/[template][bare-metal]/project/mdk/template.uvmpw
@@ -15,7 +15,6 @@
.\gcc_template.uvprojx
- 1
diff --git a/examples/[template][bare-metal]/project/mdk/template.uvoptx b/examples/[template][bare-metal]/project/mdk/template.uvoptx
index d251a71a4..a6af4ebd4 100644
--- a/examples/[template][bare-metal]/project/mdk/template.uvoptx
+++ b/examples/[template][bare-metal]/project/mdk/template.uvoptx
@@ -2512,8 +2512,8 @@
0
0
0
- ..\..\arm_2d_scene_meter.c
- arm_2d_scene_meter.c
+ ..\..\MeterPanel.c
+ MeterPanel.c
0
0
@@ -2524,31 +2524,43 @@
0
0
0
- ..\..\MeterPanel.c
- MeterPanel.c
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.c
+ arm_2d_scene_meter.c
0
0
1
7
+ 5
+ 0
+ 0
+ 0
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.h
+ arm_2d_scene_meter.h
+ 0
+ 0
+
+
+ 1
+ 8
1
0
0
0
- ..\..\arm_2d_scene_fitness.c
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.c
arm_2d_scene_fitness.c
0
0
1
- 8
+ 9
5
0
0
0
- ..\..\arm_2d_scene_fitness.h
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.h
arm_2d_scene_fitness.h
0
0
@@ -2563,7 +2575,7 @@
0
2
- 9
+ 10
1
0
0
@@ -2575,7 +2587,7 @@
2
- 10
+ 11
5
0
0
@@ -2587,7 +2599,7 @@
2
- 11
+ 12
5
0
0
@@ -2607,7 +2619,7 @@
0
3
- 12
+ 13
1
0
0
@@ -2619,7 +2631,7 @@
3
- 13
+ 14
1
0
0
@@ -2631,7 +2643,7 @@
3
- 14
+ 15
1
0
0
@@ -2643,7 +2655,7 @@
3
- 15
+ 16
5
0
0
@@ -2663,7 +2675,7 @@
0
4
- 16
+ 17
1
0
0
@@ -2675,7 +2687,7 @@
4
- 17
+ 18
1
0
0
@@ -2687,7 +2699,7 @@
4
- 18
+ 19
1
0
0
@@ -2699,7 +2711,7 @@
4
- 19
+ 20
5
0
0
@@ -2719,7 +2731,7 @@
0
5
- 20
+ 21
1
0
0
@@ -2731,7 +2743,7 @@
5
- 21
+ 22
1
0
0
@@ -2743,7 +2755,7 @@
5
- 22
+ 23
5
0
0
diff --git a/examples/[template][bare-metal]/project/mdk/template.uvprojx b/examples/[template][bare-metal]/project/mdk/template.uvprojx
index b522122a4..abc2fed1f 100644
--- a/examples/[template][bare-metal]/project/mdk/template.uvprojx
+++ b/examples/[template][bare-metal]/project/mdk/template.uvprojx
@@ -406,24 +406,29 @@
..\..\virtual_resource_demo.h
- arm_2d_scene_meter.c
+ MeterPanel.c
1
- ..\..\arm_2d_scene_meter.c
+ ..\..\MeterPanel.c
- MeterPanel.c
+ arm_2d_scene_meter.c
1
- ..\..\MeterPanel.c
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.c
+
+
+ arm_2d_scene_meter.h
+ 5
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.h
arm_2d_scene_fitness.c
1
- ..\..\arm_2d_scene_fitness.c
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.c
arm_2d_scene_fitness.h
5
- ..\..\arm_2d_scene_fitness.h
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.h
@@ -1287,24 +1292,29 @@
..\..\virtual_resource_demo.h
- arm_2d_scene_meter.c
+ MeterPanel.c
1
- ..\..\arm_2d_scene_meter.c
+ ..\..\MeterPanel.c
- MeterPanel.c
+ arm_2d_scene_meter.c
1
- ..\..\MeterPanel.c
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.c
+
+
+ arm_2d_scene_meter.h
+ 5
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.h
arm_2d_scene_fitness.c
1
- ..\..\arm_2d_scene_fitness.c
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.c
arm_2d_scene_fitness.h
5
- ..\..\arm_2d_scene_fitness.h
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.h
@@ -2169,24 +2179,29 @@
..\..\virtual_resource_demo.h
- arm_2d_scene_meter.c
+ MeterPanel.c
1
- ..\..\arm_2d_scene_meter.c
+ ..\..\MeterPanel.c
- MeterPanel.c
+ arm_2d_scene_meter.c
1
- ..\..\MeterPanel.c
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.c
+
+
+ arm_2d_scene_meter.h
+ 5
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.h
arm_2d_scene_fitness.c
1
- ..\..\arm_2d_scene_fitness.c
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.c
arm_2d_scene_fitness.h
5
- ..\..\arm_2d_scene_fitness.h
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.h
@@ -2982,24 +2997,29 @@
..\..\virtual_resource_demo.h
- arm_2d_scene_meter.c
+ MeterPanel.c
1
- ..\..\arm_2d_scene_meter.c
+ ..\..\MeterPanel.c
- MeterPanel.c
+ arm_2d_scene_meter.c
1
- ..\..\MeterPanel.c
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.c
+
+
+ arm_2d_scene_meter.h
+ 5
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.h
arm_2d_scene_fitness.c
1
- ..\..\arm_2d_scene_fitness.c
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.c
arm_2d_scene_fitness.h
5
- ..\..\arm_2d_scene_fitness.h
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.h
@@ -3864,24 +3884,29 @@
..\..\virtual_resource_demo.h
- arm_2d_scene_meter.c
+ MeterPanel.c
1
- ..\..\arm_2d_scene_meter.c
+ ..\..\MeterPanel.c
- MeterPanel.c
+ arm_2d_scene_meter.c
1
- ..\..\MeterPanel.c
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.c
+
+
+ arm_2d_scene_meter.h
+ 5
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.h
arm_2d_scene_fitness.c
1
- ..\..\arm_2d_scene_fitness.c
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.c
arm_2d_scene_fitness.h
5
- ..\..\arm_2d_scene_fitness.h
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.h
@@ -4746,24 +4771,29 @@
..\..\virtual_resource_demo.h
- arm_2d_scene_meter.c
+ MeterPanel.c
1
- ..\..\arm_2d_scene_meter.c
+ ..\..\MeterPanel.c
- MeterPanel.c
+ arm_2d_scene_meter.c
1
- ..\..\MeterPanel.c
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.c
+
+
+ arm_2d_scene_meter.h
+ 5
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.h
arm_2d_scene_fitness.c
1
- ..\..\arm_2d_scene_fitness.c
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.c
arm_2d_scene_fitness.h
5
- ..\..\arm_2d_scene_fitness.h
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.h
@@ -5562,7 +5592,7 @@
-Wno-nonportable-include-path -Omax
__GLCD_CFG_SCEEN_WIDTH__=480,__GLCD_CFG_SCEEN_HEIGHT__=272,__DISP0_CFG_SCEEN_WIDTH__=480,__DISP0_CFG_SCEEN_HEIGHT__=272,__DISP0_CFG_PFB_BLOCK_WIDTH__=480,__DISP0_CFG_PFB_BLOCK_HEIGHT__=28
- ..\..\..\common\platform;..\..\..\common\platform\stm32f746g-discovery;..\..\
+ ..\..\..\common\platform;..\..\..\common\platform\stm32f746g-discovery;..\..\;..\..\..\common\scenes\fitness;..\..\..\common\scenes\meter;..\..\..\common\scenes\watch
@@ -5628,24 +5658,29 @@
..\..\virtual_resource_demo.h
- arm_2d_scene_meter.c
+ MeterPanel.c
1
- ..\..\arm_2d_scene_meter.c
+ ..\..\MeterPanel.c
- MeterPanel.c
+ arm_2d_scene_meter.c
1
- ..\..\MeterPanel.c
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.c
+
+
+ arm_2d_scene_meter.h
+ 5
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.h
arm_2d_scene_fitness.c
1
- ..\..\arm_2d_scene_fitness.c
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.c
arm_2d_scene_fitness.h
5
- ..\..\arm_2d_scene_fitness.h
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.h
@@ -6441,24 +6476,29 @@
..\..\virtual_resource_demo.h
- arm_2d_scene_meter.c
+ MeterPanel.c
1
- ..\..\arm_2d_scene_meter.c
+ ..\..\MeterPanel.c
- MeterPanel.c
+ arm_2d_scene_meter.c
1
- ..\..\MeterPanel.c
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.c
+
+
+ arm_2d_scene_meter.h
+ 5
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.h
arm_2d_scene_fitness.c
1
- ..\..\arm_2d_scene_fitness.c
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.c
arm_2d_scene_fitness.h
5
- ..\..\arm_2d_scene_fitness.h
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.h
@@ -7323,24 +7363,29 @@
..\..\virtual_resource_demo.h
- arm_2d_scene_meter.c
+ MeterPanel.c
1
- ..\..\arm_2d_scene_meter.c
+ ..\..\MeterPanel.c
- MeterPanel.c
+ arm_2d_scene_meter.c
1
- ..\..\MeterPanel.c
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.c
+
+
+ arm_2d_scene_meter.h
+ 5
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.h
arm_2d_scene_fitness.c
1
- ..\..\arm_2d_scene_fitness.c
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.c
arm_2d_scene_fitness.h
5
- ..\..\arm_2d_scene_fitness.h
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.h
@@ -8136,24 +8181,29 @@
..\..\virtual_resource_demo.h
- arm_2d_scene_meter.c
+ MeterPanel.c
1
- ..\..\arm_2d_scene_meter.c
+ ..\..\MeterPanel.c
- MeterPanel.c
+ arm_2d_scene_meter.c
1
- ..\..\MeterPanel.c
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.c
+
+
+ arm_2d_scene_meter.h
+ 5
+ ..\..\..\common\scenes\meter\arm_2d_scene_meter.h
arm_2d_scene_fitness.c
1
- ..\..\arm_2d_scene_fitness.c
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.c
arm_2d_scene_fitness.h
5
- ..\..\arm_2d_scene_fitness.h
+ ..\..\..\common\scenes\fitness\arm_2d_scene_fitness.h
@@ -9138,8 +9188,8 @@
RTE\Acceleration\DigitsFont.c
-
-
+
+
@@ -9155,8 +9205,8 @@
RTE\Acceleration\GLCD_Fonts.c
-
-
+
+
@@ -9173,7 +9223,7 @@
RTE\Acceleration\README.md
-
+
@@ -9190,7 +9240,7 @@
RTE\Acceleration\arm_2d.c
-
+
@@ -9207,7 +9257,7 @@
RTE\Acceleration\arm_2d_cfg.h
-
+
@@ -9223,8 +9273,8 @@
RTE\Acceleration\arm_2d_disp_adapter_0.c
-
-
+
+
@@ -9240,8 +9290,8 @@
RTE\Acceleration\arm_2d_disp_adapter_0.h
-
-
+
+
@@ -9269,8 +9319,8 @@
RTE\Acceleration\arm_2d_scene_0.c
-
-
+
+
@@ -9286,8 +9336,8 @@
RTE\Acceleration\arm_2d_scene_0.h
-
-
+
+
@@ -9303,8 +9353,8 @@
RTE\Acceleration\arm_2d_scene_1.c
-
-
+
+
@@ -9320,8 +9370,8 @@
RTE\Acceleration\arm_2d_scene_1.h
-
-
+
+
@@ -9337,8 +9387,8 @@
RTE\Acceleration\arm_2d_scene_2.c
-
-
+
+
@@ -9354,8 +9404,8 @@
RTE\Acceleration\arm_2d_scene_2.h
-
-
+
+
@@ -9371,8 +9421,8 @@
RTE\Acceleration\arm_2d_scene_3.c
-
-
+
+
@@ -9388,8 +9438,8 @@
RTE\Acceleration\arm_2d_scene_3.h
-
-
+
+
@@ -9405,8 +9455,8 @@
RTE\Acceleration\arm_2d_scene_4.c
-
-
+
+
@@ -9422,8 +9472,8 @@
RTE\Acceleration\arm_2d_scene_4.h
-
-
+
+
@@ -9440,7 +9490,7 @@
RTE\Acceleration\img2c.py
-
+
@@ -9457,7 +9507,7 @@
RTE\Acceleration\ttf2c.py
-
+