Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
Доступ к регистрам из Qt
Dmitriy
Добавлено 10.03.2012 12:05
0
Сообщение: 1
Dmitriy
0

Пункты: 808
Регистрация: 23.02.2012
Всем привет. Появился новый вопрос. На руках связка. SK-MAT91SAM9G45 + SK-MI0430FT-Plug. Вопрос следующий. Возможно ли из под Qt обратиться напрямую к регистрам микроконтроллера? Например прочитать состояние ножек порта.
Если это возможно то как?

Заранее, спасибо.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 10.03.2012 12:44 Сообщение: 2
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
Цитата

Возможно ли из под Qt обратиться напрямую к регистрам микроконтроллера?


Обращаться к регистрам напрямую из юзерспейс плохая идея - независимо от фреймворка. Для gpio есть стандартный интерфейс через sysfs, демо для Qt можно посмотреть например тут
http://cgit.bec-systems.com/cgit.cgi/qt-overo-palo-gpio/tree/
там и для АЦП есть пример.
Спуститься к концу Подняться к началу
Персональная информация
Dmitriy
Добавлено 10.03.2012 13:21 Сообщение: 3
Dmitriy
0

Пункты: 808
Регистрация: 23.02.2012
Цитата
Цитата

Возможно ли из под Qt обратиться напрямую к регистрам микроконтроллера?


Обращаться к регистрам напрямую из юзерспейс плохая идея - независимо от фреймворка. Для gpio есть стандартный интерфейс через sysfs, демо для Qt можно посмотреть например тут
http://cgit.bec-systems.com/cgit.cgi/qt-overo-palo-gpio/tree/
там и для АЦП есть пример.


Большое спасибо, что откликнулись. Сейчас изучаю материал, который вы предоставили.
Конечно идея обращаться напрямую к регистрам из своего приложения не самая хорошая, но иногда она может очень сильно облегчить жизнь и дать возможность работать с периферией имея на руках только dataheet на микроконтроллер.
Хотелось бы хотя бы в целях обучения опробовать обратится напрямую к регистрам.
Спуститься к концу Подняться к началу
Персональная информация
rw9uao
Добавлено 10.03.2012 17:14 Сообщение: 4
rw9uao
Ранг
5

Группа: Клиенты
Пункты: 6973
Регистрация: 26.03.2009
в процедуре инициализации
Код
#if defined(ARM)
int fd;
if( ( fd = open("/dev/mem", O_RDWR | O_SYNC) ) == -1 ){
qDebug("/dev/mem open failed");return; }
//gpio_base = (int *)( mmap(0, 4096UL, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0xB8000000) );
gpio_base = mmap(0, 4096UL, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0xB8000000);
if (gpio_base == (void *) -1){
qDebug("mmap failed"); return; }
#endif

в коде
Код
#if defined(ARM)
unsigned int temp;
temp = 1<<4 | 1<<3 | 2 | 1<<2;//EPE, PBE, CS7
*(unsigned int*)( (uintptr_t)gpio_base + 0x10C ) = temp;//LCR
#endif

работает на NUC950 в Qt в живом проекте.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux