kpv 12 13 августа Опубликовано 13 августа · Жалоба 1 hour ago, koluna said: 0x0800165e in exchTXEHandler () at ./src/libs/exchange/exchange.c:361 вот здесь собака порылась 1 hour ago, koluna said: Что значат строки <signal handler called> в данном случае прерывание 1 hour ago, koluna said: говорит о том, что что-то пошло не так? перетирается весь стек 1 hour ago, koluna said: А сейчас слишком много нового и непонятного... возьмите другой отладчик, где можно тыкать кнопочками - будет быстрее, так как там всё готовое. как разберётесь что к чему - вернётесь обратно к тому, где непонятно что и как делать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 22 13 августа Опубликовано 13 августа · Жалоба 5 hours ago, kpv said: RXNE это не только правильный приём, но и overrun error туда может проскочить, если разрешено. я из всего массива не уловил: советовали или нет. нужно сбрасывать(хотя бы сбрасывать ) вообще все возможные флаги при приеме. а это и FE и OVR и PE. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kpv 12 13 августа Опубликовано 13 августа · Жалоба 1 minute ago, firstvald said: я из всего массива не уловил мы только вначале пути. первый сезон примерно вторая серия Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 22 13 августа Опубликовано 13 августа · Жалоба просто когда учат процессорам то показывают работающий в симуляторе примерчик который в терминал передает какую нибудь фигню. реальный обмен приводит в приемник все что угодно и в момент подцепления разъема в приемнике встают практически все флаги. и с этим надо что то делать. (стреляй Глеб Егорыч) хотябы все сбрасывать. а! во FreeRtos при приеме если не успевал доставать принятый байт по причине того что использовался у одного таска приоритет реал тайм попадал в хард. когда не использовал реал - не попадал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kpv 12 13 августа Опубликовано 13 августа · Жалоба 29 minutes ago, firstvald said: и в момент подцепления разъема 1 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 13 августа Опубликовано 13 августа · Жалоба 1 час назад, firstvald сказал: я из всего массива не уловил: советовали или нет. нужно сбрасывать(хотя бы сбрасывать ) вообще все возможные флаги при приеме. а это и FE и OVR и PE. Как правило в любом МК эти флаги сбрасываются обычным чтением регистра принятых данных. Никакие другие сбросы для них не нужны. 52 минуты назад, firstvald сказал: в момент подцепления разъема в приемнике встают практически все флаги. и с этим надо что то делать. Просто прочитать принятое слово и всё. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kpv 12 13 августа Опубликовано 13 августа · Жалоба 20 minutes ago, jcxz said: Никакие другие сбросы для них не нужны. обычно да, но жизнь несколько сложнее 🙂 если мы считали данные, а бит продолжает стоять? 23 minutes ago, jcxz said: Просто прочитать принятое слово и всё. прочитать лучше даташит Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 13 августа Опубликовано 13 августа · Жалоба 37 минут назад, kpv сказал: если мы считали данные, а бит продолжает стоять? значит пришёл новый символ, для которого и установился заново этот флаг. 37 минут назад, kpv сказал: прочитать лучше даташит А там наверняка написано, что флаги хранятся вместе с символами, на которых они установились. Даже в тех МК, в которых есть FIFO в UART глубиной более одного слова, все эти флаги - это просто дополнительные биты, хранимые вместе со словами принятых данных. Для каждого слова данных - свой комплект флагов. А флаги отображаемые в регистре флагов - это просто содержимое флагов самого верхнего слова FIFO. PS: Кстати - в нормальных, продуманных МК, можно считывать верхнее слово из FIFO сразу с флагами состояния. С одновременным удалением его из FIFO. Одним словом, одной операцией. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 13 августа Опубликовано 13 августа · Жалоба 3 hours ago, koluna said: if(txCnt == txSize) Вот ещё раз: не делайте так. Я не понимаю, почему у вас txSize портится, но если бы вы написали if (txCnt >= txSize) всего этого топика не было бы. 2 hours ago, firstvald said: нужно сбрасывать(хотя бы сбрасывать ) вообще все возможные флаги при приеме. а это и FE и OVR и PE По-хорошему - да. Но (только что освежил в памяти соотв. картинку из RefManual) FrameError / ParityError / NoiseError дёрнут прерывание, только если они явно разрешены. А OverrunError без ReceiveNotEmpty не бывает, как я понимаю - его и имеющийся код сбросит. Ну и в любом случае, это приведёт к зависанию в прерывании, а здесь и сейчас у нас bus fault. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 22 13 августа Опубликовано 13 августа · Жалоба 1 hour ago, jcxz said: Как правило в любом МК эти флаги сбрасываются обычным чтением регистра принятых данных. Никакие другие сбросы для них не нужны. Просто прочитать принятое слово и всё. нет 27 minutes ago, esaulenka said: Вот ещё раз: не делайте так. Я не понимаю, почему у вас txSize портится, но если бы вы написали if (txCnt >= txSize) всего этого топика не было бы. По-хорошему - да. Но (только что освежил в памяти соотв. картинку из RefManual) FrameError / ParityError / NoiseError дёрнут прерывание, только если они явно разрешены. А OverrunError без ReceiveNotEmpty не бывает, как я понимаю - его и имеющийся код сбросит. Ну и в любом случае, это приведёт к зависанию в прерывании, а здесь и сейчас у нас bus fault. а вот это если все хорошо и все правильно настроено. и то я тоже не ждал подляны но FE у меня подвесил прибор который ушел в релиз. хотя вроде бы лишнее не было включено. тонкий момент еще может быть когда мы еще только все настраиваем в момент подачи питания и в этот момент на вход уарта начинает валиться все что происходит при включении питания и может уже снаружи. и несброшенные флаги влегкую оставляют прибор без уарта. а так услышал краем уха что там какие то таски были и еще обрезки от чего то. я не просто так сказал что в фриртосе ловил хард по уарту. что там за обрезки топик использует? ымбеддеры на привале - роскошны. 42 minutes ago, jcxz said: значит пришёл новый символ, для которого и установился заново этот флаг. А там наверняка написано, что флаги хранятся вместе с символами, на которых они установились. Даже в тех МК, в которых есть FIFO в UART глубиной более одного слова, все эти флаги - это просто дополнительные биты, хранимые вместе со словами принятых данных. Для каждого слова данных - свой комплект флагов. А флаги отображаемые в регистре флагов - это просто содержимое флагов самого верхнего слова FIFO. PS: Кстати - в нормальных, продуманных МК, можно считывать верхнее слово из FIFO сразу с флагами состояния. С одновременным удалением его из FIFO. Одним словом, одной операцией. лет 50 мы будем сидеть на 103 процессоре. а после прорыва и освоением его к 2038 году отечественной промышленностью и все 100. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 13 августа Опубликовано 13 августа · Жалоба 18 минут назад, firstvald сказал: нет Будут какие-то аргументы? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 178 13 августа Опубликовано 13 августа · Жалоба 9 часов назад, jcxz сказал: Не обязательно. Только если соответствующий бит валидности установлен. Посмотрите - он установлен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 22 13 августа Опубликовано 13 августа · Жалоба 3 minutes ago, jcxz said: Будут какие-то аргументы? см мануал Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 13 августа Опубликовано 13 августа · Жалоба 5 минут назад, firstvald сказал: см мануал В мануале написано то, что я сказал. Это вам надо "см. мануал". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 60 13 августа Опубликовано 13 августа · Жалоба On 8/13/2024 at 9:25 PM, jcxz said: В мануале написано то, что я сказал. Не совсем. Сначала статус регистр надо прочитать, а потом регистр данных. Тогда сбросятся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться