Bootloader size optimizations (#873)
This commit is contained in:
		
							parent
							
								
									03d7476e4f
								
							
						
					
					
						commit
						f54ae2597e
					
				| @ -87,29 +87,7 @@ typedef struct { | |||||||
| static FuriHalVersion furi_hal_version = {0}; | static FuriHalVersion furi_hal_version = {0}; | ||||||
| 
 | 
 | ||||||
| static void furi_hal_version_set_name(const char* name) { | static void furi_hal_version_set_name(const char* name) { | ||||||
|     if(name != NULL) { |  | ||||||
|         strlcpy(furi_hal_version.name, name, FURI_HAL_VERSION_ARRAY_NAME_LENGTH); |  | ||||||
|         snprintf( |  | ||||||
|             furi_hal_version.device_name, |  | ||||||
|             FURI_HAL_VERSION_DEVICE_NAME_LENGTH, |  | ||||||
|             "xFlipper %s", |  | ||||||
|             furi_hal_version.name); |  | ||||||
|     } else { |  | ||||||
|         snprintf(furi_hal_version.device_name, FURI_HAL_VERSION_DEVICE_NAME_LENGTH, "xFlipper"); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     furi_hal_version.device_name[0] = 0; |     furi_hal_version.device_name[0] = 0; | ||||||
| 
 |  | ||||||
|     // BLE Mac address
 |  | ||||||
|     uint32_t udn = LL_FLASH_GetUDN(); |  | ||||||
|     uint32_t company_id = LL_FLASH_GetSTCompanyID(); |  | ||||||
|     uint32_t device_id = LL_FLASH_GetDeviceID(); |  | ||||||
|     furi_hal_version.ble_mac[0] = (uint8_t)(udn & 0x000000FF); |  | ||||||
|     furi_hal_version.ble_mac[1] = (uint8_t)((udn & 0x0000FF00) >> 8); |  | ||||||
|     furi_hal_version.ble_mac[2] = (uint8_t)((udn & 0x00FF0000) >> 16); |  | ||||||
|     furi_hal_version.ble_mac[3] = (uint8_t)device_id; |  | ||||||
|     furi_hal_version.ble_mac[4] = (uint8_t)(company_id & 0x000000FF); |  | ||||||
|     furi_hal_version.ble_mac[5] = (uint8_t)((company_id & 0x0000FF00) >> 8); |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void furi_hal_version_load_otp_default() { | static void furi_hal_version_load_otp_default() { | ||||||
|  | |||||||
| @ -194,10 +194,12 @@ void target_display_init() { | |||||||
|     // Create payload
 |     // Create payload
 | ||||||
|     u8g2_ClearBuffer(&fb); |     u8g2_ClearBuffer(&fb); | ||||||
|     u8g2_SetDrawColor(&fb, 0x01); |     u8g2_SetDrawColor(&fb, 0x01); | ||||||
|     u8g2_SetFont(&fb, u8g2_font_helvB08_tf); |  | ||||||
|     u8g2_DrawXBM(&fb, 0, 64 - 50, 128, 50, I_DFU_128x50); |     u8g2_DrawXBM(&fb, 0, 64 - 50, 128, 50, I_DFU_128x50); | ||||||
|  | #ifndef SLIM_BOOTLOADER | ||||||
|  |     u8g2_SetFont(&fb, u8g2_font_helvB08_tf); | ||||||
|     u8g2_DrawStr(&fb, 2, 8, "Update & Recovery Mode"); |     u8g2_DrawStr(&fb, 2, 8, "Update & Recovery Mode"); | ||||||
|     u8g2_DrawStr(&fb, 2, 21, "DFU started"); |     u8g2_DrawStr(&fb, 2, 21, "DFU started"); | ||||||
|  | #endif | ||||||
|     // Send buffer
 |     // Send buffer
 | ||||||
|     u8g2_SetPowerSave(&fb, 0); |     u8g2_SetPowerSave(&fb, 0); | ||||||
|     u8g2_SendBuffer(&fb); |     u8g2_SendBuffer(&fb); | ||||||
|  | |||||||
| @ -87,29 +87,7 @@ typedef struct { | |||||||
| static FuriHalVersion furi_hal_version = {0}; | static FuriHalVersion furi_hal_version = {0}; | ||||||
| 
 | 
 | ||||||
| static void furi_hal_version_set_name(const char* name) { | static void furi_hal_version_set_name(const char* name) { | ||||||
|     if(name != NULL) { |  | ||||||
|         strlcpy(furi_hal_version.name, name, FURI_HAL_VERSION_ARRAY_NAME_LENGTH); |  | ||||||
|         snprintf( |  | ||||||
|             furi_hal_version.device_name, |  | ||||||
|             FURI_HAL_VERSION_DEVICE_NAME_LENGTH, |  | ||||||
|             "xFlipper %s", |  | ||||||
|             furi_hal_version.name); |  | ||||||
|     } else { |  | ||||||
|         snprintf(furi_hal_version.device_name, FURI_HAL_VERSION_DEVICE_NAME_LENGTH, "xFlipper"); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     furi_hal_version.device_name[0] = 0; |     furi_hal_version.device_name[0] = 0; | ||||||
| 
 |  | ||||||
|     // BLE Mac address
 |  | ||||||
|     uint32_t udn = LL_FLASH_GetUDN(); |  | ||||||
|     uint32_t company_id = LL_FLASH_GetSTCompanyID(); |  | ||||||
|     uint32_t device_id = LL_FLASH_GetDeviceID(); |  | ||||||
|     furi_hal_version.ble_mac[0] = (uint8_t)(udn & 0x000000FF); |  | ||||||
|     furi_hal_version.ble_mac[1] = (uint8_t)((udn & 0x0000FF00) >> 8); |  | ||||||
|     furi_hal_version.ble_mac[2] = (uint8_t)((udn & 0x00FF0000) >> 16); |  | ||||||
|     furi_hal_version.ble_mac[3] = (uint8_t)device_id; |  | ||||||
|     furi_hal_version.ble_mac[4] = (uint8_t)(company_id & 0x000000FF); |  | ||||||
|     furi_hal_version.ble_mac[5] = (uint8_t)((company_id & 0x0000FF00) >> 8); |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void furi_hal_version_load_otp_default() { | static void furi_hal_version_load_otp_default() { | ||||||
|  | |||||||
| @ -194,10 +194,12 @@ void target_display_init() { | |||||||
|     // Create payload
 |     // Create payload
 | ||||||
|     u8g2_ClearBuffer(&fb); |     u8g2_ClearBuffer(&fb); | ||||||
|     u8g2_SetDrawColor(&fb, 0x01); |     u8g2_SetDrawColor(&fb, 0x01); | ||||||
|     u8g2_SetFont(&fb, u8g2_font_helvB08_tf); |  | ||||||
|     u8g2_DrawXBM(&fb, 0, 64 - 50, 128, 50, I_DFU_128x50); |     u8g2_DrawXBM(&fb, 0, 64 - 50, 128, 50, I_DFU_128x50); | ||||||
|  | #ifndef SLIM_BOOTLOADER | ||||||
|  |     u8g2_SetFont(&fb, u8g2_font_helvB08_tf); | ||||||
|     u8g2_DrawStr(&fb, 2, 8, "Update & Recovery Mode"); |     u8g2_DrawStr(&fb, 2, 8, "Update & Recovery Mode"); | ||||||
|     u8g2_DrawStr(&fb, 2, 21, "DFU started"); |     u8g2_DrawStr(&fb, 2, 21, "DFU started"); | ||||||
|  | #endif | ||||||
|     // Send buffer
 |     // Send buffer
 | ||||||
|     u8g2_SetPowerSave(&fb, 0); |     u8g2_SetPowerSave(&fb, 0); | ||||||
|     u8g2_SendBuffer(&fb); |     u8g2_SendBuffer(&fb); | ||||||
|  | |||||||
| @ -19,7 +19,7 @@ BOOT_CFLAGS		= -DBOOT_ADDRESS=$(BOOT_ADDRESS) -DFW_ADDRESS=$(FW_ADDRESS) -DOS_OF | |||||||
| MCU_FLAGS		= -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard | MCU_FLAGS		= -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard | ||||||
| 
 | 
 | ||||||
| CFLAGS			+= $(MCU_FLAGS) $(BOOT_CFLAGS) -DSTM32WB55xx -Wall -fdata-sections -ffunction-sections | CFLAGS			+= $(MCU_FLAGS) $(BOOT_CFLAGS) -DSTM32WB55xx -Wall -fdata-sections -ffunction-sections | ||||||
| LDFLAGS			+= $(MCU_FLAGS) -specs=nosys.specs -specs=nano.specs  | LDFLAGS			+= $(MCU_FLAGS) -specs=nosys.specs -specs=nano.specs -u _printf_float | ||||||
| 
 | 
 | ||||||
| CPPFLAGS		+= -fno-rtti -fno-use-cxa-atexit -fno-exceptions | CPPFLAGS		+= -fno-rtti -fno-use-cxa-atexit -fno-exceptions | ||||||
| LDFLAGS			+= -Wl,--start-group -lstdc++ -lsupc++ -Wl,--end-group | LDFLAGS			+= -Wl,--start-group -lstdc++ -lsupc++ -Wl,--end-group | ||||||
|  | |||||||
| @ -19,7 +19,7 @@ BOOT_CFLAGS		= -DBOOT_ADDRESS=$(BOOT_ADDRESS) -DFW_ADDRESS=$(FW_ADDRESS) -DOS_OF | |||||||
| MCU_FLAGS		= -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard | MCU_FLAGS		= -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard | ||||||
| 
 | 
 | ||||||
| CFLAGS			+= $(MCU_FLAGS) $(BOOT_CFLAGS) -DSTM32WB55xx -Wall -fdata-sections -ffunction-sections | CFLAGS			+= $(MCU_FLAGS) $(BOOT_CFLAGS) -DSTM32WB55xx -Wall -fdata-sections -ffunction-sections | ||||||
| LDFLAGS			+= $(MCU_FLAGS) -specs=nosys.specs -specs=nano.specs  | LDFLAGS			+= $(MCU_FLAGS) -specs=nosys.specs -specs=nano.specs -u _printf_float | ||||||
| 
 | 
 | ||||||
| CPPFLAGS		+= -fno-rtti -fno-use-cxa-atexit -fno-exceptions | CPPFLAGS		+= -fno-rtti -fno-use-cxa-atexit -fno-exceptions | ||||||
| LDFLAGS			+= -Wl,--start-group -lstdc++ -lsupc++ -Wl,--end-group | LDFLAGS			+= -Wl,--start-group -lstdc++ -lsupc++ -Wl,--end-group | ||||||
|  | |||||||
| @ -27,4 +27,4 @@ endif | |||||||
| 
 | 
 | ||||||
| CFLAGS		+= -fdata-sections -ffunction-sections -fno-math-errno -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" | CFLAGS		+= -fdata-sections -ffunction-sections -fno-math-errno -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" | ||||||
| CPPFLAGS	+= -fno-threadsafe-statics -fno-use-cxa-atexit -fno-exceptions -fno-rtti | CPPFLAGS	+= -fno-threadsafe-statics -fno-use-cxa-atexit -fno-exceptions -fno-rtti | ||||||
| LDFLAGS		+= -Wl,-Map=$(OBJ_DIR)/$(PROJECT).map,--cref -Wl,--gc-sections -Wl,--undefined=uxTopUsedPriority -u _printf_float -n | LDFLAGS		+= -Wl,-Map=$(OBJ_DIR)/$(PROJECT).map,--cref -Wl,--gc-sections -Wl,--undefined=uxTopUsedPriority -n | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 hedger
						hedger