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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Bubble в UART LPC2148
Сергей Борщ
сообщение Sep 25 2007, 19:16
Сообщение #16


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(3m-soft @ Sep 25 2007, 18:40) *
P.S. Кстати почему никто не думает что это может быть проблема компилятора или компиляции.
По следующим причинам:
1) До вас этим компилятором пользовалась туева хуча народа (в том числе и здесь на форуме) и никто таких глюков не обнаруживал.
2) Компилятор про UART знать не знает, для него это обычные регистры.
3) В 99.9% "ошибки" компилятора оказывались ошибками писателя программы.
4) Если вы покажете в листинге место, где компилятор ошибся - будем обсуждать. Пока видно, что в листинг вы не заглядывали.

Можно телепатически сделать следующие предположения:
1) Мало выделили стека. Во время прерываний стек наползает на данные со всеми вытекающими.
2) Если у вас есть кольцевые буфера - указатель на голову обгоняет указатель на хвост (или наоборот) с вытекающим выводом всего буфера.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
3m-soft
сообщение Sep 26 2007, 11:38
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 24-08-07
Пользователь №: 30 026



Осенило меня совсем отключить MAM, а не как прежде подбирать тайминги и всё заработало. Даже 4% ошибка в битрейте не мешает. Только нафиг оно мне нужно без MAM работать. Теперь опять в тупике.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 26 2007, 11:47
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(3m-soft @ Sep 26 2007, 14:38) *
Теперь опять в тупике.

Банально этим все тормознули и оно где-то разминулось и "заработало". Поллагаю, что подобного эффекта можно попробовать достичь оставив MAM, но сбросив в пару раз частоту процессора.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Alechek
сообщение Sep 26 2007, 12:31
Сообщение #19


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

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(3m-soft @ Sep 25 2007, 21:40) *
Я конечно понимаю, что рассказываю фантастические вещи, но во время перенастройки PLL (а это не часто бывает) я конечно отключаю UART вплоть до того, что питание от UART отрубаю, но когда включаю потом обратно то и возникает зависание

Не очень понятно, зачем перенастраивать PLL.. Сменить частоту ядра (CCLK)? Я меняю. Только после этого заново инициализирую UART, так как тактирование оного осуществляется от PCLK которое <= CCLK. Естественно, одному NXP известно, что там с UART происходит при смене частоты тактирования, и как она меняется
Go to the top of the page
 
+Quote Post
Zdrav
сообщение Sep 28 2007, 17:00
Сообщение #20





Группа: Новичок
Сообщений: 2
Регистрация: 5-04-05
Пользователь №: 3 877



http://tech.groups.yahoo.com/group/lpc2000/message/25905
Go to the top of the page
 
+Quote Post
Zdrav
сообщение Sep 29 2007, 04:38
Сообщение #21





Группа: Новичок
Сообщений: 2
Регистрация: 5-04-05
Пользователь №: 3 877



Посмотрел исходник. У вас каждьй spurrious IRQ тригерирует передача(bubble). Когда у вас ест ошибка и CTI IRQ одновременно, очистка буфера(запис в UхFCR) тригерирует spurrious IRQ которьй ведет за себя ...
Совет:
- Проверяйте interrupt_source не только для ошибки, но и чтоб определит типа прерьвание(RDA, CTI, THRE);
- Ваша очистка буфера не очишает CTI IRQ только делает его демон в кастроле;


ПС: Руский ето для меня не матерньй язик. Будте снизходительнье к правопис и граматика. laughing.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 14th July 2025 - 05:58
Рейтинг@Mail.ru


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