Для таких дел DMA хорошо подходит. Делаешь в памяти данные для записи в GPIO порты и потом по таймеру ДМА сам дергает ножками в весьма хорошей скоростью и точностью. Так же и принимать можно — ДМА читает порт поу таймеру и складывает в память. Делаешь оверсампл в 3-4 раза и потом легко восстанавливаешь входные данные. Я так софт-uart делал на lpc1769.
Есть грейды и выше: 7, 8, 9, 10 и 11. Но они уже практически директорские — со стороны сюда нанимают очень редко. Рядовые разработчики с сотрудниками этих грейдов обычно даже не взаимодействуют.
Это зависит. Л-7 бывают вполне обычными разработчиками занимающимися чем-то сильно полезным для всех.
Вы упомянули о clang static analyzer а это не санитайзер. А в "динамические valgrind и sanitizer" не совсем очевидно, что речь именно о -fsanitize в clang/gcc. Будем считать что упомянули. :-)
Для вашего примера санитайзер не нужен. Clang такое ловит сам с -Wall -Werror во врямя компиляции: https://godbolt.org/z/Edc4rq
source:5:7: error: variable 'b' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
if (a != 5) b = 5;
^~~~~~
source:6:16: note: uninitialized use occurs here
std::cout << b << '\n'; // b is still uninit if a == 5, UB
^
source:5:3: note: remove the 'if' if its condition is always true
if (a != 5) b = 5;
^~~~~~~~~~~~
source:3:11: note: initialize the variable 'b' to silence this warning
int a, b; // b is uninit
^
= 0
1 error generated.
Здорово.
Вот бы еще HidReport байты обернуть в классы чтоб можно было по человечески редактировать.
Да, bitbang USB это развлечение не для слабонервных. Снимаю шляпу. :-)
Спасибо, не знал. На lpc17хх ДМА тактируется от CCLK — те же 100/120MHz что и core, если память не изменяет.
Для таких дел DMA хорошо подходит. Делаешь в памяти данные для записи в GPIO порты и потом по таймеру ДМА сам дергает ножками в весьма хорошей скоростью и точностью. Так же и принимать можно — ДМА читает порт поу таймеру и складывает в память. Делаешь оверсампл в 3-4 раза и потом легко восстанавливаешь входные данные. Я так софт-uart делал на lpc1769.
Про гугл в принципе описано адекватно.
Это зависит. Л-7 бывают вполне обычными разработчиками занимающимися чем-то сильно полезным для всех.
Вы упомянули о clang static analyzer а это не санитайзер. А в "динамические valgrind и sanitizer" не совсем очевидно, что речь именно о
-fsanitizeв clang/gcc. Будем считать что упомянули. :-)Для вашего примера санитайзер не нужен. Clang такое ловит сам с
-Wall -Werrorво врямя компиляции:https://godbolt.org/z/Edc4rq
Вроде как он уже все вышеописанное (и много чего еще) делает.
По официальным данным — 300 Ватт: www.amd.com/en/products/graphics/amd-radeon-rx-6900-xt
Это тул для тестирования а не сам компилятор.