|
|
  |
Обработка прерываний из FPGA в userspace |
|
|
|
Dec 22 2015, 19:08
|
Группа: Участник
Сообщений: 11
Регистрация: 8-06-15
Пользователь №: 87 078

|
Доброго времени суток. У меня в FPGA есть счетчик, и при достижении определенного значения которого генерируется прерывание. По этому прерыванию программа под Linux из SDRAM должна читать данные. Делал ли кто ни будь обработку прерывания из FPGA в userspace? Каким образом вообще можно реализовать данный механизм?
|
|
|
|
|
Dec 22 2015, 20:18
|
Группа: Участник
Сообщений: 11
Регистрация: 8-06-15
Пользователь №: 87 078

|
Цитата(des333 @ Dec 22 2015, 22:49)  Лучше сделайте драйвер, который умеет получать прерывания от FPGA. А уже драйвер пусть создаст char device, с котором будет взаимодействовать userspace. А без драйвера это сделать невозможно?
|
|
|
|
|
Jan 3 2016, 17:01
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 22-09-06
Из: NN
Пользователь №: 20 592

|
Цитата(Nitrex @ Dec 22 2015, 23:18)  А без драйвера это сделать невозможно? непрерывно читать статусный регистр. Иначе нужен драйвер для резервирования прерывания в системе.
|
|
|
|
|
Jan 11 2016, 20:23
|
Частый гость
 
Группа: Свой
Сообщений: 78
Регистрация: 3-09-12
Пользователь №: 73 371

|
На рокетбордс появился набор "курсов" для Altera SoC: от обзора что-это-такое до написания драйверов: http://rocketboards.org/foswiki/view/Docum...CWorkshopSeriesЯ одним глазом посмотрел - в третьей "лабораторной" есть куча примеров простых драйверов (в том числе и с прерываниями).
Сообщение отредактировал johan - Jan 11 2016, 20:23
--------------------
|
|
|
|
|
Jan 26 2016, 18:22
|
Группа: Участник
Сообщений: 11
Регистрация: 8-06-15
Пользователь №: 87 078

|
Решил освоить написание драйвера под linux. В качестве первого примера взял статью http://zhehaomao.com/blog/fpga/2013/12/29/sockit-4.html. Но возник вопрос: в Makefile есть строчка KERNEL_SRC_DIR=/home/zhehao/programs/others/linux-socfpga. Как я понимаю здесь нужно указывать путь к директории с исходниками ядра. Но на своём компьютере я директорию linux-socfpga не обнаружил. Подскажите пожалуйста откуда её можно взять и как установить что бы в конце концов можно было скомпилировать драйвер?
|
|
|
|
|
Jan 27 2016, 12:31
|
Профессионал
    
Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079

|
Цитата(Nitrex @ Jan 26 2016, 21:22)  Решил освоить написание драйвера под linux. В качестве первого примера взял статью http://zhehaomao.com/blog/fpga/2013/12/29/sockit-4.html. Но возник вопрос: в Makefile есть строчка KERNEL_SRC_DIR=/home/zhehao/programs/others/linux-socfpga. Как я понимаю здесь нужно указывать путь к директории с исходниками ядра. Но на своём компьютере я директорию linux-socfpga не обнаружил. Подскажите пожалуйста откуда её можно взять и как установить что бы в конце концов можно было скомпилировать драйвер? Вам нужно скопировать себе исходники ядра. Их можно взять отсюдаЧтобы скопировать исходники Вам нужно выполнить в терминале Linux'а следующие команды: Код git clone https://github.com/altera-opensource/linux-socfpga git checkout socfpga-4.3 Важно: - У Вас должен быть установлен git
- Чтобы собирать драйвер исходники ядра нужно подготовить. Легче всего для Вас -- просто собрать ядро.
- Для сборки ядра нужны некоторые пакеты. Перед тем, как браться за дело, лучше прочитать пару статей про сборку ядра -- тогда процесс пойдёт как по маслу.
--------------------
|
|
|
|
|
Feb 2 2016, 17:59
|
Группа: Участник
Сообщений: 11
Регистрация: 8-06-15
Пользователь №: 87 078

|
Цитата(des333 @ Jan 27 2016, 15:31)  Вам нужно скопировать себе исходники ядра. Их можно взять отсюдаЧтобы скопировать исходники Вам нужно выполнить в терминале Linux'а следующие команды: Код git clone https://github.com/altera-opensource/linux-socfpga git checkout socfpga-4.3 Важно: - У Вас должен быть установлен git
- Чтобы собирать драйвер исходники ядра нужно подготовить. Легче всего для Вас -- просто собрать ядро.
- Для сборки ядра нужны некоторые пакеты. Перед тем, как браться за дело, лучше прочитать пару статей про сборку ядра -- тогда процесс пойдёт как по маслу.
Т.е я правильно понимаю, что исходники ядра нужно скомпилировать для среды Embedded Shell, которую я запускаю из под винды, когда компилирую обычные программки для userspace?
|
|
|
|
|
Mar 14 2016, 13:47
|

Частый гость
 
Группа: Свой
Сообщений: 136
Регистрация: 19-10-10
Из: Киев
Пользователь №: 60 262

|
Цитата(Nitrex @ Jan 26 2016, 22:22)  Решил освоить написание драйвера под linux. В качестве первого примера взял статью http://zhehaomao.com/blog/fpga/2013/12/29/sockit-4.html. Но возник вопрос: в Makefile есть строчка KERNEL_SRC_DIR=/home/zhehao/programs/others/linux-socfpga. Как я понимаю здесь нужно указывать путь к директории с исходниками ядра. Но на своём компьютере я директорию linux-socfpga не обнаружил. Подскажите пожалуйста откуда её можно взять и как установить что бы в конце концов можно было скомпилировать драйвер? В общем по драйверам очень нравится эта статья. Внизу есть ссылка на полную версию документа и исходники + все по-русски.
|
|
|
|
|
Mar 15 2016, 08:11
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 14-09-15
Пользователь №: 88 398

|
Цитата(artix @ Mar 14 2016, 16:47)  В общем по драйверам очень нравится эта статья. Да неплохой материал И следует отметить актуален для свежих ядер; "... в версии ядра 3.17 разработчики радикально поменяли прототипы ключевых макросов "
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|