реклама на сайте
подробности

 
 
> STM32F407: Ethernet, HAL + Lwip
k000858
сообщение Jan 12 2017, 07:11
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 319
Регистрация: 31-01-12
Пользователь №: 69 978



Всем привет.

Кто изучал драйвер Ethernet'а, идущий с HAL библиотеками (вариант для FreeRTOS: ETHERNET прерывание релизит семафору, которая парсится в отдельной realtime задаче ОС)? Что будет при переполнении указанного количества приёмных буферов? Ошибка DMA обработается, но не будет ли DMA записывать данные дальше (портить память) или это исключено т.к. указывается в размер буферов в настройках DMA?

Имею следующую ситуацию: устройство с Ethernet в параллельной задаче (с меньшим приоритетом чем Ethernet) копирует данные (memcpy функцией) с внутренней FLASH контроллера. При шторме устройства Ethernet трафиком, в какой то раз данные копируются неправильно (временно нарушается адресация флэш - откуда копировать, но до конца процесса восстанавливается), в результате часть данных получается битыми.

Пока подозрения на ошибку в Ethernet драйверах либо LwIP стеке (v1.4.1).

То есть многократное срабатывание прерывания Ethernet + работа задачи по сохранению принятого по Ethernet пакету приводит к сбою работы memcpy

Нехватка памяти для RTOS и его задач контролируется соответствующими отладочными функция FreeRTOS

Может у кого то будут умные мысли, как можно сузить круг поиска бага?
Как еще подиагностировать. Повторить ситуацию непросто, получается ни каждый раз.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SasaVitebsk
сообщение Jan 20 2017, 12:22
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Уважаемый Forger. Мы вас уже поняли. Надо проект обязательно переписать на C++. Обязательно использовать синглтоны. И, конечно, тогда никаких ошибок не будет. Потому что у программистов пишущих на С++ не бывает ошибок. Особенно у программистов пишущих на С++ и включающих в проект FreeRTOS и LwIP на Си. Понятно, что надо использовать статическое выделение памяти, так как динамическое это смерть.
Хотелось бы спросить, а как быть с LwIP? Вы там тоже статическое выделение используете?
Понятно что надо использовать стороннюю библиотеку.. Лучше брать PeriphLib или переключиться на HAL...
Мы услышали. Спасибо.
Не понятно, с кем вы здесь спорите? Со мной? Так у меня нет таких ошибок. По крайней мере на данном этапе. Надеюсь это понятно?
А у топикстартера есть. И я пытаюсь ему помочь.
Я не знаю в каком коллективе вы работаете, но иногда проект переписать нельзя. И этому может быть сто причин, как правило, все они лежат вне программирования... Например сроки, финансирование, малая вероятность того, что в новом проекте не будет других ошибок, или как минимум, отсутствие веры в это руководства. И так далее...
Я просто не хочу вступать в полемику с вами. Я не всегда писал проекты по 2 года. Например был проект с экспортным автобусом маз. Дисплей 480x272 + светодиодные столбики + стрелки + 2 CAN и два проца в жёсткой связке LPC2478 + stm32f103 был написан за 2 месяца. Потому что законченное решение. А крупный проект - там проблема в том, что сотни параметров исходных, и в зависимости от этого работа прибора полностью меняется. Там объективно много работы. А писал я его в одиночку, попутно занимаясь другой работой.
Может не стоит хаить человека, не зная реальной ситуации?
Асмом я не пользуюсь. На плюсах пишу, но пока незначительный объём.
Но мы сейчас не обо мне говорим. Надеюсь это понятно?
Я прекрасно знаю о контроле стека и прочей ерунде... У меня, на лету определяется вылет если он происходит, диагностируется задаче и место откуда это происходит. Всё это запоминается происходит рестарт проца и информация записывается в виде ошибки с точным указанием времени.
Поэтому... Давайте по делу. Есть что сказать топикстартеру, пожалуйста скажите. А тему про грамотный переход из С в С++ начните с чистого топика и поделитесь своим опытом построения. Многие с удовольствием это почитают. И я в том числе..
Go to the top of the page
 
+Quote Post
pitt
сообщение Jan 20 2017, 13:22
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Цитата(SasaVitebsk @ Jan 20 2017, 07:22) *
Уважаемый Forger. Мы вас уже поняли. Надо проект обязательно переписать на C++. Обязательно использовать синглтоны. И, конечно, тогда никаких ошибок не будет. Потому что у программистов пишущих на С++ не бывает ошибок. Особенно у программистов пишущих на С++ и включающих в проект FreeRTOS и LwIP на Си. Понятно, что надо использовать статическое выделение памяти, так как динамическое это смерть.
Хотелось бы спросить...

Что можно спрашивать у того, у кого есть единственный готовый ответ на все случаи жизни?! Вопрос, конечно, риторический, потому что все идут не в ногу, а по сему нас посылают в Ж, хотя весьма почтительно...


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
Forger
сообщение Jan 20 2017, 17:38
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Навеяло (ничего личного) ...



--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
pitt
сообщение Jan 20 2017, 22:11
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Цитата(Forger @ Jan 20 2017, 12:38) *
Навеяло (ничего личного) ...


По-видимому, музыкой. Попробуйте сменить репертуар, хотя, как известно, С++ решает все проблемы на все случаи жизни.


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
Forger
сообщение Jan 20 2017, 22:19
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(pitt @ Jan 21 2017, 01:11) *
По-видимому, музыкой. Попробуйте сменить репертуар...

Не стоит всерьез воспринимать эту картинку и на свой счет, это - шутка, не более того ))

Нет ничего постыдно в неумении пользоваться новыми инструментами ))
Я вот мало работал на C#, плохо его знаю, но не стыжусь этого, потихоньку изучаю ...

Вместо топора все же удобнее бриться бритвой, а, если существует возможность, то и электрической.
Но ведь всегда найдутся те, кто боится подходить к розетке и потому будут отпугивать от нее остальных, придумывая порой нелепые, даже где-то религиозные доводы )))

Сильно сомневаюсь, что и вам придется кодить на голом С до глубокой старости (долбить "молотком по стамеске"), на это способны лишь избранные (фанатики)!
Придет время и ваше мнение изменится, т.к. к тому времени скорее всего появятся новые, более совершенные и более удобные инструменты.
Скажем, Keil станет поддерживать С# ...


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- k000858   STM32F407: Ethernet, HAL + Lwip   Jan 12 2017, 07:11
- - pitt   Цитата(k000858 @ Jan 12 2017, 02:11) Пока...   Jan 12 2017, 15:38
- - Мур   Сам долго мучился с HAL, пока не скачал книгу Mas...   Jan 12 2017, 15:51
- - k000858   спасибо за советы. определенный смысл в них конечн...   Jan 13 2017, 03:43
|- - pitt   Цитата(k000858 @ Jan 12 2017, 22:43) спас...   Jan 13 2017, 13:13
- - SasaVitebsk   Насколько вы описали проблему, мне кажется, что пр...   Jan 13 2017, 18:12
|- - k000858   Цитата(SasaVitebsk @ Jan 13 2017, 21:12) ...   Jan 16 2017, 04:44
|- - Forger   Цитата(k000858 @ Jan 16 2017, 07:44) тако...   Jan 16 2017, 14:24
||- - SasaVitebsk   Цитата(Forger @ Jan 16 2017, 17:24) Лично...   Jan 16 2017, 21:16
||- - Aner   QUOTE (Forger @ Jan 16 2017, 18:24) Курим...   Jan 16 2017, 21:51
||- - Сергей Борщ   QUOTE (Aner @ Jan 16 2017, 23:51) С++ и е...   Jan 17 2017, 06:50
||- - SasaVitebsk   Цитата(Сергей Борщ @ Jan 17 2017, 09:50) ...   Jan 17 2017, 07:19
|||- - Forger   Синглтон я указал как самый популярный способ избе...   Jan 17 2017, 08:29
|||- - Сергей Борщ   QUOTE (SasaVitebsk @ Jan 17 2017, 09:19) ...   Jan 17 2017, 12:12
|||- - Forger   Цитата(Сергей Борщ @ Jan 17 2017, 15:12) ...   Jan 17 2017, 14:32
|||- - SasaVitebsk   Цитата(Forger @ Jan 17 2017, 17:32) Конеч...   Jan 17 2017, 15:42
||||- - Forger   Цитата(SasaVitebsk @ Jan 17 2017, 18:42) ...   Jan 17 2017, 15:58
|||- - Сергей Борщ   QUOTE (Forger @ Jan 17 2017, 16:32) Сингл...   Jan 18 2017, 09:18
|||- - Forger   Цитата(Сергей Борщ @ Jan 18 2017, 12:18) ...   Jan 18 2017, 09:48
||- - pitt   Цитата(Сергей Борщ @ Jan 17 2017, 01:50) ...   Jan 17 2017, 14:18
|- - pitt   Цитата(k000858 @ Jan 15 2017, 23:44) тако...   Jan 16 2017, 16:03
- - SasaVitebsk   В зависимости от текста... Как правило непредсказу...   Jan 16 2017, 14:22
- - SasaVitebsk   Стиль написания, конструирование программы и язык ...   Jan 17 2017, 22:21
|- - Forger   Цитата(SasaVitebsk @ Jan 18 2017, 01:21) ...   Jan 17 2017, 23:00
|- - SasaVitebsk   Цитата(Forger @ Jan 18 2017, 02:00) По ст...   Jan 19 2017, 12:47
|- - scifi   Цитата(SasaVitebsk @ Jan 19 2017, 15:47) ...   Jan 19 2017, 12:59
|- - Forger   Цитата(SasaVitebsk @ Jan 19 2017, 15:47) ...   Jan 19 2017, 13:04
- - SasaVitebsk   Посмотрите с чего начиналась тема. Начали гнать на...   Jan 17 2017, 23:48
|- - Forger   Цитата(SasaVitebsk @ Jan 18 2017, 02:48) ...   Jan 18 2017, 00:13
|- - pitt   Цитата(Forger @ Jan 17 2017, 19:13) На С+...   Jan 18 2017, 13:43
|- - Forger   Цитата(pitt @ Jan 18 2017, 16:43) Вообще,...   Jan 18 2017, 19:31
|- - pitt   Цитата(Forger @ Jan 18 2017, 14:31) На са...   Jan 19 2017, 04:35
|- - Forger   Цитата(pitt @ Jan 19 2017, 07:35) Блажен,...   Jan 19 2017, 06:52
|- - pitt   Цитата(Forger @ Jan 19 2017, 01:52) А дру...   Jan 19 2017, 13:28
|- - Forger   Классика жанра: вопрос -> холивар -> срач -...   Jan 19 2017, 13:34
- - SasaVitebsk   На счёт грамотного проектирования - ктож с вами сп...   Jan 18 2017, 08:32
- - k000858   не соглашусь темы подобного рода создаю в части с...   Jan 19 2017, 16:31
|- - Forger   Цитата(k000858 @ Jan 19 2017, 19:24) не с...   Jan 19 2017, 16:34
|- - SasaVitebsk   Цитата(k000858 @ Jan 19 2017, 19:31) проб...   Jan 19 2017, 20:19
|- - k000858   Цитата(SasaVitebsk @ Jan 19 2017, 23:19) ...   Jan 20 2017, 05:54
|- - Forger   Цитата(k000858 @ Jan 20 2017, 08:54) В пр...   Jan 20 2017, 06:00
- - SasaVitebsk   Ну в принципе, здесь возможны 4 ошибки. 1. класси...   Jan 20 2017, 08:08
|- - Forger   Если проектировать код похожим образом (на C++ без...   Jan 20 2017, 08:20
|- - pitt   Цитата(Forger @ Jan 20 2017, 17:19) Не ст...   Jan 21 2017, 04:19
- - k000858   все оказалось проще: в одной задаче действительно ...   Jan 23 2017, 07:09


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th August 2025 - 21:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01466 секунд с 7
ELECTRONIX ©2004-2016