Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Делимся опытом Наступив на грабли - сообщи другим! Обмен опытом разработки и ремонта электронных устройств.

Результаты опроса: Какая ОС удобнее Linux или Windows Xp
Linux 578 46.61%
Конечно Windows Xp 662 53.39%
Голосовавшие: 1240. Вы ещё не голосовали в этом опросе

 
Опции темы
Непрочитано 26.10.2012, 18:42  
hacker7
Вид на жительство
 
Регистрация: 07.01.2007
Адрес: Ленинградская обл
Сообщений: 428
Сказал спасибо: 147
Сказали Спасибо 71 раз(а) в 56 сообщении(ях)
hacker7 на пути к лучшему
По умолчанию Re: Linux-ваше мнение

а конкретно,
Сообщение от urmlr Посмотреть сообщение
А не подскажете ли уважаемый, в каком именно месте линуксового дискового драйвера Вы нашли такую задержку, желательно, с именем файла и номером строчки, хоть приблизительно.

А заодно, не могли бы ли Вы разъяснить механизм потери прерывания "во время этого процесса" пожалста?
kernel\linux-3.5.7\arch\c6x\include\asm\delay.h
не откажу себе в "удовольствии" процитировать:

static inline void __delay(unsigned long loops)
{
uint32_t tmp;

/* 6 cycles per loop */
asm volatile (" mv .s1 %0,%1\n"
"0: [%1] b .s1 0b\n"
" add .l1 -6,%0,%0\n"
" cmplt .l1 1,%0,%1\n"
" nop 3\n"
: "+a"(loops), "=A"(tmp));
}

static inline void _c6x_tickdelay(unsigned int x)
{
uint32_t cnt, endcnt;

asm volatile (" mvc .s2 TSCL,%0\n"
" add .s2x %0,%1,%2\n"
" || mvk .l2 1,B0\n"
"0: [B0] b .s2 0b\n"
" mvc .s2 TSCL,%0\n"
" sub .s2 %0,%2,%0\n"
" cmpgt .l2 0,%0,B0\n"
" nop 2\n"
: "=b"(cnt), "+a"(x), "=b"(endcnt) : : "B0");
}

/* use scaled math to avoid slow division */
#define C6X_NDELAY_SCALE 10

static inline void _ndelay(unsigned int n)
{
_c6x_tickdelay((ticks_per_ns_scaled * n) ›› C6X_NDELAY_SCALE);
}

static inline void _udelay(unsigned int n)
{
while (n ›= 10) {
_ndelay(10000);
n -= 10;
}
while (n-- › 0)
_ndelay(1000);
}

теперича смотрим, где в драйверах АТА встречается этот udelay
например, здесь:
kernel\linux-3.5.7\drivers\ata\pata_legacy.c

outb(inb(0x1F4) & 0x07, 0x1F4);

rt = inb(0x1F3);
rt &= 0x07 ‹‹ (3 * adev-›devno);
if (pio)
rt |= (1 + 3 * pio) ‹‹ (3 * adev-›devno);

udelay(100);
outb(inb(0x1F2) | 0x01, 0x1F2);
udelay(100);
inb(0x1F5);

и дальше мне разбираться леньки. Если он некорректно установит режим, а потом вздумает читать данные с начала диска, можем поиметь то, что я имел.

и даже так:
/* software reset. causes dev0 to be selected */
iowrite8(ap-›ctl, ioaddr-›ctl_addr);
udelay(20); /* FIXME: flush */
iowrite8(ap-›ctl | ATA_SRST, ioaddr-›ctl_addr);
udelay(20); /* FIXME: flush */
iowrite8(ap-›ctl, ioaddr-›ctl_addr);
ap-›last_ctl = ap-›ctl;

Фикс ми! - пищит этот фрагмент
смотрим - для нек устр-в пофиксено, для нек нет

Вот ещё фрагментик, не точно на эту тему, но характерный

/* clear start/stop bit */
out_be32(bmid_base + SCC_DMA_CMD,
in_be32(bmid_base + SCC_DMA_CMD) & ~ATA_DMA_START);

кто программировал DMA, оценит
вот интересно, во что компилится сие чудо. Неужели нельзя было написать в кодах. аааааа они потерялись в то ли не знают ассемблера в то ли стремились к переносимости кода, который по содержанию в принципе никуда кроме x86 непереносим

Что до возможной потери прерываний, каюсь и приношу извинения: примера сейчас найти не могу. Но помню, что искал и врожде находил работу с прерываниями ATA и именно с задержечками подобного стиля.
так вот если на контроллер поступает NMI вроде клавы (возможно, не любой контролеер, но типичный легальный), то он мёртв для прерываний, пока в порт 20 не выдадут, если не ошибаюсь, тоже 20. И эти места страшно критичны по времени обработки.

"Не покажет и не разъяснит, ибо исходники не смотрел. Или смотрел, но ничего не понял. И его опус расчитан на тех, кто тоже не смотрел."

я нисколько не шучу, и это не просто флейм. Если речь просто о соединении цветных финтифлюшек, то с таким софтом ра.. видеть его на экране можно. Если речь о реальной работе, шлагбаум.
Если таких штук, как вышеприведённые задержки и работа с DMA, в какой-то пррограмме нет, то она вполне может быть глючной по другим причинам. Но здесь всё, шлагбаум, поймите, пожалуйста!
на какой-то конкретной машине оно может заработать. На другой будет не работать начиная с установки или, например, портить конкретный диск, как было у меня. Но и где работает, может преподнести сюрприз.
С портами ввода-вывода и устр-вами вроде DMA работают так только в учебниках, где показывают "мощь" и читабельность языка С. А также в соотв. студенческих упражнениях.

Всё, стираю с диска эту курсовую на 130 мегабайт

Последний раз редактировалось hacker7; 26.10.2012 в 18:59.
hacker7 вне форума  
Непрочитано 26.10.2012, 19:17  
Watsen
Прописка
 
Регистрация: 30.10.2008
Сообщений: 146
Сказал спасибо: 14
Сказали Спасибо 63 раз(а) в 39 сообщении(ях)
Watsen на пути к лучшему
По умолчанию Re: Linux-ваше мнение

Сообщение от KBH-I Посмотреть сообщение
мне ставить Линукс не на десктоп, а на нетбук.
Сидел год на нетбуке (SamsungN150) с убунтой. Не работало "искаропки" только сочетания клавиш Fn+xx, но гуглением решилось - подключил нужный источник и оно само все доставило. Устанавливал еще на несколько машин, выявилось несколько проблем с поддержкой железа. Без проблем рабтают видеокарты от nVidia и Intel, с ATI\AMD наблюдались проблемы. Так же проблемы были с wifi-модулями Boardcom. Athreos и Intel заводились нормально и без глюков.
--------------------
По поводу внешнего вида "а-ля винда" - а оно надо? Не тошнит от стандартных виндовых тем? Особенно на нетбуке, с его маленьким разрешением. У моего было разрешение 1024х600(10"), в результате от стандартного убунтовского Гнома мало что осталось. Все нужные кнопки\функции перенесены на верхнюю панель, сама панель убирающаяся. Вместо нижней панели использовал CairoDock, в котором была настроена 3D-анимация иконок и всплывающих меню. От вида крутящихся иконок "девочки повизгивали". После пары дней работы с таким интерфейсом уже этих "девочек" начинало тошнить от стандартного виндового интерфейса с намертво прибитыми кнопками.
----------------
ЗЫ:Оффтоп: Копипаст Ctrl+C & Ctrl+V не работает только у меня или с форумом что-то?
__________________
Будь человеком, и к тебе потянутся.
(с)Первый закон зомби-апокалипсиса
Watsen вне форума  
Непрочитано 26.10.2012, 20:54  
b_raven
Гражданин KAZUS.RU
 
Регистрация: 02.11.2008
Адрес: Одесса
Сообщений: 668
Сказал спасибо: 336
Сказали Спасибо 328 раз(а) в 182 сообщении(ях)
b_raven на пути к лучшему
По умолчанию Re: Linux-ваше мнение

Сообщение от Watsen Посмотреть сообщение
с ATI\AMD наблюдались проблемы.
как и с другими дешевыми поделками.
AMD не стремятся выпускать дровишки на своё железо НЕ под винду.
Да и качество их железок ИМХО оставляет желать им .... нет, не оставляет.
b_raven вне форума  
Непрочитано 26.10.2012, 20:59  
Ara41
Почётный гражданин KAZUS.RU
 
Регистрация: 30.09.2006
Сообщений: 1,560
Сказал спасибо: 158
Сказали Спасибо 661 раз(а) в 431 сообщении(ях)
Ara41 на пути к лучшему
По умолчанию Re: Linux-ваше мнение

Сообщение от b_raven Посмотреть сообщение
Да и качество их железок ИМХО оставляет желать им .... нет, не оставляет.
тема нового холивара...
Ara41 вне форума  
Непрочитано 26.10.2012, 21:40  
Buhenwald
Частый гость
 
Регистрация: 03.02.2008
Сообщений: 16
Сказал спасибо: 3
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
Buhenwald на пути к лучшему
По умолчанию Re: Linux-ваше мнение

Сообщение от KBH-I Посмотреть сообщение
Для тех, кто в танке, повторяю: мне ставить Линукс не на десктоп, а на нетбук.
Был у жены Asus eeePC 701 surf (600MHz, 500MB DDR2, 2GB SSD) собирал (через net install) для него Ubuntu 10.04, врезая офис, нормальные кодеки, аськи, скайпы и нетбук-лаунчер т.к. экран был мелкий. Итог: 96MB использованного ОЗУ, 2х гиговый SSD забит в притык, кеши браузера и темпы в RAM-RUNе, чтобы видео на YOUTUBе не тупило разгонял ЦП до 900, все работало (именно работало), а не тупило, как в винде после установки на нее антивируса. К тому же Windows XP сжирала эти 2ГБ в течении пары месяцев, не оставляя места для другого софта.

Потом у нее был Asus eeePC 1005HA. Ничего не собирая, поставил и обрезал Ubuntu 11.04, допилил кнопки Function

Следующий Samsung NP-N110 - обрезок Ubuntu 12.04 c юнити. Помимо кастрации (30мин.) пять минут потрачено на решение проблем с выдоом из спящего режима и с функциональными клавишами. Кушает эта дрянь 180 метров памяти.

У самого: Samsung NP-X420 (до этого Samsung NP-R20). Пилил Debian через все тот же нет-инсталл . Оболочка XFCE ака "крыса", ядро скомпилил за вечер. Рекорд потребления ОЗУ 69МБ + 1,5ГБ на рэмран, ибо SSD. Ломал себе внутричерепное вещество, месяц компилируя, ищя недостающие пакеты нужный версий и разбираясь с конфликтами. Цель танцов была в том, как на ЦП SU2300 и графике 4500MHD запустить full-HD через HDMI.

На полочке красавчеГ Sony Vaio PCG-505TS 1999года, тоньше макбука айр. 300MHz 64RAM 6.4GB - винды ставиться не захотели ввиду "своих" соньковских адресов IDE контроллера - влез туда Debian 4 c IceWM с ручным прописываем адресов винта и сидюка (два вечера плясок с бубном)

Почему именно Бубунта и ее папа дебиан? - да просто потому, что не надо (а если и надо, то только минимум) почти ничего компилировать, как в Генту, кастрируется на ура (или ставится через NET), жрет гораздо меньше Мандрив, кривость почти отсутсвует (чего не сказать про мелкие недодистры, которых была перепробована тма) и в репах есть ТУЧА софта (от игрушек до 3D планировки квартир, софта для программаторов и чтения кода ошибок авто)

P.S. на шиша лепятся дистрибутивы НА ОСНОВЕ убунты - для меня загадка. Хотя, скорее всего, разрабы денег пытаются срубить, продав бесплатный линукс как творчество свих кривых ручерек (Infralinux, Росинка, UALinux, Runtu, BolgenOS). Стороной от этих быдлосборщиков в последний год встал Mint, пытаясь показать миру, что Canonical не права (но все равно у Минта апдейты кривые, руссификация порой неполная, репы бывает падают, мэйндистрибутив тормозит на половине оборудования)
Buhenwald вне форума  
Непрочитано 26.10.2012, 21:45  
Buhenwald
Частый гость
 
Регистрация: 03.02.2008
Сообщений: 16
Сказал спасибо: 3
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
Buhenwald на пути к лучшему
По умолчанию Re: Linux-ваше мнение

Сообщение от b_raven Посмотреть сообщение
как и с другими дешевыми поделками.
AMD не стремятся выпускать дровишки на своё железо НЕ под винду.
Да и качество их железок ИМХО оставляет желать им .... нет, не оставляет.
С драйверами под *nix-ы у них всяко лучше, чем у интела и разных ВИЙ. Из выявленных тенденций - желание класть болты на пользователей, сидящих на старом АТИшном железе.

С качеством absolutely согласен - оно воняет и не потонет (... а то как это так... монополии вырисовываются)
Buhenwald вне форума  
Непрочитано 26.10.2012, 22:35  
urmlr
Почётный гражданин KAZUS.RU
 
Аватар для urmlr
 
Регистрация: 15.07.2009
Адрес: San Jose, USA
Сообщений: 927
Сказал спасибо: 11
Сказали Спасибо 228 раз(а) в 166 сообщении(ях)
urmlr на пути к лучшему
По умолчанию Re: Linux-ваше мнение

Сообщение от hacker7 Посмотреть сообщение
а конкретно,
kernel\linux-3.5.7\arch\c6x\include\asm\delay.h
не откажу себе в "удовольствии" процитировать:
Хм, с6х - это Техасские ДСП, на которых и линух-то нормальный не бегает, только uClinux, нечто вроде WinCE... То есть, это никак не Интел-АМД...

В х86 как раз задержка сделана нормально, через TSC. Это раз...

Сообщение от hacker7 Посмотреть сообщение
теперича смотрим, где в драйверах АТА встречается этот udelay
например, здесь:
kernel\linux-3.5.7\drivers\ata\pata_legacy.c
pata_legacy драйверы работают по PIO, у них нет ни DMA, ни прерываний. Так что, даже и в busy-loop можно ждать, всё равно всё это работает при разрешённых прерываниях.

Не совсем корректная оценка у Вас, уважаемый.

Плюс:

Сообщение от hacker7 Посмотреть сообщение
Вот ещё фрагментик, не точно на эту тему, но характерный

/* clear start/stop bit */
out_be32(bmid_base + SCC_DMA_CMD,
in_be32(bmid_base + SCC_DMA_CMD) & ~ATA_DMA_START);

кто программировал DMA, оценит
А что Вам, собссно, не понравилось? Читается регистр и пишется обратно как был, за исключением одного единственного бита, ATA_DMA_START, который как раз сброшен в 0.

Сообщение от hacker7 Посмотреть сообщение
вот интересно, во что компилится сие чудо. Неужели нельзя было написать в кодах. аааааа они потерялись в то ли не знают ассемблера в то ли стремились к переносимости кода, который по содержанию в принципе никуда кроме x86 непереносим
Ошибаетесь, уважаемый. Причём по полной программе, по самое "нехочу"

Именно потому и написаны все эти inb/outb/in_be32 и иже с ними, чтобы на каждой платформе компилялись во что-то на этой платформе работающее, а вовсе не потому что товарисчи в ассемблер не въезжают.

У меня лично компиляется и работает и на ARMах и на MIPSах. Не легаси конечно, но очень похожий код в других драйверах.

Вы шо же думаете, мало было таких, которые прибегали и требовали написать на ассемблере? А также таких что требовали перейти на С++? Отстреливать не успеваем! (шютка ) Только вот эти товарисчи Ваши, как раз, и не понимают ничего.

Сообщение от hacker7 Посмотреть сообщение
Что до возможной потери прерываний, каюсь и приношу извинения: примера сейчас найти не могу. Но помню, что искал и врожде находил работу с прерываниями ATA и именно с задержечками подобного стиля.
Судя по тому, как Вы для, по Вашему же мнению (хоть и неверному), кода, который работает исключительно на х86, приводите пример задержки из кода техасского дсп, неудивительно что найдёте всё что угодно .

Сообщение от hacker7 Посмотреть сообщение
"Не покажет и не разъяснит, ибо исходники не смотрел. Или смотрел, но ничего не понял. И его опус расчитан на тех, кто тоже не смотрел."

Всё, стираю с диска эту курсовую на 130 мегабайт
К сожалению, смотреть исходники и понимать их - это не одно и то же.

Вообще, Билл Гейтс очень умный человек. Недаром он своих исходников не даёт никому, ибо знает что полно таких вот, которые посмотрят и не поняв начнут глаголить. А ему это нахрена?

Так что, гоняйте его код, уважаемый, который Вы никогда не видели и не увидите. И Вам, и нам спокойнее
urmlr вне форума  
Сказали "Спасибо" urmlr
elstop (28.10.2012)
Непрочитано 27.10.2012, 11:24  
UdAvSt
Частый гость
 
Регистрация: 13.06.2009
Сообщений: 7
Сказал спасибо: 3
Сказали Спасибо 1 раз в 1 сообщении
UdAvSt на пути к лучшему
По умолчанию Re: Linux-ваше мнение

Сообщение от KBH-I Посмотреть сообщение
Для тех, кто в танке, повторяю: мне ставить Линукс не на десктоп, а на нетбук. На нём стояла предустановленная 7, дико тормозила, поставил ХР. Дрова под ХР на его железо не рассчитаны, хотя и совместимы - имхо, самодельные или плохо крякнутые.
Так вот: который из Линуксов мне на него ставить, если даже под ХР на него нормальных дров нет?
Я на свой Asus1201PN - Linux Mint поставил, всё оборудование подхватлось, даже в командировках сканеры, принтеры, мфу и камеры втыкал - работает всё и сразу, без какого либо инета и обновления дров

Последний раз редактировалось UdAvSt; 27.10.2012 в 11:27.
UdAvSt вне форума  
Непрочитано 27.10.2012, 18:28  
hacker7
Вид на жительство
 
Регистрация: 07.01.2007
Адрес: Ленинградская обл
Сообщений: 428
Сказал спасибо: 147
Сказали Спасибо 71 раз(а) в 56 сообщении(ях)
hacker7 на пути к лучшему
По умолчанию Re: Linux-ваше мнение

Насчёт фрагмента с DMA
dMA не будет перепрограммирован на 50% машин, потому что вот именно здесь задержка нужна. Т е указанный бит не будет изменен
Я указал, что фрагмент -типичен-, то есть такое далеко не в одном месте. Это изменение бита просто выхвачено наугад, увидел по ходу среди множества очень похожих фрагментов в самых разных местах.
И я не случайно написал "во что оно компилируется"? вдруг он решит прочитать регистр 2 раза. Не для всех регистров это допустимо.

Теперь вернемся к установке режима PIO (приведённый мной фрагмент). Если указанная в тексте задержка не подойдёт (а это опять-таки весьма вероятно, потому что код писался, когда процессоры были медленнее в 10 раз), то режим не будет установлен.
Смотрим:
машина работала в винде. Установлен режим DMA
не выключая, загрузили этот линь. Инициализация не прошла из-за неверных задержек. Так и остался режим DMA. Теперь винт делает неизвестно что и -пишет неизвестно что- или -читает неизвестно куда-.
Замечу, что в моём случае залётов это был не загрузочный винт на отдельном шлейфе.

Ваше замечание про то, что приведенный пример неактуален, принимаю лишь наполовину. Я НЕ ЗНАЮ, какой контроллер стоял на той машине; но я посмотрел всю директорию с драйверами, там такое почти везде за искл 1-2. Вы можете сказать, что это ваще не для той платформы - но там везде только такое, исключения единичны. Пример же с работой с DMA, повторю, просто выхвачен из текстов наугад, это типично, там практически весь код такой.

Кто не верит, смотрите код ядра сами.

Каждый, кто разрабатывал приложения на микрухах, знаком с такой ситуацией: что-то оно почему-то не работает, хотя все сделано правильно по листочкам. - а ты вставь задержку. - вставили, работает. Это годится для конкретной прошивки на конкретное железо, которое не будет изменяться, и то очень желательно потом всё-таки найти грамотное решение. То есть это, в сущности, затычка при спешке.
Теперь видим такое в ядре линукс - систематически. Но железо сильно меняется. Те константы циклов, что работали на Пентиум-100, могут не пройти на 2 Ггц. А могут и пройти. В основном зависит от чипсета.
А что надо было делать?
Грамотную службу управления времением, грамотный диспетчер ресурсов и задач и т п

Что из классических школьных вещей не сделано в винде, это известно, перечислять не буду. Сошлюсь на результаты иссл. Насси-Шнейдермана: пользователь терпит такие недостатки, которые проявляются предсказуемо. В винде глюки проявляются более-менее предсказуемо. Здесь - когда залетит винт, неизвестно. После удаления линукса не залетал ни разу. Прошло примерно 2 года.

Здесь был возможен такой подход: как только появились стирания начала винта, надо было более внимательно прочесть исходники, предварительно определив, какие микросемы стоят в машине, и какой именно модуль следует смотреть (вот как Вы пишете). Найти ошибку именно в соотв модуле притом именно того ядра (конкретно это было какое-то SUSE с ядром версии меньше 3) Исправить ошибку, КТО ЖЕ МНЕ МЕШАЕТ, РАЗ Я ТАКОЙ УМНЫЙ?!

но я линукс просто снял с реальной работы, и вот докладываю

Последний раз редактировалось hacker7; 27.10.2012 в 18:52.
hacker7 вне форума  
Непрочитано 27.10.2012, 22:23  
urmlr
Почётный гражданин KAZUS.RU
 
Аватар для urmlr
 
Регистрация: 15.07.2009
Адрес: San Jose, USA
Сообщений: 927
Сказал спасибо: 11
Сказали Спасибо 228 раз(а) в 166 сообщении(ях)
urmlr на пути к лучшему
По умолчанию Re: Linux-ваше мнение

Сообщение от Gerbicid Посмотреть сообщение
У меня от этой темы даже линукс на компьютере затошнило
Сообщение от aleksandr_zh Посмотреть сообщение
Gerbicid,
вывод: Линукс - слабак
Выставь пальчик, откусят масалыгу под корень!
urmlr вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интересно любое мнение и совет FOLKSDOICH Источники питания и свет 75 10.10.2011 22:36
Ваше мнение об твердотельном ЖД roog Отвлекитесь, эмбеддеры! 7 04.12.2009 21:23
Ваще мнение об 1804 NA1S Микроконтроллеры, АЦП, память и т.д 4 15.01.2009 19:46
Взаимоотношения начальник-подчиненный. Ваше мнение. vo1 Отвлекитесь, эмбеддеры! 189 20.06.2008 13:26
[Решено] Цифровая паяльная станция - какое мнение? Делимся опытом 16 29.04.2005 22:51


Часовой пояс GMT +4, время: 12:05.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot