#1 Сьогодні 15:32:09

jokeR
Учасник
Зареєстрований: 2024-12-12
Повідомлень: 185

Розмір прошивки

Оце заходився зробити нагрівач з текрмостабілізацією. Нічого складного: термопара з датчиком MAX6675, LCD дисплей 1602, енкодер, симистор. Замість контроллера взяв stm32f103 - китайську blue pill. Всередину - freertos (красиво ж wink ). Готові ардуїнівські ліби зручно.. Х%%к-х%%к і в production wink І воно все разом - упсь, не влізло sad Штош, взяв тулзовину puncover, дивлюсь куди ділось 32к флешки.
2026-04-10_15-05.png

Я так розумію, дуже багато місця зайняла float математика, яку притягнула з собою ліба термометра (_adddf3, __aeabi_dmul і тому подібне). Але абсолютний рекордсмен - HAL (HAL_I2C_EV_IRQHandler, HAL_RCC_OscConfig,HAL_UART_IRQHandler). Без HAL мабуть буде незручно. freertos - помітно. Страшні ардуїнівські функції десь в кінці.

Можна, звичайно, трохи побайто%%битись, переписати лібу без float. Або без freertos обійтись. Чи взяти інший фреймворк спробувати. Що порадите?

Неактивний

#2 Сьогодні 23:29:32

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 800

Re: Розмір прошивки

Що у вас за конфігурація platformio?
Які саме ліби використовуєте?

Для термостата що там потрібно? Регулятор та примітивний UI. Не дуже розумію, навіщо там RTOS.

jokeR пише:

взяв тулзовину puncover, дивлюсь куди ділось 32к флешки.

А objdump що показує? Окрім .text є ще секції .data та .rodata.

Наприклад, дисплей хоч і символьний, але бібліотека може тягнути кастомні бітмапи для завантаження в CGRAM. 

jokeR пише:

Я так розумію, дуже багато місця зайняла float математика, яку притягнула з собою ліба термометра (_adddf3, __aeabi_dmul і тому подібне).

Їх може і який-небудь snprintf() притягнути.

jokeR пише:

Але абсолютний рекордсмен - HAL (HAL_I2C_EV_IRQHandler, HAL_RCC_OscConfig,HAL_UART_IRQHandler).

Так це мабуть ардуінівська Wire. Вона дурна.
UPD: сама по собі HAL_I2C_EV_IRQHandler() в stm32f1xx_hal_i2c.c монструозна. Не розумію, навіщо імплементувати і master, і slave mode в одному місці одночасно.

Остання редакція dimich (Сьогодні 23:40:33)

Активний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму