Сообщение от dee098
За тем что нет смысла удалять и создовать динамический массив в каждом цикле. Статический намного проще. Тем болле что в новом коде ты удаляешь его не в том месте.
dee098 добавил 27-01-21 в 0:Jan p
Тоже самое могу сказать и про весь остальной код. Огромное клличество new и delete в generateSysconResponses и дочерних функциях.
dee098 добавил 27-01-21 в 0:Jan p
Мой статический код работает часами (я не тестировал его более 3 часов за раз), а ваш вылетает за десяток циклов.
|
Как мне объяснял один чел (который на с++ работает), правильно всегда объявлять переменные и задавать им нужный размер. Так же он сказал (да и я где то читал), что предпочтительнее писать переменные вот так byte *b, чем byte b[], и изначально им присваивать первый символ. Некоторые программисты на мк вообще переменные массивов изначально циклом заполняю пустыми значениями. По моему коду он сказал, что всё ок написано, только он не знает, как нужно накатать в генерации сискона преобразование на AES. А что не так с удалением msg ? Я же сперва выделил под него память, заполнил, потом в функции обработал, затем очистил его из памяти. Сейчас мой проект работает без зависаний и быстро. Воткнул в паралель на средний контакт пихи ещё один uart и снял полный лог (что там летает по данным).
Вот хекс файл лога с контакта
https://drive.google.com/file/d/1yBE...ew?usp=sharing
Вот поправленный проект
https://drive.google.com/file/d/1NsS...ew?usp=sharing
По логу компилятора места в мк занимает
RAM: 733 bytes
Flash: 5530 bytes