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

 
 
> SW UART под ядро линукса
NekoKoneko
сообщение Dec 28 2011, 11:12
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 28-12-11
Пользователь №: 69 125



Вобщем суть такова:
Есть некая железка, чип TCC8900 720MHz, 256 оперативы, 256 флеш, есть сата, есть 100мбит порт, есть USB-хост. Хотел сделать качалку и файл-шару. Беда в одном - китайцы не развели ни одного из шести аппаратных UART-ов, зато развели ноги под опциональные светодиоды, они не распаяны, просто дырки.
Загрузчик я уже подогнал и собрал "вслепую" по ДШ, работает нормально, ядро тоже стартует, но встает где-то в конце на KP. Где - непонятно, так как нет вывода отладки, а есть только мигание светодиода, повешенное в ядре на функцию panic.
Вопрос следующий: есть ли реализации программного UART под линуксовое ядро? Чтобы повесить его на случайный GPIO? То, что будет гнать ошибки при передаче знаю, пофиг, нужно только для отладки.
К сожалению, в кодинге под ядро линукса не так силен, чтобы сразу написать с нуля или запросто портировать с восмибитного МК =(
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 9)
Dron_Gus
сообщение Dec 28 2011, 11:19
Сообщение #2


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Вряд ли есть. Можно опробовать воткнуть usb-serial преобразователь. Возможно проканает, смотря когда ядро паникует.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
NekoKoneko
сообщение Dec 28 2011, 11:48
Сообщение #3





Группа: Новичок
Сообщений: 4
Регистрация: 28-12-11
Пользователь №: 69 125



Далеко не факт, что ядро доходит до инициализации USB, да и как завернуть вывод ядра на этот переходник? Скорее всего никак.
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Dec 28 2011, 13:05
Сообщение #4


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



console=/dev/ttyUSB0 ?


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
follow_me
сообщение Dec 28 2011, 13:06
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 182
Регистрация: 4-11-10
Пользователь №: 60 646



от чего никак ?
обычный uart тоже имеет драйвер и ядро его грузит
вполне можно написать свой драйвер и собрать с ним ядро , вот только боюсь прийдется всё самому писать автору, потому как такие извращения крайне редкий случай

может эта статья чем-то поможет
Go to the top of the page
 
+Quote Post
NekoKoneko
сообщение Dec 28 2011, 13:25
Сообщение #6





Группа: Новичок
Сообщений: 4
Регистрация: 28-12-11
Пользователь №: 69 125



Буду пробовать писать свой драйвер, но для этого придется детально разобраться с таймерами в ядре.
Извращения то да. Но мы не ищем легких путей во-первых, а во-вторых, такие нестандартные задачи никак зарядка для ума.
Go to the top of the page
 
+Quote Post
KostyantynT
сообщение Dec 28 2011, 18:03
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 290
Регистрация: 27-06-05
Из: Киев
Пользователь №: 6 345



Цитата(NekoKoneko @ Dec 28 2011, 17:25) *
Буду пробовать писать свой драйвер, но для этого придется детально разобраться с таймерами в ядре.
Извращения то да. Но мы не ищем легких путей во-первых, а во-вторых, такие нестандартные задачи никак зарядка для ума.

Скачайте Linux Kernel Device 3е издание. В написании драйверов ничего страшного нет, это поначалу страшно, потом интересно. Лучше его скомпилировать как модуль и подгружать- выгружать (insmod итд) при отладке. Для начала посмотрите в исходниках ядра, папка drivers, наверняка, кто-то что-то подобное уже писал. Недавно сам столкнулся - надо было цеплять матричную клавиатуру, нашел в ядре готовый драйвер/ чуть-чуть подпилил под себя, работает на ура.


--------------------
Если в сердце дверь закрыта - надо в печень постучать..
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Dec 28 2011, 19:40
Сообщение #8


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Я бы предложил реализовать интерфейс не так требовательный к таймингам. Например, spi. правда, понадобится две gpio'шки, но зато проще.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
_3m
сообщение Dec 29 2011, 06:24
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(NekoKoneko @ Dec 28 2011, 14:12) *
есть ли реализации программного UART под линуксовое ядро? Чтобы повесить его на случайный GPIO?
...
К сожалению, в кодинге под ядро линукса не так силен, чтобы сразу написать с нуля или запросто портировать с восмибитного МК =(

софтврный уарт под линуксом невозможен по причине того что драйверы линукс изобилуют конструкциями вида:
Код
timeout=50000;
spin_lock_irqsave(lock, flags);
do {
    if ( readl(base+REG_STATUS) & STATUS_READY )
        break;
    udelay(1000);
}
while (--timeout)
spin_unlock_irqrestore(lock, flags);
if (!timeout)
    goto dev_not_ready;

Так например исследования драйвера сд карты показали что он при определенных условиях запрещает прерывания на 1018ms.
Реализовать обмен по типу spi - реально.
Go to the top of the page
 
+Quote Post
NekoKoneko
сообщение Dec 29 2011, 07:18
Сообщение #10





Группа: Новичок
Сообщений: 4
Регистрация: 28-12-11
Пользователь №: 69 125



Цитата
Например, spi. правда, понадобится две gpio'шки, но зато проще.

Не, не выйдет, так как нужно ваять переходник на МК, а пока возможности нет - на работе не из чего, а дома дел и без этого хватает, НГ на носу.

Цитата
софтврный уарт под линуксом невозможен по причине того что драйверы линукс изобилуют конструкциями вида

Ну и вылетят пару-тройку байт, невелика потеря, это костыль, нужный только до запуска USB - дальше приделаю переходник и буду отлаживать через него. Сейчас портировал драйвер с AVR-ки, прицепил на таймер, буду испытывать - заработает или нет.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 06:01
Рейтинг@Mail.ru


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