|
Исходники UART with PDC для Atmel ARM, Состряпал от нифиг делать :) |
|
|
|
Aug 10 2005, 13:56
|
Частый гость
 
Группа: Свой
Сообщений: 82
Регистрация: 15-03-05
Пользователь №: 3 361

|
Кому нужны готовые, либо как примеры работы с UART через PDC (т.е. ПДП) смело в юз. Помучился с ними пару дней. Работает уже пару недель. Без ошибок. Приемник работает посимвольно, и приемник и передатчик работают через прерывания, у каждого свой кольцевой буфер. Функции передачи не ждут, если данные помещаются в кольцевой буфер. Если надо ждать конца передачи - есть фунция. Поддерживается работа в многопоточной среде. Можно легко интегрировать в операционную систему (если переписать функции работы с сигналами). Кристалл у меня AT91SAM7S64 и AT91RM9200, но, думаю, любой Atmel подойдет. В общем, кому интересно, смело смотрим. Public domain. О как! Тока запостил, сразу ошибку нашел! Исправил. Как расценить сей шаг всевышнего даже не знаю, но что не случается, все к лучшему
|
|
|
|
|
 |
Ответов
|
Dec 21 2007, 08:43
|
Частый гость
 
Группа: Свой
Сообщений: 82
Регистрация: 15-03-05
Пользователь №: 3 361

|
Цитата(vet @ Dec 21 2007, 11:58)  а что за беда от выключения PDC? ну выключили, переставили буферы, снова включили - перенос данных продолжился с того же места. у меня PDC обычно включен в обе стороны, активны прерывания AT91C_US_RXBUFF | AT91C_US_TXBUFE | AT91C_US_TIMEOUT. Копирования массивов нет, кольцевые буферы заполняются/разгребаются непосредственно функциями putchar/getchar, которые, впрочем, тоже приостанавливают PDC на десяток-другой машинных команд, проблем от этого не испытывал. Допустим PDC выключен. В этот момент приходит новый символ. Устанавливается RXRDY, но так как он замаскирован - прерывания не происходит. Закончили работу с буферами, включили PDC. Скорее всего Вы правы - символ, который уже принят, уйдет в буфер. Это было бы логично. Надо конечно проверить для верности. Я признаю, что мой драйвер чрезмерно усложнен из-за того что не выключает PDC. В этом нет смысла, поэтому лучше его использовать только в качестве обучающего (ну там все-таки есть некоторые трюки).
|
|
|
|
Сообщений в этой теме
Andrey Sudnov Исходники UART with PDC для Atmel ARM Aug 10 2005, 13:56 xoms Ну уже можно скачивать или подождать. Aug 10 2005, 15:24 Andrey Sudnov Цитата(xoms @ Aug 10 2005, 20:24)Ну уже можно... Aug 10 2005, 17:44  RRRR Для Linux драйвер с использованием PDC (AT91RM9200... Aug 11 2005, 14:56 bloodden Полезная вещь. Сенкс. Mar 3 2007, 20:04 ivstech Круто, особенно примитивы синхронизации понравилис... Mar 14 2007, 09:58 Andrey Sudnov Глянул на исходники PDC от Linux (древние, правда)... Dec 20 2007, 07:24 aaarrr Цитата(Andrey Sudnov @ Dec 20 2007, 10:24... Dec 20 2007, 12:57  Andrey Sudnov Цитата(aaarrr @ Dec 20 2007, 17:57) А ка... Dec 20 2007, 18:23   aaarrr Цитата(Andrey Sudnov @ Dec 20 2007, 21:23... Dec 20 2007, 18:35    Andrey Sudnov Цитата(aaarrr @ Dec 20 2007, 23:35) Никак... Dec 20 2007, 18:49     aaarrr Цитата(Andrey Sudnov @ Dec 20 2007, 21:49... Dec 20 2007, 18:57      Andrey Sudnov Цитата(aaarrr @ Dec 20 2007, 23:57) Я не ... Dec 20 2007, 19:16 aaarrr Цитата(Andrey Sudnov @ Dec 20 2007, 22:16... Dec 20 2007, 19:28 Andrey Sudnov Цитата(aaarrr @ Dec 21 2007, 00:28) и при... Dec 20 2007, 20:31 Dron_Gus Если Вы не против, подкину еще одну тему для обсуж... Dec 20 2007, 19:51 aaarrr Цитата(Dron_Gus @ Dec 20 2007, 22:51) Есл... Dec 20 2007, 22:03  Andrey Sudnov Цитата(aaarrr @ Dec 21 2007, 03:03) ИМХО,... Dec 20 2007, 22:53 Dron_Gus 2 Andrey Sudnov. Да уж алгоритм не тривиален. Пауз... Dec 20 2007, 22:55 aaarrr Цитата(Andrey Sudnov @ Dec 21 2007, 01:53... Dec 21 2007, 00:36 Andrey Sudnov Цитата(aaarrr @ Dec 21 2007, 05:36) Итак:... Dec 21 2007, 05:06  Andrey_Sudnov Взрыв из прошлого
Кому интересен subj, у мну есть... Dec 7 2015, 04:57 MrAlex Можно вообще не передергивать контроллер и работат... Dec 7 2015, 16:26 Andrey_Sudnov Согласен насчет того, что можно принимать через од... Dec 7 2015, 17:28 MrAlex "Правда в том, что никакой ложки нет."
а... Dec 8 2015, 08:31 Andrey_Sudnov Цитата(MrAlex @ Dec 8 2015, 13:31) ... Dec 8 2015, 14:34
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|