Easyelectronics.ru

Электроника для всех
Текущее время: 19 окт 2019, 22:30

Часовой пояс: 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
Сообщения: 3646
Да ну? :) Фига се. "Большой брат следит за тобой". Если это действительно правда и вы ничего не перепутали, то тогда раскрыт еще один секрет дикой тормознутости и лишнего размера кода, генерированного ХАЛом :)))


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

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


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

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

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


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

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3646
Интересный эффект. Когда я писал с 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
Сообщения: 1013
del


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

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

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


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

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 1013
Всё гораздо проще. Смотрим код
Код:
  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
Сообщения: 5693
Ага,ага. А прикинь когда в IDA копаешь.
И сразу видно на чем говнюк ляпал, а плюс применить сигнатуры так все шЫкарно укладывается.
жЫрный минус только в том что приходится вляпаться в калокубовское дерьмо, хоть и временно но блевать тянет...


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

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


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

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


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

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


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

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


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

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


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

Зарегистрирован: 10 апр 2013, 17:41
Сообщения: 331
Ну и в 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
Сообщения: 61
Много раз в прошивках реальных коммерческих софтин находил названия файлов и даже пути.


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

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


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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

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