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

 
 
> прерывания в embedded linux, прерывание button -> led
winniethepooh
сообщение Oct 16 2017, 13:57
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 3-06-15
Пользователь №: 86 995



Здравствуйте.
Есть статья http://derekmolloy.ie/kernel-gpio-programm...ttons-and-leds/
пытаюсь повторить (первый пример с кнопкой и ледом) на arm с результатом:

# insmod ./gpio.ko
GPIO_TEST: Initializing the GPIO_TEST LKM
GPIO_TEST: The button state is currently: 1
GPIO_TEST: The button is mapped to IRQ: -6
GPIO_TEST: The interrupt request result is: -22
insmod: can't insert './gpio.ko': Invalid argument

система явно не настроена ловить gpio прерывания, но может вкл и выкл led.
представляю как можно настроить ножку на прерывание в "голой системе",
но как это сделать под linux или что почитать?(google сильно не помог)

спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Tarbal
сообщение Oct 19 2017, 01:59
Сообщение #2


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

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(winniethepooh @ Oct 16 2017, 17:57) *
Здравствуйте.
Есть статья http://derekmolloy.ie/kernel-gpio-programm...ttons-and-leds/
пытаюсь повторить (первый пример с кнопкой и ледом) на arm с результатом:

# insmod ./gpio.ko
GPIO_TEST: Initializing the GPIO_TEST LKM
GPIO_TEST: The button state is currently: 1
GPIO_TEST: The button is mapped to IRQ: -6
GPIO_TEST: The interrupt request result is: -22
insmod: can't insert './gpio.ko': Invalid argument

система явно не настроена ловить gpio прерывания, но может вкл и выкл led.
представляю как можно настроить ножку на прерывание в "голой системе",
но как это сделать под linux или что почитать?(google сильно не помог)

спасибо.


У вас две ошибки - числа со знаком минус: 6 и 22.
Здесь проверяем что они означают и ищем как решить проблему:
http://www-numi.fnal.gov/offline_software/...tem_errors.html
Go to the top of the page
 
+Quote Post
winniethepooh
сообщение Oct 19 2017, 09:28
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 3-06-15
Пользователь №: 86 995



Цитата(Tarbal @ Oct 19 2017, 01:59) *
У вас две ошибки - числа со знаком минус: 6 и 22.
Здесь проверяем что они означают и ищем как решить проблему:
http://www-numi.fnal.gov/offline_software/...tem_errors.html


да я это уже понял (это заглушки возвращают).
Спасибо.
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Oct 20 2017, 00:31
Сообщение #4


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

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(winniethepooh @ Oct 19 2017, 13:28) *
да я это уже понял (это заглушки возвращают).
Спасибо.


Вполне может быть, что вы пытаетесь подключить обработчик к тому источнику, который не поддержан железом.
У вас есть код ядра для этой машины?

Go to the top of the page
 
+Quote Post
winniethepooh
сообщение Oct 20 2017, 07:06
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 3-06-15
Пользователь №: 86 995



Цитата(Tarbal @ Oct 20 2017, 00:31) *
Вполне может быть, что вы пытаетесь подключить обработчик к тому источнику, который не поддержан железом.
У вас есть код ядра для этой машины?


код ядра https://github.com/fm3fan/uClinux

источником может служить любой вывод обозначенный как INTxx_x/Pxx ()
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Oct 21 2017, 03:36
Сообщение #6


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

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(winniethepooh @ Oct 20 2017, 11:06) *
код ядра https://github.com/fm3fan/uClinux

источником может служить любой вывод обозначенный как INTxx_x/Pxx ()



Где обозначенный? В справочном материале по процессору?
У вас есть справочные материалы по процессору? Есть разные процессоры в каждом это все очень индивидуально.

Какой номер прерывания вы используете?

Его видно в псевдо файл /proc/interrupts ?

А этот документ читали (если ядро < 3, то не надо)?
http://elixir.free-electrons.com/linux/v4..../interrupts.txt

Ваше устройство здесь описано (если ядро < 3, то не надо)?
Это самый будет точный документ по теме.
http://elixir.free-electrons.com/linux/v4....rupt-controller

Поищите в вашем ядре документы на тему:
https://github.com/fm3fan/uClinux/tree/master/Documentation

В дереве устройств ваше прерывание отражено? На самом деле я не знаю этих деталей (знал бы -- сказал бы), а разбираться некогда. Приспичит тогда и разберусь, но пока не приспичило. Если у вас сесть желание найти самому, то я помогу вам выбрать направление.

Посмотрел внимательно на ваше ядро. Оно 2.6?
Там совсем другой подход.
Возможно надо структуру устройства создать в файле устройства и зарегистрировать. Посмотрел исходники с которых вы начали и вернулся дописать. Поскольку в них нет функции probe, то структуры устройства создавать не нужно.

1. Какой у вас процессор?
2. Постройте ядро. Что дает команда в строке ниже, исполненная в корне исходников ядра (там где вы запускали команду строить ядро).
find arch -name \* | grep *o$
Go to the top of the page
 
+Quote Post
winniethepooh
сообщение Oct 23 2017, 08:41
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 3-06-15
Пользователь №: 86 995



Цитата(Tarbal @ Oct 21 2017, 03:36) *
Где обозначенный? В справочном материале по процессору?
У вас есть справочные материалы по процессору? Есть разные процессоры в каждом это все очень индивидуально.

Какой номер прерывания вы используете?

Его видно в псевдо файл /proc/interrupts ?


да справочный материал по проц. я читал (вот ссылочка на datasheet http://www.cypress.com/file/252811/download).
в h файле для моего девайса номер прерывания для ножки (INT28_0/P5C) EXINT8_31_IRQn = 5, /* External Interrupt Request ch.8 to ch.31 */
нет в псевдо файле /proc/interrupts его нет.

Цитата(Tarbal @ Oct 21 2017, 03:36) *
Ваше устройство здесь описано (если ядро < 3, то не надо)?
Это самый будет точный документ по теме.
http://elixir.free-electrons.com/linux/v4....rupt-controller


спасибо за ссылки..

Цитата(Tarbal @ Oct 21 2017, 03:36) *
В дереве устройств ваше прерывание отражено? На самом деле я не знаю этих деталей (знал бы -- сказал бы), а разбираться некогда. Приспичит тогда и разберусь, но пока не приспичило. Если у вас сесть желание найти самому, то я помогу вам выбрать направление.


насколько я понимаю дерево можно увидеть в файле *.dts
вот только для моей системы такого файла нет..
каким образом linux переопределяет "железные прерывания" в свои собственные (как изменяются номера)?

Цитата(Tarbal @ Oct 21 2017, 03:36) *
1. Какой у вас процессор?
2. Постройте ядро. Что дает команда в строке ниже, исполненная в корне исходников ядра (там где вы запускали команду строить ядро).
find arch -name \* | grep *o$


команды find мой бизибокс не знает, но из загрузчика

U-Boot 2010.03 (29 2017 - 10:20:30)

CPU : Fujitsu FM3 series (Cortex-M3)
Board: MyBorad NO SERIAL
Please set serial number
I2C: ready
DRAM: 16 MB
Flash: 4 MB
*** Warning - bad CRC, using default environment

In: serial
Out: serial
Err: serial
Net: fm3_eth
Hit any key to stop autoboot: 0
## Booting kernel from Legacy Image at 61000000 ...
Image Name: Linux-2.6.33-arm1
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1719520 Bytes = 1.6 MB
Load Address: 60008000
Entry Point: 60008001
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK

Starting kernel ...

Linux version 2.6.33-arm1 (user@user-VirtualBox) (gcc version 4.4.1 (Sourcery G++ Lite 2010q1-189) ) #1 Mon Oct 16 13:22:25 MSK 2017
CPU: ARMv7-M Processor [412fc231] revision 1 (ARMv7M)
CPU: NO data cache, NO instruction cache
Machine: Fujitsu FM3

спасибо.

Сообщение отредактировал winniethepooh - Oct 23 2017, 08:45
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- winniethepooh   прерывания в embedded linux   Oct 16 2017, 13:57
- - x893   обработчик появляется в /proc/interrupts ? хотя та...   Oct 16 2017, 14:05
|- - winniethepooh   Цитата(x893 @ Oct 16 2017, 14:05) обработ...   Oct 16 2017, 14:13
|- - aaarrr   Цитата(winniethepooh @ Oct 16 2017, 17:13...   Oct 17 2017, 08:11
- - x893   Так надо в этом направлении копать. Более того вс...   Oct 16 2017, 14:36
- - Jury093   Цитата(winniethepooh @ Oct 16 2017, 16:57...   Oct 17 2017, 07:33
|- - winniethepooh   Цитата(Jury093 @ Oct 17 2017, 08:33) попр...   Oct 17 2017, 08:22
|- - aaarrr   Цитата(winniethepooh @ Oct 17 2017, 11:22...   Oct 17 2017, 08:37
|- - winniethepooh   Цитата(aaarrr @ Oct 17 2017, 09:37) Похож...   Oct 17 2017, 08:45
|- - aaarrr   Цитата(winniethepooh @ Oct 17 2017, 11:45...   Oct 17 2017, 08:54
||- - winniethepooh   Цитата(aaarrr @ Oct 17 2017, 09:54) Посмо...   Oct 17 2017, 09:02
|- - Jury093   Цитата(winniethepooh @ Oct 17 2017, 11:45...   Oct 17 2017, 10:38
|- - winniethepooh   Цитата(Jury093 @ Oct 17 2017, 10:38) я пр...   Oct 17 2017, 11:28
||- - Jury093   Цитата(winniethepooh @ Oct 17 2017, 14:28...   Oct 17 2017, 15:05
||- - winniethepooh   Цитата(Jury093 @ Oct 17 2017, 15:05) прощ...   Oct 17 2017, 16:09
||- - Jury093   Цитата(winniethepooh @ Oct 17 2017, 19:09...   Oct 17 2017, 18:20
|- - winniethepooh   Спасибо за GPIOLIB Jury093. Покопаю в этом напра...   Oct 17 2017, 12:32
- - aaarrr   Если речь идет об этом продукте, то прерываниями т...   Oct 17 2017, 20:28
|- - winniethepooh   Цитата(aaarrr @ Oct 17 2017, 21:28) Если ...   Oct 18 2017, 06:49
- - Tarbal   Вы ядро строите на той же системе? Обычно то где с...   Oct 24 2017, 00:18
- - winniethepooh   Цитата(Tarbal @ Oct 24 2017, 00:18) Вы яд...   Oct 24 2017, 07:59
- - Tarbal   Цитата(winniethepooh @ Oct 24 2017, 11:59...   Oct 25 2017, 01:03
- - winniethepooh   Цитата(Tarbal @ Oct 25 2017, 02:03) Вы мо...   Oct 25 2017, 14:22
- - Tarbal   Цитата(winniethepooh @ Oct 25 2017, 18:22...   Oct 25 2017, 23:35
|- - winniethepooh   Цитата(Tarbal @ Oct 26 2017, 00:35) Тепер...   Oct 26 2017, 11:09
|- - Tarbal   Цитата(winniethepooh @ Oct 26 2017, 15:09...   Oct 26 2017, 12:55
- - aaarrr   Цитата(winniethepooh @ Oct 25 2017, 17:22...   Oct 26 2017, 00:13
- - winniethepooh   Цитата(aaarrr @ Oct 26 2017, 01:13) winni...   Oct 26 2017, 09:01


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

 


RSS Текстовая версия Сейчас: 24th June 2025 - 23:11
Рейтинг@Mail.ru


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