kpv 9 5 часов назад Опубликовано 5 часов назад · Жалоба 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 23 5 часов назад Опубликовано 5 часов назад · Жалоба 5 hours ago, kpv said: RXNE это не только правильный приём, но и overrun error туда может проскочить, если разрешено. я из всего массива не уловил: советовали или нет. нужно сбрасывать(хотя бы сбрасывать ) вообще все возможные флаги при приеме. а это и FE и OVR и PE. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kpv 9 5 часов назад Опубликовано 5 часов назад · Жалоба 1 minute ago, firstvald said: я из всего массива не уловил мы только вначале пути. первый сезон примерно вторая серия Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 23 4 часа назад Опубликовано 4 часа назад · Жалоба просто когда учат процессорам то показывают работающий в симуляторе примерчик который в терминал передает какую нибудь фигню. реальный обмен приводит в приемник все что угодно и в момент подцепления разъема в приемнике встают практически все флаги. и с этим надо что то делать. (стреляй Глеб Егорыч) хотябы все сбрасывать. а! во FreeRtos при приеме если не успевал доставать принятый байт по причине того что использовался у одного таска приоритет реал тайм попадал в хард. когда не использовал реал - не попадал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kpv 9 4 часа назад Опубликовано 4 часа назад · Жалоба 29 minutes ago, firstvald said: и в момент подцепления разъема 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 224 4 часа назад Опубликовано 4 часа назад · Жалоба 1 час назад, firstvald сказал: я из всего массива не уловил: советовали или нет. нужно сбрасывать(хотя бы сбрасывать ) вообще все возможные флаги при приеме. а это и FE и OVR и PE. Как правило в любом МК эти флаги сбрасываются обычным чтением регистра принятых данных. Никакие другие сбросы для них не нужны. 52 минуты назад, firstvald сказал: в момент подцепления разъема в приемнике встают практически все флаги. и с этим надо что то делать. Просто прочитать принятое слово и всё. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kpv 9 3 часа назад Опубликовано 3 часа назад · Жалоба 20 minutes ago, jcxz said: Никакие другие сбросы для них не нужны. обычно да, но жизнь несколько сложнее 🙂 если мы считали данные, а бит продолжает стоять? 23 minutes ago, jcxz said: Просто прочитать принятое слово и всё. прочитать лучше даташит Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 224 3 часа назад Опубликовано 3 часа назад · Жалоба 37 минут назад, kpv сказал: если мы считали данные, а бит продолжает стоять? значит пришёл новый символ, для которого и установился заново этот флаг. 37 минут назад, kpv сказал: прочитать лучше даташит А там наверняка написано, что флаги хранятся вместе с символами, на которых они установились. Даже в тех МК, в которых есть FIFO в UART глубиной более одного слова, все эти флаги - это просто дополнительные биты, хранимые вместе со словами принятых данных. Для каждого слова данных - свой комплект флагов. А флаги отображаемые в регистре флагов - это просто содержимое флагов самого верхнего слова FIFO. PS: Кстати - в нормальных, продуманных МК, можно считывать верхнее слово из FIFO сразу с флагами состояния. С одновременным удалением его из FIFO. Одним словом, одной операцией. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 3 часа назад Опубликовано 3 часа назад · Жалоба 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 23 2 часа назад Опубликовано 2 часа назад · Жалоба 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 224 2 часа назад Опубликовано 2 часа назад · Жалоба 18 минут назад, firstvald сказал: нет Будут какие-то аргументы? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 164 2 часа назад Опубликовано 2 часа назад · Жалоба 9 часов назад, jcxz сказал: Не обязательно. Только если соответствующий бит валидности установлен. Посмотрите - он установлен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 23 2 часа назад Опубликовано 2 часа назад · Жалоба 3 minutes ago, jcxz said: Будут какие-то аргументы? см мануал Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 224 2 часа назад Опубликовано 2 часа назад · Жалоба 5 минут назад, firstvald сказал: см мануал В мануале написано то, что я сказал. Это вам надо "см. мануал". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 59 1 час назад Опубликовано 1 час назад · Жалоба On 8/13/2024 at 9:25 PM, jcxz said: В мануале написано то, что я сказал. Не совсем. Сначала статус регистр надо прочитать, а потом регистр данных. Тогда сбросятся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться