Size: a a a

2020 September 20

Х

Х in Embedded Group
Ком 123
Если ты делаешь что-то на один раз - ты плохо спарсил алиэкспресс=)
Не согласен.
источник

AK

Aleksandr Kondratev in Embedded Group
Всем привет.
Есть ли тут пытливые уме готовые помочь одному проекту, не бесплатно, но и не за много.
Задача, доведение прошивки до ума для МК на 8266 и в будущем портирования на esp32.
Прошивка написана с использованием RTOS и родного сдк.
Кто может помочь, напишите в ЛС.
источник

D

Dr Zlo in Embedded Group
собственно он там используется как аналог try - catch из большого брата
источник

КП

Крылатый Пегас... in Embedded Group
Dr Zlo
есть один случай в котором goto не то что не плох, а даже активно используется, goto error; в больших функциях
Плохая практика иметь большие фунции, что в экран не влезают
источник

К1

Ком 123 in Embedded Group
Dr Zlo
есть один случай в котором goto не то что не плох, а даже активно используется, goto error; в больших функциях
дичь, которая разруливается ассертами и возвращением кода ошибки в стиле if((result = foo()) != OK) return result;
источник

E

Evgen in Embedded Group
@Dr_Zlo13 Вот ацп но он на 2 канала
источник

D

Dr Zlo in Embedded Group
Ком 123
дичь, которая разруливается ассертами и возвращением кода ошибки в стиле if((result = foo()) != OK) return result;
ты забыл перед каждым ретурном деинициализировать кучу периферии или пачку блоков памяти занулить/освободить
источник

D

Dr Zlo in Embedded Group
Evgen
@Dr_Zlo13 Вот ацп но он на 2 канала
ну и нормально, что не так?
источник

D

Dr Zlo in Embedded Group
Крылатый Пегас
Плохая практика иметь большие фунции, что в экран не влезают
свитч-обработчик протокола какойнибудь особенно удобно разбивать на пачку функций, ага
источник

К1

Ком 123 in Embedded Group
Dr Zlo
ты забыл перед каждым ретурном деинициализировать кучу периферии или пачку блоков памяти занулить/освободить
Это должно делаться сразу после использования, либо выделяться на стеке и йух с ним после возврата.
источник

E

Evgen in Embedded Group
Dr Zlo
ну и нормально, что не так?
да не)
все же честный, точнее 500 на канал приходится ,если 2 использовать)
источник

D

Dr Zlo in Embedded Group
Ком 123
Это должно делаться сразу после использования, либо выделяться на стеке и йух с ним после возврата.
так до использования не дошло дело
источник

D

Dr Zlo in Embedded Group
и на стеке не всегда возможно выделить
источник

К1

Ком 123 in Embedded Group
Dr Zlo
так до использования не дошло дело
Так и инициализировать тогда не надо
источник

К1

Ком 123 in Embedded Group
Dr Zlo
и на стеке не всегда возможно выделить
Выделять - пользовать - освобождать - занулять указатели. С периферией ещё легче, ибо она на ходу зачастую перенастраивается, и, пока к ней не обратишься - о себе и не напомнит.
источник

D

Dr Zlo in Embedded Group
Ком 123
Так и инициализировать тогда не надо
а без инициализации не получится узнать возможно ли использование, например "открыть файл, выделить место под библиотеку, прочитать файл, загрузить библиотеку, выполнить старт библиотеки"
источник

D

Dr Zlo in Embedded Group
Ком 123
Выделять - пользовать - освобождать - занулять указатели. С периферией ещё легче, ибо она на ходу зачастую перенастраивается, и, пока к ней не обратишься - о себе и не напомнит.
особенно удобно когда это библиотека, а функция - её инициализация
источник

D

Dr Zlo in Embedded Group
про goto кстати хорошо описано тут: https://www.kernel.org/doc/html/v4.18/process/coding-style.html пункт 7
источник

КП

Крылатый Пегас... in Embedded Group
Dr Zlo
свитч-обработчик протокола какойнибудь особенно удобно разбивать на пачку функций, ага
Визитор можно залепить) только придётся плюсы юзать.
источник

К1

Ком 123 in Embedded Group
Dr Zlo
а без инициализации не получится узнать возможно ли использование, например "открыть файл, выделить место под библиотеку, прочитать файл, загрузить библиотеку, выполнить старт библиотеки"
Пример можно? Я пока не представляю сценария, где нельзя сделать return по сравнению с кодом возврата и не париться о куче/периферии
источник