Поиск
Показаны результаты для тегов 'x86'.
-
Оплачу создание патча драйвера PCI устройства. Драйвер программирует GPIO устройства PCI6152, но корректно работает только в слоте с IDSEL=AD16. Нужен патч чтобы оно начало работать в другом слоте, хотя бы вручную править бинарник под каждый слот. В личку. p.s. есть исходинк драйвера для win9x (который корректно работает). там функция выглядит так: if (FindGPIODevice(0x00213388, dwNapalmBus, &dwBus, &dwDevFunc)) { isGPIOInit = 1; pGPIOMask->Data.dwBus = pGPIOMask->Clk.dwBus = pGPIOMask->Strobe.dwBus = dwBus; pGPIOMask->Data.dwDevFunc = pGPIOMask->Clk.dwDevFunc = pGPIOMask->Strobe.dwDevFunc = dwDevFunc; pGPIOMask->Data.RN = 0xC4; pGPIOMask->Data.dInMask = (DWORD)0x0100; pGPIOMask->Data.dInShift = (DWORD)0x08; pGPIOMask->Data.dOutMask = (DWORD)0x0400; pGPIOMask->Data.dOutShift = (DWORD)0x0A; pGPIOMask->Clk.RN = (DWORD)0xC4; pGPIOMask->Clk.dInMask = (DWORD)0x010000; pGPIOMask->Clk.dInShift = (DWORD)0x10; pGPIOMask->Clk.dOutMask = (DWORD)0x040000; pGPIOMask->Clk.dOutShift = (DWORD)0x12; pGPIOMask->Strobe.RN = (DWORD)0xC4; pGPIOMask->Strobe.dInMask = (DWORD)0x1000; pGPIOMask->Strobe.dInShift = (DWORD)0x0C; pGPIOMask->Strobe.dOutMask = (DWORD)0x4000; pGPIOMask->Strobe.dOutShift = (DWORD)0x0E; pGPIOMask->HiVoltage.RN = (DWORD)0xC4; pGPIOMask->HiVoltage.dInMask = (DWORD)0x100000; pGPIOMask->HiVoltage.dInShift = (DWORD)0x14; pGPIOMask->HiVoltage.dOutMask = (DWORD)0x400000; pGPIOMask->HiVoltage.dOutShift = (DWORD)0x16; // Enable all GPIO as Output dwData = PCI_Read_Config(dwBus, dwDevFunc, 0xC4); dwData &= 0xFF0000FF; // C7C6C5C4 dwData |= 0x00222200; PCI_Write_Config(dwBus, dwDevFunc, 0xC4, dwData); } p.p.s. другими словами, не работает устройство как должно, если его номер на шине не 00. т.е. это нули жестко прописаны. если предположить что функция в драйвере для win2k/xp такая же как для win9x, то это последний параметр. ну или что-то очень похожее.
-
Есть исходник в котором переменные double и int64 - компилирую его при помощи DevCpp При этом получаю разный результат при компиляции под x86 и x64. Также замечал, что int64 работал криво в x86. Ещё есть код выдающий один результат, если компилирую только его и совершенно другой результат, когда компилирую в составе проекта (при одинаковых входных данных). Никаких спец библиотек не использую, использую calloc. от версии DevCpp тоже была зависимость На что грешить: стек, выход за массив, оптимизация? PS: Который день туплю...