LINUX.ORG.RU

Запуск dll


0

1

Вобщем есть
1. arm устройство с goforce 5500 (гОфорсе и не гефорсе, это soc ускаритель)
2. windows mobile dll : libgfsdk.dll в которой собрано все для работы чипа. исходников и библиотеки нету.

задача. как то слинковать эту dll с ядром.
как я себе представляю это надо написать какуюто обертку.
но даже не знаю с чего начать ибо не разу с таким не стал с таким.

PS ресивинг отпадает. там черт ногу сломит.

dll import

10164000 36   __imp_LocalFree                 COREDLL
10164004 1047 __imp_memset                    COREDLL
10164008 1044 __imp_memcpy                    COREDLL
1016400C 323  __imp_GetStoreInformation       COREDLL
10164010 719  __imp_sprintf                   COREDLL
10164014 88   __imp_GlobalMemoryStatus        COREDLL
10164018 494  __imp_EventModify               COREDLL
1016401C 196  __imp_MultiByteToWideChar       COREDLL
10164020 1041 __imp_malloc                    COREDLL
10164024 1068 __imp_strlen                    COREDLL
10164028 455  __imp_RegCloseKey               COREDLL
1016402C 1018 __imp_free                      COREDLL
10164030 1102 __imp_printf                    COREDLL
10164034 1071 __imp_strncpy                   COREDLL
10164038 197  __imp_WideCharToMultiByte       COREDLL
1016403C 463  __imp_RegQueryValueExW          COREDLL
10164040 461  __imp_RegOpenKeyExW             COREDLL
10164044 553  __imp_CloseHandle               COREDLL
10164048 179  __imp_DeviceIoControl           COREDLL
1016404C 168  __imp_CreateFileW               COREDLL
10164050 1724 __imp_VirtualSetAttributes      COREDLL
10164054 525  __imp_VirtualFree               COREDLL
10164058 560  __imp_VirtualCopy               COREDLL
1016405C 524  __imp_VirtualAlloc              COREDLL
10164060 496  __imp_Sleep                     COREDLL
10164064 621  __imp_CeSetThreadPriority       COREDLL
10164068 622  __imp_CeGetThreadPriority       COREDLL
1016406C 535  __imp_GetTickCount              COREDLL
10164070 538  __imp_QueryPerformanceCounter   COREDLL
10164074 539  __imp_QueryPerformanceFrequency COREDLL
10164078 2002 _rt_udiv64by64                  COREDLL
1016407C 826  __imp_GetAsyncKeyState          COREDLL
10164080 860  __imp_GetKeyState               COREDLL
10164084 181  __imp_FindNextFileW             COREDLL
10164088 993  __imp_atoi                      COREDLL
1016408C 1417 __imp_isctype                   COREDLL
10164090 63   __imp_wcslen                    COREDLL
10164094 516  __imp_GetLastError              COREDLL
10164098 180  __imp_FindClose                 COREDLL
1016409C 167  __imp_FindFirstFileW            COREDLL
101640A0 1118 __imp_fclose                    COREDLL
101640A4 1120 __imp_fread                     COREDLL
101640A8 1131 __imp_ftell                     COREDLL
101640AC 1130 __imp_fseek                     COREDLL
101640B0 1145 __imp_wfopen                    COREDLL
101640B4 1063 __imp_strcat                    COREDLL
101640B8 1066 __imp_strcpy                    COREDLL
101640BC 555  __imp_CreateMutexW              COREDLL
101640C0 1097 __imp_swprintf                  COREDLL
101640C4 497  __imp_WaitForSingleObject       COREDLL
101640C8 556  __imp_ReleaseMutex              COREDLL
101640CC 495  __imp_CreateEventW              COREDLL
101640D0 492  __imp_CreateThread              COREDLL
101640D4 1238 __imp_CreateSemaphoreW          COREDLL
101640D8 1239 __imp_ReleaseSemaphore          COREDLL
101640DC 549  __imp_MapViewOfFile             COREDLL
101640E0 548  __imp_CreateFileMappingW        COREDLL
101640E4 1167 __imp_CreateFileForMappingW     COREDLL
101640E8 529  __imp_FreeLibrary               COREDLL
101640EC 530  __imp_GetProcAddressW           COREDLL
101640F0 528  __imp_LoadLibraryW              COREDLL
101640F4 550  __imp_UnmapViewOfFile           COREDLL
101640F8 2008 _rt_udiv                        COREDLL
101640FC 1065 __imp_strcmp                    COREDLL
10164100 2005 _rt_sdiv                        COREDLL
10164104 1043 __imp_memcmp                    COREDLL
10164108 2012 _utod                           COREDLL
1016410C 2033 _itod                           COREDLL
10164110 2053 _addd                           COREDLL
10164114 1046 __imp_memmove                   COREDLL
10164118 988  __imp_abs                       COREDLL
1016411C 653  __imp_sscanf                    COREDLL
10164120 1072 __imp_strstr                    COREDLL
10164124 514  __imp_SetThreadPriority         COREDLL
10164128 523  __imp_IsBadWritePtr             COREDLL
1016412C 522  __imp_IsBadReadPtr              COREDLL
10164130 1070 __imp_strncmp                   COREDLL
10164134 1091 __imp_toupper                   COREDLL
10164138 1121 __imp_fwrite                    COREDLL
1016413C 1113 __imp_fopen                     COREDLL
10164140 2000 _rt_sdiv64by64                  COREDLL
10164144 2027 _muld                           COREDLL
10164148 2043 _dtou                           COREDLL
1016414C 2052 _utos                           COREDLL
10164150 2021 _stod                           COREDLL
10164154 1407 __imp_strrchr                   COREDLL
10164158 2047 _divs                           COREDLL
1016415C 2026 _muls                           COREDLL
10164160 2018 _stou                           COREDLL
10164164 163  __imp_MoveFileW                 COREDLL
10164168 165  __imp_DeleteFileW               COREDLL
1016416C 172  __imp_GetFileSize               COREDLL
10164170 1122 __imp_fflush                    COREDLL
10164174 2048 _divd                           COREDLL
10164178 1797 __imp_InterruptMask             COREDLL
1016417C 2029 _ltd                            COREDLL
10164180 2032 _itos                           COREDLL
10164184 2020 _stoi                           COREDLL
10164188 2015 _subs                           COREDLL
1016418C 2051 _adds                           COREDLL
10164190 2025 _ned                            COREDLL
10164194 2036 _gts                            COREDLL
10164198 263  __imp_ReleaseDC                 COREDLL
1016419C 1182 __imp_ExtEscape                 COREDLL
101641A0 262  __imp_GetDC                     COREDLL
101641A4 2028 _lts                            COREDLL

Ты уверен, что «все для работы чипа» собрано в dll?
DLL - это прослойка между приложением и драйвером устройства, она обычно не работает с устройством напрямую.
«все для работы чипа» обычно собрано в драйвере устройства, с которым DLL-ка общается через DeviceIOControl.

bigbit ★★★★★
()
Ответ на: комментарий от bigbit

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

вот пример кода который устанавливает окно вывода lcd панели. все функции в этой библиотеке. работает это все через общий участок памяти. проц pxa270, адресное пространство 0x08000000 оно просто пишет по какому то смещению эти данные и вуаля сработало. но в лине запись по этому же смещению ничего не меняет. толи надо какоето гпио дернуть толи какойто бит по какому то смещению посавить чтобы все применилось.

GFRmHandle pm=GFRmOpen( NULL );
GFDxHandle px;
FDxOpen(pm, &(px), GF_STATE_DEFAULT, NULL);
GFDxSetAttributeWithCS(px ,LCD_MAIN, GFDX_ATTR_STARTADDR, 0x2000000);
angellfear
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.