Easyelectronics.ru

Электроника для всех
Текущее время: 25 май 2020, 23:07

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 18 ] 
Автор Сообщение
 Заголовок сообщения: HAL кладёт имена файлов в прошивку
СообщениеДобавлено: 27 июн 2019, 18:57 
Здравствуйте!

Зарегистрирован: 27 июн 2019, 18:33
Сообщения: 3
Всем доброго времени суток!
Вопрос: когда использую стмовский HAL, в прошивке (в бинарнике, в ASCII) вижу названия некоторых сишных файлов проекта.
Например, 63 61 6E 2E 63 00 00 00 6D 61 69 6E 2E 63 00 00 74 69 6D 2E 63 || can.c main.c tim.c
В map по этим адресам вижу следующее:
.rodata const 0x0800d4bc 0x8 can.o [1]
.rodata const 0x0800d4c4 0x8 main.o [1]
.rodata const 0x0800d4cc 0x8 tim.o [1]

Когда не использую HAL, такого в прошивках не наблюдаю.
Работаю в IAR 7.

Пробовал и --no_path_in_file_macros и #define NDEBUG и #define assert(ignore) ((void)0) - всё равно вижу в бинарнике имена файлов.
Может кто-нибудь подсказать, как они туда попадают и как с этим бороться?
Вариант "не использовать HAL" не предлагать :) Иногда необходимо быстро и просто что-то набросать в кубе и нагенерить код.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HAL кладёт имена файлов в прошивку
СообщениеДобавлено: 27 июн 2019, 19:06 
Старожил

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 4198
Откуда: Чобля - долбаный кетайец
Да ну? :) Фига се. "Большой брат следит за тобой". Если это действительно правда и вы ничего не перепутали, то тогда раскрыт еще один секрет дикой тормознутости и лишнего размера кода, генерированного ХАЛом :)))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HAL кладёт имена файлов в прошивку
СообщениеДобавлено: 27 июн 2019, 19:18 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5865
СПЛ так же гадила.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HAL кладёт имена файлов в прошивку
СообщениеДобавлено: 27 июн 2019, 19:23 
Старожил
Аватара пользователя

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 1430
Точно HAL, а не настройки компилятора/линкера? Проект в студию!

А то ведь RTE включенный найдём :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HAL кладёт имена файлов в прошивку
СообщениеДобавлено: 27 июн 2019, 19:33 
Старожил

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 4198
Откуда: Чобля - долбаный кетайец
Интересный эффект. Когда я писал с SPL-ом, я тогда еще плохо знал STM, поэтому просто не обращал внимания на такой факт.
:)) Иногда я сейчас просто так добавляю в прошивку в ASCII-виде свое имя, дату разработки и несколько слов описания. И не важно, что никто это не прочтет из-за залоченного флеша. А еще иногда ради баловства я добавляю в некритичный по времени участок проги чтение этой ASCII-вставки и подсчет суммы значений.
Тут, мне кажется, дело в настройках сборки проекта.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HAL кладёт имена файлов в прошивку
СообщениеДобавлено: 27 июн 2019, 19:36 
Здравствуйте!

Зарегистрирован: 27 июн 2019, 18:33
Сообщения: 3
https://drive.google.com/file/d/1zJl_JO ... sp=sharing
Вот проект.
В настройках ничего не менял. Всё как обычно. В основном default.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HAL кладёт имена файлов в прошивку
СообщениеДобавлено: 27 июн 2019, 20:58 
Старожил
Аватара пользователя

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 1430
del


Последний раз редактировалось VladislavS 27 июн 2019, 21:39, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HAL кладёт имена файлов в прошивку
СообщениеДобавлено: 27 июн 2019, 21:13 
Старожил

Зарегистрирован: 13 июл 2016, 11:05
Сообщения: 453
Специально посмотрел свою прошивку (больше 100 кБ бин). У меня всё исключительно на HAL-е. Но после Кейла.
Ничего такого нет. :-(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HAL кладёт имена файлов в прошивку
СообщениеДобавлено: 27 июн 2019, 21:30 
Старожил
Аватара пользователя

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 1430
Всё гораздо проще. Смотрим код
Код:
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }
Код:
  if (HAL_CAN_Init(&hcan1) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }
Код:
  if (HAL_TIM_Base_Init(&htim6) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }


Если поставить оптимизацию повыше, то компилятор всю эту мутоту повычистит.

Дефолтная обработка ошибок доставляет :)
Код:
/**
  * @brief  This function is executed in case of error occurrence.
  * @param  file: The file name as string.
  * @param  line: The line in file as a number.
  * @retval None
  */
void _Error_Handler(char *file, int line)
{
  /* USER CODE BEGIN Error_Handler_Debug */
  /* User can add his own implementation to report the HAL error return state */
  while(1)
  {
  }
  /* USER CODE END Error_Handler_Debug */
}


Как хорошо! Просто волшебно! Что всё это не у меня :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HAL кладёт имена файлов в прошивку
СообщениеДобавлено: 28 июн 2019, 00:02 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5865
Ага,ага. А прикинь когда в IDA копаешь.
И сразу видно на чем говнюк ляпал, а плюс применить сигнатуры так все шЫкарно укладывается.
жЫрный минус только в том что приходится вляпаться в калокубовское дерьмо, хоть и временно но блевать тянет...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HAL кладёт имена файлов в прошивку
СообщениеДобавлено: 28 июн 2019, 12:49 
Здравствуйте!

Зарегистрирован: 27 июн 2019, 18:33
Сообщения: 3
Понял вас. Спасибо за ответы!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HAL кладёт имена файлов в прошивку
СообщениеДобавлено: 29 июн 2019, 22:42 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1995
Причем тут ХАЛ ? Читайте руководство по компилятору.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HAL кладёт имена файлов в прошивку
СообщениеДобавлено: 29 июн 2019, 23:15 
Старожил
Аватара пользователя

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 1430
Причём тут компилятор, если в коде используется __FILE__ ? Впрочем, это ни хорошо, ни плохо, а просто нах не нужно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HAL кладёт имена файлов в прошивку
СообщениеДобавлено: 29 июн 2019, 23:48 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1995
А что запрещает это исправить ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HAL кладёт имена файлов в прошивку
СообщениеДобавлено: 30 июн 2019, 00:27 
Старожил
Аватара пользователя

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 1430
Что исправить? Зачем исправить? Чем вам это мешает? При том что оптимизатор и так всё это выкидывает. Даже если бы не выкидывал, не вижу никакой проблемы вообще. Подумаешь, избыточный код - весь HAL такой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HAL кладёт имена файлов в прошивку
СообщениеДобавлено: 30 июн 2019, 16:16 
Старожил

Зарегистрирован: 10 апр 2013, 17:41
Сообщения: 345
Ну и в SPL такое было бы при использовании ассертов. Но при чем тут SPL и компилятор, вдребезги непонятно.

На всякий случай начинающим, как это используется:

Код:
void assert_failed(uint8_t* file, uint32_t line)
{
    printf("Assert: file %s on line %d\r\n", file, line);
}

_________________
Стиль: "G&P"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HAL кладёт имена файлов в прошивку
СообщениеДобавлено: 02 июл 2019, 03:12 
Заглядывает иногда

Зарегистрирован: 19 май 2015, 01:52
Сообщения: 71
Много раз в прошивках реальных коммерческих софтин находил названия файлов и даже пути.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HAL кладёт имена файлов в прошивку
СообщениеДобавлено: 02 июл 2019, 14:53 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1995
Конечно, если использовать __FILE__ (а не __MUDULE__ или __FUNCTION__) и будут полные пути.
Но полные специалисты не напрягаются на такие мелочи.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: cubot


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB