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

 
 
> Управление периферией HPS из под OS
R6L-025
сообщение Aug 29 2016, 06:01
Сообщение #1


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

Группа: Свой
Сообщений: 76
Регистрация: 8-04-11
Из: Ростов-на-Дону
Пользователь №: 64 227



Доброго времени суток!
Недавно начал ковырять альтеровский SoC, в связи с чем возник довольно глупый вопрос - как правильно работать с периферией HPS из под OS (linux)?
Например пробовал поднять контроллер SPI. Пробовал из под userspace вручную управлять его регистрами - ничего хорошего не получилось.
Правильно ли я понимаю что самый корректный способ в данном случае работа с драйвером? Или есть иные решения?
И поможет ли чем альтеровская HWLIB при работе из под OS? Как я понял она больше рассчитана на работу с baremetal, да и в сорцах альтеровских драйверов я не встречал упоминаний о ней.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
R6L-025
сообщение Aug 29 2016, 11:26
Сообщение #2


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

Группа: Свой
Сообщений: 76
Регистрация: 8-04-11
Из: Ростов-на-Дону
Пользователь №: 64 227



to Jury093
Извиняюсь, немного недопонял, что Вы подразумеваете под "разрешением работы узла в прелоадере"? Я пытался адаптировать example для SPI отсюда:
https://www.altera.com/support/support-reso...amples/soc.html
Но этот пример ориентирован под baremetall. В нем используется последовательность функций из HWLIB для инициализации контроллера SPI, контрллера прерываний и пр., но под OS это по идее и не нужно. (я скопипастил оттуда ту часть которая отвечает только за работу SPI, выдрал часть кода из HWLIB, подправил так, чтоб работало с виртуальными а не физическими адресами, но в итоге получил частоту SCLK вместо 2 МГц около 100, и почему то принятые данные всегда были в нулях rolleyes.gif ).
Собственно сам вопрос больше не о том как конкретно с SPI работать, а как вообще считается корректно работать с подобной периферией.
Go to the top of the page
 
+Quote Post
Jury093
сообщение Aug 29 2016, 13:02
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(R6L-025 @ Aug 29 2016, 14:26) *
Извиняюсь, немного недопонял, что Вы подразумеваете под "разрешением работы узла в прелоадере"? Я пытался адаптировать example для SPI отсюда:

видимо я неудачно выразился.. под прелоадером имеется в виду u-boot, который состоит из двух этапов - прелоадер и собственно u-boot
а начальная конфигурация узлов в т.ч. и SPI производится из оболочки Qsys из-под Quartus
т.о. Qsys формирует хидеры с настройками, на основе которых u-boot настраивает периферию HPS

Цитата
Собственно сам вопрос больше не о том как конкретно с SPI работать, а как вообще считается корректно работать с подобной периферией.

в линуксе? желательно по законам линукса, конечно.. со спецификой embedded
если совсем прямой путь - в Qsys включили SPI, в ядре разрешили SPI и свой чип, в dts прописали SPI и свой чип, далее после перезагрузки, если все корректно и правильно, то получили канал или устройство в /dev, далее софт для пользователя..
если хочется экстрима/нестандарта, то на любом этапе после u-boot перехватываете и самостоятельно пишете всё, что касается обмена с SPI ну и сервис в сторону пользователя..
Go to the top of the page
 
+Quote Post



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

 


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


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