|
1 / 1 / 0
Регистрация: 02.10.2021
Сообщений: 83
|
|
IAR на STM8 компилирует в МК лишний мусор07.09.2024, 11:32. Показов 1457. Ответов 19
Метки нет (Все метки)
Потребовалось покодить для STM8. Выбрал IAR, так как по сути других альтернатив как оказалось толком то и нету.
Поюзав IAR вижу что IAR не совсем ещё какаха по сравнению с Кайлом (Keil - созвучно даже с какахой))) - так вроде более менее, хотя минусов тоже туева хуча. Так или иначе дело пошло, освоил и проблем с программированием и связью с МК нету - всё вроде бы нормально. Но обнаружил очень негативный момент, добавляющий прям ложку дёгтя в итак уже подпорченную бочку мёда: IAR раздувает прошивку. Уже по опыту я знаю сколько должна весить та или иная скомпилированная прошивка, но вижу что IAR явно её завышает. Я ещё не так много накодил, можно сказать даже половину ещё не сделал из требуемого, а уже 5,5 кБ (из 8 кБ) памяти сожрато. Загрузил прошивку в ST Visual Programmer и вижу вот такую хрень: Пути на ПК в МК? Серьёзно?? Я 1-й раз такой бред вижу. Отсюда понятно стало, что IAR мусорит в машинный код. Можно ли как то избавиться от этой ерунды? Т. к. перелопатив всевозможные настройки я ничё не добился положительного
0
|
|
| 07.09.2024, 11:32 | |
|
Ответы с готовыми решениями:
19
кто сделает экспорт SDCC STM8 -> IAR STM8 ? IAR for STM8 V2.10 STM8,IAR,STM8S_StdPeriph_Lib |
|
1 / 1 / 0
Регистрация: 02.10.2021
Сообщений: 83
|
||
| 07.09.2024, 14:22 [ТС] | ||
|
По нему видно, что кроме основного кода там добавляется почти килобайт чего то лишнего. Что это не совсем понятно и как убрать. В мапе не сказано ничё про пути к файлам, которые генерятся в МК
0
|
||
|
1 / 1 / 0
Регистрация: 02.10.2021
Сообщений: 83
|
|
| 07.09.2024, 14:24 [ТС] | |
|
Мап в архиве
0
|
|
|
1184 / 460 / 68
Регистрация: 22.09.2023
Сообщений: 1,400
|
|
| 07.09.2024, 18:39 | |
|
Давно было, лет 20 назад. И не с STM8, с MSP430 и ARM, еще до Cortex. Отладочный монитор отключите в настройках редактора связей (линкера). Снимки настроек редактора связей покажите, может вспомню.
0
|
|
|
754 / 351 / 90
Регистрация: 07.01.2023
Сообщений: 1,451
|
|
| 07.09.2024, 19:13 | |
|
0
|
|
|
649 / 402 / 76
Регистрация: 21.09.2008
Сообщений: 1,385
|
|
| 07.09.2024, 20:44 | |
|
Mr McLaren, интересное руководство Bare metal programming: STM8 по SDCC и stm8flash.
0
|
|
|
1 / 1 / 0
Регистрация: 02.10.2021
Сообщений: 83
|
||||
| 08.09.2024, 09:48 [ТС] | ||||
|
Скриншоты только с теми настройками, где есть хоть какие то галки, на остальных вкладках всё отключено Сейчас уже вряд ли буду менять коней на переправе, у меня дня 3 осталось доделать программу
0
|
||||
|
|
|
| 08.09.2024, 09:52 | |
|
.near_func.text ro code 0x009308 0x55 stm8s_adc1.o [1]
.near_func.text ro code 0x00935d 0x54 stm8s_tim2.o [1] .near_func.text ro code 0x0093b1 0x4e stm8s_tim1.o [1] .near.rodata const 0x0093ff 0x3e stm8s_adc1.o [1] .near.rodata const 0x00943d 0x3e stm8s_gpio.o [1] .near.rodata const 0x00947b 0x3e stm8s_tim1.o [1] Assert'ы с __FILE__ случайно не включены? Не debug ли версия?
0
|
|
|
1 / 1 / 0
Регистрация: 02.10.2021
Сообщений: 83
|
||
| 08.09.2024, 10:02 [ТС] | ||
|
0
|
||
|
|
|
| 08.09.2024, 10:26 | |
|
1
|
|
|
1 / 1 / 0
Регистрация: 02.10.2021
Сообщений: 83
|
|
| 08.09.2024, 10:57 [ТС] | |
|
Rius,
Уже лучше стало. Спасибо. Лучше тем, что прошивка стала гораздо меньше и стала 4,4 кб. И она работает! Теперь я точно знаю что памяти мне на 2-ю часть программы в принципе должно хватить. ну даже если будет не хватать, буду сокращать библиотечные функции, переходя на регистры. Блин. В упор смотрел на надпись Debug и не стукнуло, что это КНОПКА ))) Правда неплохо было бы предупредить, что настройки для Debug и Realese разные, и переключив повылезали ошибки. Пришлось заново настроить проект теперь уже на на Realese и ошибки пропали. С раздутием прошивки вопрос решён. Но есть 1 но. Все равно мусор в прошивке присутствует, т. е. пути на те же самые файлы. Теперь то они конечно не особо напрягают, но хотелось бы и это убрать.
0
|
|
|
|
|
| 08.09.2024, 11:15 | |
|
Открываете эти файлы (см. Map), и смотрите, нет ли там assert() и __FILE__. Если есть, смотрите, почему они компилируются.
Также в логах смотрите опции, передаваемые компилятору, а потом в документации к нему каждую изучаете.
0
|
|
|
1 / 1 / 0
Регистрация: 02.10.2021
Сообщений: 83
|
|
| 08.09.2024, 11:33 [ТС] | |
|
МАП версии Release
MCV_rl_v23.rar Например берем самый большой файл: float.o 484 Его даже в проекте нету и на диске тоже, в прочем как и всех остальных, что IAR плюсует к основному коду Не связано ли это как то с этими файлами?:
0
|
|
|
|
||||
| 08.09.2024, 12:05 | ||||
|
Процесс компиляции Добавлено через 46 секунд
0
|
||||
|
1 / 1 / 0
Регистрация: 02.10.2021
Сообщений: 83
|
||
| 08.09.2024, 12:15 [ТС] | ||
|
Согласно адресации по мап файлу это: .near.rodata const 0x008dff 0x3e stm8s_adc1.o [1] .near.rodata const 0x008e3d 0x3e stm8s_gpio.o [1] .near.rodata const 0x008e7b 0x3e stm8s_tim1.o [1] .near.rodata const 0x008eb9 0x3d stm8s_clk.o [1] .near.rodata const 0x008ef6 0x3d stm8s_itc.o [1] Я тут на путал, посчитав. что это связано с добавлением к коду вот этого: dbgstm8smn.a: [3] xxexit.o 2 ------------------------------------------------ Total: 2 dlstm8smn.a: [4] cexit.o 5 char.o 10 cstartup.o 19 exit.o 3 float.o 484 init.o 20 init_small.o 40 interrupt.o 3 128 low_level_init.o 3 short.o 15 unhandled_exception.o 3 vreg_util.o 183 vregs.o 16 ------------------------------------------------ Total: 788 128 16 То есть прибавление к основному коду ещё 788 байт непонятно чего... тогда как основной код Total: 3 619 пути и вот эта хрень это получается разные вещи. Может это борьба с ветряными мельницами и это так и должно быть? но я считаю что такого не должно быть.
0
|
||
|
1184 / 460 / 68
Регистрация: 22.09.2023
Сообщений: 1,400
|
|
| 08.09.2024, 12:34 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 02.10.2021
Сообщений: 83
|
|||||||
| 08.09.2024, 16:41 [ТС] | |||||||
|
Дело было не в бобине..., мы не там копали. IAR тут как оказывается вообще не причём. Благодаря тому, что совместными усилиями нашли по мапу что именно прописывает пути, вышел на это: https://community.st.com/t5/st... d-p/530825 вопрос уже поднимался, проблема в USE_FULL_ASSERT (1) в файле stm8s_conf.h А именно: #define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__)) /* Exported functions ------------------------------------------------------- */ void assert_failed(uint8_t* file, uint32_t line); Если её отключить, то все эти пути пропадает. Более того, прошивка даже в debug-версии становится: Grand Total: 3 608 173 303 на что я собственно и ориентировался в release-верссии ещё меньше, но само собой, отладка невозможна. Вот что гласит функция FULL ASSERT:
Добавлено через 59 минут Разобрался, всё заработало. ![]() заодно немного выяснил, что это плюсуется к основному коду (те 788 байт - это нужные библиотеки) Просто до этого я не копался тщательно в мапах, теперь стал немного в нём разбираться. На шаг ещё стал продвинутее. Debug-версия весит 3,6 кб. Release-версия весит 3 кб и она тоже работает. (а пришёл сюда с 5,5 килобайтами). И ничего лишнего. И это даже на библиотечных функциях. Для 2-й части программы места теперь вагон и маленькая тележка ) Ну в общем цель достигнута. Всем спасибо.
0
|
|||||||
| 08.09.2024, 16:41 | |
|
Помогаю со студенческими работами здесь
20
IAR, STM8, C++, Наследование STM8 IAR... нюансы Прерывания STM8 в IAR IAR for STM8 - license out of date Новый IAR для STM8 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|