|
прерывания по фронту(edge sensitive) |
|
|
|
Oct 20 2012, 13:50
|
Местный
  
Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672

|
Прошу прощения за терминологию: русскую или забыл или не знал. Работаю с LPC1768. Пишу HAL- hardware abstraction layer (не знаю перевод). К своему ужасу обнаружил, что UART(перевод?) генерирует прерывания по фронту: если "Пустои передающий буфер", например, было замаскировано, то после снятия маски прерывание потеряно, даже если условие - буфер, по прежнему, пустой сохранилось. Сильно подозреваю, что то же ждет меня с другой переферией. Хочу услышать ваши советы. 1. Зачем Phillips так делает? В чем преимущества? Чем просто маски недостаточно? 2. Способы борьбы. Вдруг узнаю что-то, чего еще не знаю. Учтите, у меня за плечами более 30 лет опыта работы в СССР и США 3. Другой М3, например, Atmel SAM3... или что-то подобное. Предварительный обзор, сделаный до меня, рекомендавал NXP за лучший интерфейс с периферией. Кстати, на М3 мы переключились после провала использовать NIOS-II в среде ALTIUM TASKING. Их порт ни в какие ворота не лезит: все дырявое и корявое, хотя на бумаге все прекрасно...
Спасибо.
Сообщение отредактировал pitt - Oct 20 2012, 13:54
--------------------
|
|
|
|
|
 |
Ответов
|
Oct 21 2012, 13:32
|
Местный
  
Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672

|
Цитата(pitt @ Oct 20 2012, 09:50)  Прошу прощения за терминологию: русскую или забыл или не знал. Работаю с LPC1768. Пишу HAL- hardware abstraction layer (не знаю перевод). К своему ужасу обнаружил, что UART(перевод?) генерирует прерывания по фронту: если "Пустои передающий буфер", например, было замаскировано, то после снятия маски прерывание потеряно, даже если условие - буфер, по прежнему, пустой сохранилось. Сильно подозреваю, что то же ждет меня с другой переферией. Хочу услышать ваши советы. 1. Зачем Phillips так делает? В чем преимущества? Чем просто маски недостаточно? 2. Способы борьбы. Вдруг узнаю что-то, чего еще не знаю. Учтите, у меня за плечами более 30 лет опыта работы в СССР и США 3. Другой М3, например, Atmel SAM3... или что-то подобное. Предварительный обзор, сделаный до меня, рекомендавал NXP за лучший интерфейс с периферией. Кстати, на М3 мы переключились после провала использовать NIOS-II в среде ALTIUM TASKING. Их порт ни в какие ворота не лезит: все дырявое и корявое, хотя на бумаге все прекрасно...
Спасибо. Должен ли я с сожалением констатировать, что все три мои вопроса остались без ответа? Будет жаль. Кстати, вот более подробное описание проблемы http://electronix.ru/forum/index.php?showtopic=106139
Сообщение отредактировал pitt - Oct 21 2012, 16:15
--------------------
|
|
|
|
|
Oct 22 2012, 04:56
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(pitt @ Oct 21 2012, 19:32)  Должен ли я с сожалением констатировать, что все три мои вопроса остались без ответа? Будет жаль. По-моему - проблема выеденного яйца не стоит. Если при завершении передачи (нет больше данных для передачи) в ISR вы маскируете THRE, то потом, когда фоновая задача хочет записать новые даные для передачи, она делает следующее: 1. мьютекс/запрет прерываний. 2. проверка - THRE замаскировано(запрещено)? нет - переход к 5. 3. размаскируем THRE 4. заполняем TX fifo. 5. освобождение мьютекса/разрешение прерываний. Если при завершении передачи (нет больше данных для передачи) в ISR вы не маскируете THRE, а просто выходите из ISR (предварительно сбросив программный флаг "TX в процессе"), то потом, когда фоновая задача хочет записать новые даные для передачи, она делает следующее: 1. мьютекс/запрет прерываний. 2. проверяете флаг "TX в процессе". Если стоит - переход к 5. 3. уставливаем флаг "TX в процессе" 4. заполняем TX fifo. 5. освобождение мьютекса/разрешение прерываний.
|
|
|
|
|
Oct 22 2012, 07:57
|
Частый гость
 
Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687

|
Цитата(KnightIgor @ Oct 22 2012, 10:54)  NXP выпендрился и избрал особый путь в генерации прерываний от флагов периферии для своих Cortex. Из моего опыта я вижу, что по крайней мере тут 1:3 не в пользу NXP в сравнении с другими тремя распространенными Cortex-Mx. Дело в том, что NXP взял за основу UART 16650. Именно эта архитектура в точности повторена в контроллерах NXP, а, как известно, на этой архитектуре десятилетиями работали компьютеры. Так что оба подхода: "классический микроконтроллерный" и от NXP имеют право на жизнь и тут еще можно поспорить какой вариант более классический и распространенный.
|
|
|
|
Сообщений в этой теме
pitt прерывания по фронту(edge sensitive) Oct 20 2012, 13:50 _Артём_ Цитата(pitt @ Oct 20 2012, 16:50) К своем... Oct 20 2012, 14:37 pitt Меня UART НЕ интересует. Это просто удобный и поня... Oct 20 2012, 15:51  _Артём_ Цитата(pitt @ Oct 20 2012, 18:51) Мой пер... Oct 20 2012, 16:23   pitt Если речь идет о внешнем прерывании, то я двумя ру... Oct 20 2012, 16:41    ar__systems Цитата(pitt @ Oct 20 2012, 12:41) Если ма... Oct 20 2012, 18:47     pitt Цитата(ar__systems @ Oct 20 2012, 14:47) ... Oct 20 2012, 19:00   AHTOXA Цитата(_Артём_ @ Oct 20 2012, 22:23) Поче... Oct 20 2012, 18:46    _Артём_ Цитата(AHTOXA @ Oct 20 2012, 21:46) Наско... Oct 20 2012, 19:27     pitt Цитата(_Артём_ @ Oct 20 2012, 15:27) Неле... Oct 20 2012, 19:29      _Артём_ Цитата(pitt @ Oct 20 2012, 22:29) Особенн... Oct 20 2012, 20:45       pitt Цитата(_Артём_ @ Oct 20 2012, 16:45) Ну, ... Oct 20 2012, 20:53  Allregia Цитата(pitt @ Oct 20 2012, 17:51) Не знаю... Oct 24 2012, 06:05    KnightIgor Цитата(gladov @ Oct 22 2012, 09:57) Дело ... Oct 23 2012, 19:22  pitt Цитата(jcxz @ Oct 22 2012, 00:56)
http:/... Oct 22 2012, 23:50 KnightIgor Цитата(pitt @ Oct 20 2012, 15:50) Прошу п... Oct 21 2012, 18:29 _Артём_ Цитата(KnightIgor @ Oct 21 2012, 21:29) С... Oct 21 2012, 19:05 pitt Цитата(KnightIgor @ Oct 21 2012, 14:29) С... Oct 21 2012, 20:34  KnightIgor Цитата(pitt @ Oct 21 2012, 22:34) Поделит... Oct 21 2012, 21:55   pitt Цитата(KnightIgor @ Oct 21 2012, 17:55) П... Oct 21 2012, 22:28    _Артём_ Цитата(pitt @ Oct 22 2012, 01:28) Атмел з... Oct 21 2012, 23:03     pitt Цитата(_Артём_ @ Oct 21 2012, 19:03) Про ... Oct 21 2012, 23:16 IgorKossak Хватит оффтопа, давайте вернёмся к обсуждению темы... Oct 24 2012, 08:18
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|