Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: RTC на LPC 2478 - ошибка: structure has no member named `class_dev'
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
andybeg
пытаюсь включить поддержку RTC, делаю как прописано у EA
Цитата
5.13.1 Configuration
Real Time Clock support is enabled at the following place in the configuration tree:
Device Drivers->Real Time Clock->RTC class
In the Embedded Artists configuration, support for setting the Linux system time from the
RTC source has also been enabled.
Device Drivers->Real Time Clock->Set system time from RTC on startup
In the configuration tree it is possible to select which RTC interface to use for user-domain
applications. All the three alternatives have been enabled in the Embedded Artists
configuration.
Device Drivers->Real Time Clock->sysfs
Device Drivers->Real Time Clock->proc
Device Drivers->Real Time Clock->dev
Finally the hardware support must also be enabled.
Device Drivers->Real Time Clock->NXP LPC2XXX RTC support

Цитата


при компиляции получаю ошибку

Цитата
drivers/rtc/rtc-lpc22xx.c: In function `lpc22xx_rtc_interrupt':
drivers/rtc/rtc-lpc22xx.c:278: ошибка: structure has no member named `class_dev'


static irqreturn_t lpc22xx_rtc_interrupt(int irq, void *dev_id)
{
struct platform_device *pdev = dev_id;
struct rtc_device *rtc = platform_get_drvdata(pdev);
unsigned long events = 0;

unsigned char ilr = REG_RTC_ILR & 0x07;

#ifdef CONFIG_RTC_DEBUG
printk(KERN_INFO "%s(%d) irl=%x\n", __FUNCTION__, ilr);
#endif
if (ilr) { /* this interrupt is shared! Is it ours? */
if (ilr & 0x01) { // RTCCIF counter increment interrupt
events |= (RTC_UF | RTC_IRQF);
}
if (ilr & 0x02) { // RTCALF alarm interrupt
events |= (RTC_AF | RTC_IRQF);
}
if (ilr & 0x04) { // RTCSF sub-second interrupt
events |= (RTC_PF | RTC_IRQF);
}
REG_RTC_ILR = ilr;

rtc_update_irq(&rtc->class_dev, 1, events);<<============= строка 278

#ifdef CONFIG_RTC_DEBUG
printk("%s(): num=%ld, events=0x%02lx\n", __FUNCTION__,
events >> 8, events & 0x000000FF);
#endif
return IRQ_HANDLED;
}
return IRQ_NONE; /* not handled */
}


сталкивался кто с таким?

нашел определение функции , которой передаётся не существующий параметр структуры и вижу что должен передаваться указатель на структуру
Цитата
extern void rtc_update_irq(struct rtc_device *rtc,
unsigned long num, unsigned long events);

убрав параметр `class_dev' на который ругался компилятор удачно прошёл процесс, убедился что RTC идёт, по старту линукс их понимаю считывает, но устройство /dev/rtc не создаётся, потому что
Цитата
/> hwclock --systohc --debug
hwclock 2.4c/util-linux-2.11a
hwclock: Open of /dev/rtc failed, errno=2: No such file or directory.
No usable clock interface found.
Cannot access the Hardware Clock via any known method.


дальше мысль останавливается sad.gif
sasamy
Цитата(andybeg @ Nov 13 2010, 11:24) *
hwclock: Open of /dev/rtc failed, errno=2: No such file or directory.


Как у вас в uclinux создаются файлы устройств ? Попробуйте вручную создать
#mknod /dev/rtc c 254 0
или может создан файл устройства с именем rtc0, тогда
#ln -s /dev/rtc0 /dev/rtc
andybeg
создаю? я в настройке uClinux прописываю драйвер
в rc скрипте прописал mknod /dev/rtc c 254 0
и получил
Цитата
/> ln -s /dev/rtc0 /dev/rtc
/dev/rtc: Read-only file system

но установка часов попрежнему вылетает с ошибкой
Цитата
/> hwclock --debug --systohc
hwclock 2.4c/util-linux-2.11a
hwclock: Open of /dev/rtc failed, errno=2: No such file or directory.
No usable clock interface found.
Cannot access the Hardware Clock via any known method.


но часы на плате идут, показывают
Цитата
/> date
Tue Jul 3 20:19:53 1951
sasamy
Цитата(andybeg @ Nov 13 2010, 17:45) *
но часы на плате идут, показывают


К сожалению (или счастью ? smile.gif с uclinux не имел дел но на обычном linux часы будут идти и без драйвера rtc.
andybeg
я немного не о том - при пропадении питания время не сбрасывается, что может говорить о том что риал тайм клок работает
sasamy
Цитата(andybeg @ Nov 13 2010, 18:32) *
я немного не о том - при пропадении питания время не сбрасывается, что может говорить о том что риал тайм клок работает


Цитата
Tue Jul 3 20:19:53 1951


Какое-то неравильное время - отчсчет ведется от 1970 года.
kurtis
Цитата(andybeg @ Nov 13 2010, 16:45) *
в rc скрипте прописал mknod /dev/rtc c 254 0
и получил


Если у вас rootfs по умолчанию монтируется как read-only, то вы ничего туда записать (создать) не сможете.
попробуйте перед созданием нода сделать
mount -o remount,rw / (или куда там у вас монтируется rootfs), может поможет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.