Проблема заключается в том, что при достижении конца цикла, dma подстовывает цап нулевое значение.
dma_init_struct.memory_addr = (uint32_t)_binary_C__data_for_MC_2_bin_start + 20;dma_init_struct.number на 1, а потом увеличить dma_init_struct.memory_addr на 2 и понаблюдать за тем, не исчезает ли эффект. Отсюда вывод, что если происходит запись в исполняемую кеш-линию, то добавляется 100 наносекунд, и под 50-100 раз падает скорость .И я не могу загуглить почему так.
Какой минимальный набор изменений требуется в main.rs чтобы было понимание что выполнение находится в _start?
-d in_asm,exec и смотреть в лог выполнения.Какой командой лучше запускать qemu чтобы происходило размещение в памяти и передача управления ELF?
-kernel.Если запускать через -device loader, какой адрес (dts в спойлере ниже) необходимо указать (и можно ли так вообще)?
Можно ли запускать через параметр -kernel и, если да, то как?
если вернуть графику то в окне вместо такой же пустой консольной строки уже другая с вводом команд в qemu).
-monitor none. (a + i) (API) и (-1)^i (M1PI), переменную для результата (result), текущее слагаемое собирать в регистре 1. На каждой итерации вычислять текущее слагаемое ряда, прибавлять его к результату, а потом обновлять значения (-1)^i и (a + i) для следующей итерации. Как-то так:movr 0, N
srm 0, ONE
jz PRINT
CYCL:
movr 1, M1PI
mrm 1, API
arm 1, result
movm 1, result
mmm M1PI, M1
amm API, ONE
loop CYCL
PRINT:
movr 1, result
out 1
stop
ONE: .dw 1
M1: .dw -1
M1PI: .dw 1
API: .dw 1
result: .dw 0
end декодирование кода Хэмминга происходит неверно(да и приём байт в целом), если в цикле заполнения буфера отсутствует вывод serial
for(int i = 0;i<24;++i) {
sendByte(block[i]);
Serial.print(block[i],HEX);Serial.print(' ');
}for(int i = 0;i<10;++i) {
uint8_t byte1 = receiveByte();uint8_t byte2 = receiveByte();
buffer[i*2] = byte1; buffer[i*2+1] = byte2;
//delay(200);
Serial.print(byte1,HEX); Serial.print(' '); Serial.print(byte2,HEX);Serial.print(' ');
}Serial.print() или других функций с переменным временем выполнения в алгоритм требующий работы в режиме реального времени. int mat(int ***matrix, int m, int n) {
int mat(int **matrix, int m, int n) {
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++) {
printf("x: %d / y: %d / ", i, j);
matrix[i][j] = 1;
}
return 0;
}
int mato(int **matrix, int m, int n) {
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
if (j == m - 1) {
printf("%d\n", matrix[i][j]);
} else {
printf("%d ", matrix[i][j]);
}
return 0;
}
int main() {
int **matrix = malloc(XMAX * YMAX * sizeof(int) + XMAX * sizeof(int*));
...
if (mat(matrix, XMAX, YMAX) != 0) {
free(matrix);
return 1;
}
mato(matrix, XMAX, YMAX);
...
}mat(&matrix[0][0], XMAX, YMAX)matrix --- это не настоящий двумерный массив, и matrix и &matrix[0][0] указывают в разные места.Теоретически, это позволит делать вызов функции за один (или несколько) тактов, и при этом не сохранять не только регистр возврата, но и другие временные регистры, или регистры передающие параметры.
Адрес возвртата недоступен, и его не только не перезапишут, но и не узнают.
ld.exe: .pio\build\desktop\test\desktop\test_user\user.test.o: in function `test_only_strongest_zone_applies()':
P:\stalker\dosimetr-arduino/test/desktop/test_user/user.test.cpp:31:(.text+0x104): undefined reference to `User::updatePosition(GpsPosition const&)'
User не определены.в какую сторону копать
objects/User.hpp или где-то ещё, и понять, каким образом должен собираться этот код. я использовал микроконтроллер Attiny13, прослушивающий по UART последовательность команд, поэтому для загрузки нового кода достаточно любого адаптера USB-UART.
выдаёт ошибку
insmod: ERROR: could not insert module flc2.ko: Invalid parameters
flc2_module_init() возвращает -EINVAL. Заглянув в единственную функцию register_qdisc() которую ты вызываешь, можно увидеть следующее:if (qops->peek == NULL) {
if (qops->dequeue == NULL)
qops->peek = noop_qdisc_ops.peek;
else
goto out_einval;
}peek == NULL и dequeue != NULL гарантированно приводит к ошибке которую ты наблюдаешь.flc2_qdisc_ops. А как быть, если истек срок годности sub ключа, которым шифровались пароли?
Ну или другой вариант, украли телефон и всё.
При этом есть секретный ключ.
cout << (args << ...) << endl; надо было написать (cout << ... << args) << endl;почему ж в результате оно себя ведёт так, как будто скобки есть??
Какой приоритет операций, разворачивающихся из fold-expression?
Вот вывод ошибки make test в директории src
make test в каталоге src, когда у проекта есть система сборки основанная на CMake и можно запускать make test в каталоге где выполняется сборка?make test в каталоге сборки тоже завершается успешно: 100% tests passed, 0 tests failed out of 132cd /home/jcmvbkbc/tmp/tests/1390844/kaldi/build/src/matrix && /usr/bin/c++ -DHAVE_CLAPACK=1 -DKALDI_NO_PORTAUDIO=1 -Dkaldi_matrix_EXPORTS -I/home/jcmvbkbc/tmp/tests/1390844/kaldi/build/_deps/openfst-src/src/include -I/home/jcmvbkbc/tmp/tests/1390844/kaldi/tools/CLAPACK -I/home/jcmvbkbc/tmp/tests/1390844/kaldi/src/matrix/.. -I/home/jcmvbkbc/tmp/tests/1390844/kaldi/src/base/.. -fPIC -std=c++14 -MD -MT src/matrix/CMakeFiles/kaldi-matrix.dir/kaldi-matrix.cc.o -MF CMakeFiles/kaldi-matrix.dir/kaldi-matrix.cc.o.d -o CMakeFiles/kaldi-matrix.dir/kaldi-matrix.cc.o -c /home/jcmvbkbc/tmp/tests/1390844/kaldi/src/matrix/kaldi-matrix.cc