ASSEMBLER.Помогите решить задание.
Объяснить что необходимо сделать чтобы выполнить оператцию ST (R0),(R4). Написать значение контрольных битов для каждого шага.
Объяснить что необходимо сделать чтобы выполнить оператцию ST (R0),(R4). Написать значение контрольных битов для каждого шага.
Всем огромный привет.Есть библиотека kekelele/python_j2534 под win которая импортирует некоторые функции из dll(сначала ищет в реестре если есть драйвер и вытягивает путь). Так вот при вытягивании с рестра проблем нет.
C:\Users\david\OneDrive\Desktop\python_j2534-master>python3 01_GetDevices.py
0 {‘Name’: ‘OpenPort 2.0 J2534 ISO/CAN/VPW/PWM’, ‘FunctionLibrary’: ‘C:\Windows\SysWOW64\op20pt32.dll’}
А уже при импотре с не уже что то начинается.
C:\Users\david\OneDrive\Desktop\python_j2534-master>python3 02_ReadVersion.py
Could not find module ‘op20pt32.dll’ (or one of its dependencies). Try using the full path with constructor syntax. Could be a missing dependancy dll for ‘op20pt32.dll’. (Directory for dll: ‘C:\Windows\SysWOW64\op20pt32.dll’)
Вот код что выполняется: 02_ReadVersion.py
Спотыкается вот тут : строка 19 J2534.setDevice(index)
Собственно есть динамическая библиотека которую собралл с исходников j2534.so.В ней есть возможность включить вывод лога но за неимением знаний и незнанием языка я не понимаю как это сделать.
Ссылка на исходники GitHub NikolaKozina/j2534
Вот что пишет в j2534.с:
«To enable runtime debug logging to the file /tmp/op.log, create an environment variable with the name LOG_ENABLE and set it to a non-zero value.»
У меня есть некая программа которая подключает .so библиотеку с помощью dlopen и вытягивает функции.
#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
long unsigned int* pDeviceID;
void *dlopen (const char *filename, int flag);
void *library_handler;
long(*PassThruOpen)(const void* , unsigned long*);
char *error;
int main(void) // определяем функцию main
{
if (!library_handler){
//если ошибка, то вывести ее на экран
fprintf(stderr,"dlopen() error: %s\n", dlerror());
// в случае ошибки можно, например, закончить работу программы
};
PassThruOpen = (long (*)(const void* , unsigned long*)) dlsym(library_handler, "PassThruOpen");
error = dlerror();
if (error != NULL) {
fprintf(stderr, "%s\n", error);
}
PassThruOpen(NULL,pDeviceID);
printf("OK!"); // выводим строку на консоль
return 0; // выходим из функции
}
Но как через нё включить вывод лога не понмаю(