Oleg_IT 0 22 февраля, 2023 Опубликовано 22 февраля, 2023 (изменено) · Жалоба STM32Cube по своему порядку вызывает функции инициализации MX_..._Init();, но в некоторых случаях, например с I2S порядок имеет большое значение и каждый раз после перестройки проекта Куб делает всё по своему и приходится менять местами функции инициализации вручную. Есть способ закрепить нужный мне порядок? Модератор: внимательнее выбирайте раздел и используйте стандартный шрифт в сообщениях, кричащий шрифт использовать не стоит. Изменено 22 февраля, 2023 пользователем haker_fox Перенёс тему в соответствующий раздел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 26 22 февраля, 2023 Опубликовано 22 февраля, 2023 · Жалоба 58 minutes ago, Oleg_IT said: Есть способ закрепить нужный мне порядок? Есть самый очевидный способ - отказаться от косячного куба. Ибо сюрпризы еще будут, порой в самых неожиданных местах. Извините, не смог удержаться )) 1 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 22 февраля, 2023 Опубликовано 22 февраля, 2023 · Жалоба 5 hours ago, Oleg_IT said: Есть способ закрепить нужный мне порядок? Где то тут приводили очень элегантный способ - в пользвательских секциях кода до и после инициализации ставите #if 0 и #endif и дописываете нужные вам вызовы инициализации в правильном порядке после #endif Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tgruzd 11 22 февраля, 2023 Опубликовано 22 февраля, 2023 · Жалоба 7 hours ago, Oleg_IT said: Есть способ закрепить нужный мне порядок? да. используйте cubeMX однократно для генерации проекта. после этого вычищайте всю шелуху вида /*USER_CODE_BEGIN*/ /*USER_CODE_END*/ и далее пишите нормально. 1 hour ago, xvr said: в пользовательских секциях кода Почему какая-то программа решает, где в исходниках мне писать код, а где не писать, и, при этом, называет меня пользователем? Модератор: хоть и в завуалированном виде, но всё же считаю, что мат на форуме не допустим. Сообщение поправил. Думаю, что пункт правил 2.1.б освежить в памяти не помешает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 22 февраля, 2023 Опубликовано 22 февраля, 2023 · Жалоба 1 час назад, tgruzd сказал: Почему какая-то программа решает, где в исходниках мне писать код, а где не писать, и, при этом, называет меня пользователем? Если STM32Cube генерирует код с нуля, а вы используете этот код лишь единожды, модифицируя его под свои вкусы, то конфликт между его кодом и вашим никогда не возникнет. Проблема возникает лишь в случае, если вы произвели модификацию автокода на свой лад, а затем на тот же проект запустили STM32Cube вторично для того, чтобы он переделал свой код под изменившиеся параметры и/или добавленные интерфейсы. Очевидно, что в последнем случае STM32Cube вынужден отличать тот код, который он в праве заменять на новый, от кода, которой добавили вы. Именно для этой цели внутри кода выделена защищенная область для пользовательского кода между /*USER_CODE_BEGIN*/ и /*USER_CODE_END*/, код внутри которой STM32Cube обязан сохранить в неприкосновенности. Соответственно этому, добавленный вами код при повторном запуске STM32Cube (при повторной генерации автокода) никуда не пропадет, если вы напишете его в защищенной области. Но если вы разместите свой код в других областях автокода или произведете его модификацию, то при повторной генерации автокода STM32Cube ваши правки не сохранятся. Короче говоря, при повторной генерации автокода весь прежний код заменяется на новый, за исключением пользовательской области между комментами /*USER_CODE_BEGIN*/ и /*USER_CODE_END*/. Т.е. при этом STM32Cube не модифицирует ранее написанный им автокод, а пишет его заново (и потому не может сохранить правку автокода, совершенную пользователем). 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andrey190 2 23 февраля, 2023 Опубликовано 23 февраля, 2023 · Жалоба Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 26 23 февраля, 2023 Опубликовано 23 февраля, 2023 · Жалоба 20 hours ago, Xenia said: Если STM32Cube генерирует код с нуля Уверен, все тут прекрасно знают как работает куб и где он позволяет писать юзер код. Это - штатная работа куба. Но речь, как я понимаю, шла о другом - НЕ штатной работе куба и как это обойти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oleg_IT 0 26 февраля, 2023 Опубликовано 26 февраля, 2023 · Жалоба Большое спасибо за комментарии. On 2/22/2023 at 9:40 AM, Forger said: Есть самый очевидный способ - отказаться от косячного куба. Ибо сюрпризы еще будут, порой в самых неожиданных местах. Можно и нужно отказаться в релиз версии, а когда идёт отладка и пока есть необходимость перестраивать проект отказываться от Куба не стоит, много времени экономит. Вручную, с нуля делать код для USB, I2S и даже для SPI, когда есть готовое решение вообще не правильно. Делал я как то давно HID на AVR, не благодарное занятие. Может мне повезло или я не так много с ним работал, но сюрприз от Куба это единственный и то по не знанию, тем более есть решение от xvr и особенно от Andrey190. On 2/22/2023 at 2:30 PM, tgruzd said: да. используйте cubeMX однократно для генерации проекта. после этого вычищайте всю шелуху вида /*USER_CODE_BEGIN*/ /*USER_CODE_END*/ и далее пишите нормально. Может даже не вычищать шелуху, а сделать новый проект, без Куба, и перенести всё нужное из отлаженного проекта, с плагиатом из Drivers, ... . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 26 26 февраля, 2023 Опубликовано 26 февраля, 2023 · Жалоба 13 minutes ago, Oleg_IT said: Вручную, с нуля делать код для USB, I2S и даже для SPI, когда есть готовое решение вообще не правильно. Вы наверно удивитесь, но в мире существуют не только два известным вам решения: "магический" cube и "вручную" Оказывается существует сторонние платные и бесплатные библиотеки, вовсе не требующие вручную подымать USB и т.д., но без волшебного куба и его неожиданных костылей )) Кубом приходится пользоваться, когда вас включили в уже существуюший проект, построенный на кубе, или его надо доработать "малой кровью". Тогда да, нет смысла срочно соскакивать с куба, можно и перетерпеть )) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 26 февраля, 2023 Опубликовано 26 февраля, 2023 · Жалоба 4 часа назад, Oleg_IT сказал: Можно и нужно отказаться в релиз версии, а когда идёт отладка и пока есть необходимость перестраивать проект отказываться от Куба не стоит Т.е. - сперва всё написать, отладить, а потом выкинуть весь отлаженный код, переписать заново по-другому и сдать заказчику, то что получилось, неотлаженным??? Странные у вас методы "отладки"... 4 часа назад, Oleg_IT сказал: Вручную, с нуля делать код для USB, I2S и даже для SPI, когда есть готовое решение вообще не правильно. Что-ж там такого страшного в этих SPI/I2S, что без куба уже совсем невмоготу?? В двух конфигурационных регистрах уже совсем никак не разобраться самостоятельно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 45 27 февраля, 2023 Опубликовано 27 февраля, 2023 · Жалоба 10 hours ago, Oleg_IT said: Вручную, с нуля делать код для USB, I2S и даже для SPI, когда есть готовое решение вообще не правильно. А что мешает писать без Куба, но при необходимости подключать драйверы из HAL? Тогда и проблем с порядком инициализации вообще не будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 143 27 февраля, 2023 Опубликовано 27 февраля, 2023 · Жалоба 3 часа назад, tonyk_av сказал: А что мешает писать без Куба Отсутствие готовых примеров в интернете и куча примеров с кубом => "миллионы мух не могут ошибаться". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 26 27 февраля, 2023 Опубликовано 27 февраля, 2023 · Жалоба 37 minutes ago, Сергей Борщ said: с кубом => "миллионы мух не могут ошибаться" в точку 😄 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 45 27 февраля, 2023 Опубликовано 27 февраля, 2023 · Жалоба 43 minutes ago, Сергей Борщ said: Отсутствие готовых примеров в интернете Даже интересно стало, на что отсутствуют примеры программирования без Куба, но есть исключительно с ним? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 60 27 февраля, 2023 Опубликовано 27 февраля, 2023 · Жалоба Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться