Приветствую Вас Гость | RSS


Главная страница » Разводка офигенно громоздких плат - Страница 49 - ZX-Форум » Регистрация » ВходСреда
2026-01-21
19:45:17
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Разводка офигенно громоздких плат
KOEДата: Пятница, 2008-12-05, 03:12:47 | Сообщение # 721
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2318
Репутация: 5
Статус: Offline
Quote (lvd)
посему бери ноут нормальный с софтом (а не уйописче 'ЫЫЫ' :))

Беру как раз ЫЫЫ, потомуша маленткий и легкий. квардуз на нем работает. прошивку 2.666 компилирут 6 минут sad Против 4 минут на нормальном ноуте и 2-3 минут на нормальном десктопе - 1хрен.


Мы рождены, чтоб сказку сделать былью
"Кто не обломался, тем еще предстоит"
 
KOEДата: Пятница, 2008-12-05, 03:20:54 | Сообщение # 722
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2318
Репутация: 5
Статус: Offline
Кстати, ЧРВ, Вадир, если еще (уже) не спите, то возьмите хто-нить ps2 кловетуру для пента 2.666, у мну в сумку не влезаед biggrin

Мы рождены, чтоб сказку сделать былью
"Кто не обломался, тем еще предстоит"
 
lvdДата: Пятница, 2008-12-05, 09:52:10 | Сообщение # 723
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2528
Репутация: 13
Статус: Offline
Клаву взял

Многого нет здесь: http://lvd.nedopc.com
 
KOEДата: Вторник, 2009-01-06, 01:53:58 | Сообщение # 724
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2318
Репутация: 5
Статус: Offline
Надысь написал прогу в цбилдере, чтобы заливала fpga в пентагоне 2.666 через UART, чтобы каждый раз не перешивать контроллер для смены прошивки fpga. Все в порядке, да работает только в win9x, т.к. я не стесняясь гадил в порты вот так:

void portout(unsigned short portaddr, unsigned char data)
{
__asm
{
mov al,data;
mov dx,portaddr;
out dx,al;
}; //break;
}
unsigned char portin(unsigned short portaddr)
{
unsigned char buffer;
__asm
{
xor al,al;
mov dx,portaddr;
in al,dx;
mov buffer,al
}; // break;
return buffer;
}

В win2k и старшее не работает, естественно. Но хотелось бы, чтобы работало. Хочу сделать работу через драйверочег. Соответственно, может, кто научит, как это сделать, а еще лучше, если поделится ссылкой на драйвер и тфм к нему. Я кое-чего нагуглил, но оно каждый раз при старте пишет "я шареваре, дай денег".


Мы рождены, чтоб сказку сделать былью
"Кто не обломался, тем еще предстоит"
 
нолькаДата: Вторник, 2009-01-06, 08:06:48 | Сообщение # 725
рОвный
Группа: Человеки
Сообщений: 712
Репутация: 5
Статус: Offline
может это поможет.

аа, блин, уарт.


я проснулся среди ночи и понял, что всё...
всё идет по плану


Сообщение отредактировал нолька - Вторник, 2009-01-06, 08:07:41
 
deathsoftДата: Вторник, 2009-01-06, 17:00:15 | Сообщение # 726
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Репутация: 9
Статус: Offline
Quote (KOE)
Я кое-чего нагуглил, но оно каждый раз при старте пишет "я шареваре, дай денег".

Пропатчить, либо заюзать giveio.sys, оно бесплатное - но открывает все порты всем процессам - поэтому запускать его только на момент прошивки, а потом выключать.

Драйверок написать нормальный тоже можно, но боюсь ты это не осилишь. ели никогда драйвера под nt не писал, ибо там не все так просто и куча всякой специфики есть.

Кстати, а раз там уарт - нафига драйверок то? Драйвера только для лпт нужны - у уарта стандартный протокол. открой девайс \\.\COM1: и пиши в него что надо. Посмотри в мсдн как ком порты програмятся.

Сообщение отредактировал deathsoft - Вторник, 2009-01-06, 17:03:18
 
KOEДата: Вторник, 2009-01-06, 20:34:05 | Сообщение # 727
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2318
Репутация: 5
Статус: Offline
Проблема пока так и не решена. Подключил giveio.sys - венда перестала ругаться на прямое обращение в порты, но и работать не начала. Не пишет ничего, читает всегда 0xff. При этом в win98 работает.

Попробовал использовать windows API:

Code


DCB dcb;
ZeroMemory (&dcb,sizeof(DCB));
HANDLE hCom_1 = NULL;
hCom_1 = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE,0,NULL,
OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL);

if(hCom_1==INVALID_HANDLE_VALUE) ShowMessage("Работа с COM-портом не представляется возможной");
if(!GetCommState(hCom_1,&dcb))
{
CloseHandle(hCom_1);
ShowMessage("GetCommState error");
}
else {
dcb.BaudRate = CBR_38400;
dcb.ByteSize = 8;
dcb.StopBits = ONESTOPBIT;
dcb.Parity = NOPARITY; // naher ibo neher
};

if(!SetCommState(hCom_1,&dcb))
{CloseHandle(hCom_1);
ShowMessage("Не удается задать конфигурацию COM-порта"); };

// !!! Здесь начинаются глюки

   unsigned long bytewrite=1;
   char a=1;
   if(!WriteFile(hCom_1, &a, sizeof(char), &bytewrite, NULL)) ShowMessage("!!Не пишет ни фига");

Доходит до записи в файл без ошибок, при записи выдает "!!Не пишет ни фига". Порт, естественно, молчит.


Мы рождены, чтоб сказку сделать былью
"Кто не обломался, тем еще предстоит"
 
KOEДата: Вторник, 2009-01-06, 21:50:57 | Сообщение # 728
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2318
Репутация: 5
Статус: Offline
Все заработало, воспользовался исходником отсюда http://forum.shelek.ru/index.php/topic,7083.0.html

Мы рождены, чтоб сказку сделать былью
"Кто не обломался, тем еще предстоит"
 
deathsoftДата: Вторник, 2009-01-06, 23:26:57 | Сообщение # 729
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Репутация: 9
Статус: Offline
Quote (KOE)
Все заработало

Видишь - и никакого драйвера не нужно, удали гивио.сис от греха подальше.


Сообщение отредактировал deathsoft - Вторник, 2009-01-06, 23:27:10
 
KOEДата: Среда, 2009-01-07, 00:02:11 | Сообщение # 730
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2318
Репутация: 5
Статус: Offline
Quote (deathsoft)
Видишь - и никакого драйвера не нужно

И работает во всех маздаях без каких-либо дополнительных настроек. Разве что в vista и в xp не проверял за неимением оных.
Quote (deathsoft)
удали гивио.сис от греха подальше.

Ога, чтобы злодеи вроде лвд не заслали мне вирус, пишущий в COM порт случайные числа и не убили едва родившуюся прошивку fpga.


Мы рождены, чтоб сказку сделать былью
"Кто не обломался, тем еще предстоит"
 
KOEДата: Среда, 2009-01-07, 00:23:58 | Сообщение # 731
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2318
Репутация: 5
Статус: Offline
Кстати, еще вопросик. Есть ли в стандартных функциях работы с файлами такая, чтобы возвращала длину файла в байтах?

Мы рождены, чтоб сказку сделать былью
"Кто не обломался, тем еще предстоит"
 
WowikДата: Среда, 2009-01-07, 00:40:21 | Сообщение # 732
Disk error
Группа: Человеки
Сообщений: 96
Репутация: 0
Статус: Offline
GetFileSize

Описание - http://msdn.microsoft.com/en-us/library/aa364955 (VS.85).aspx

 
KOEДата: Среда, 2009-01-07, 01:09:11 | Сообщение # 733
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2318
Репутация: 5
Статус: Offline
Спасибо, сам уже тоже научился, двумя способами даже.

Если использовать io.h
FILE *F;
unsigned long s;
s=filelength(fileno(F))

Или если ее не использовать, то

FILE *F;
unsigned long s;
fseek(F,0L,2);
s=ftell(F);
fseek(F,0L,0);


Мы рождены, чтоб сказку сделать былью
"Кто не обломался, тем еще предстоит"
 
WowikДата: Среда, 2009-01-07, 01:18:12 | Сообщение # 734
Disk error
Группа: Человеки
Сообщений: 96
Репутация: 0
Статус: Offline
Вообще у меня по сям много всякой литературы, могу поделиться на время, числа восьмого (во второй половине.... ) smile
 
deathsoftДата: Среда, 2009-01-07, 02:09:25 | Сообщение # 735
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Репутация: 9
Статус: Offline
Лучше для чтения бинарных файлов не FILE * использовать и fread, а просто open/read/seek/close/filelength. Подчеркивания перед функциями и константами естественно фтопку, ибо микрософщина.

[url=http://msdn.microsoft.com/en-us/library/z0kc8e3z(VS.71).aspx]http://msdn.microsoft.com/en-us/library/z0kc8e3z(VS.71).aspx[/url]

 
Поиск:

the DLCorp © 2006