
āĻŦā§āĻ āĻā§āϰ āĻ āĻāĻļ āĻšāĻŋāϏā§āĻŦā§ 0x0A DC7831 āĻĢā§āĻŦā§āϰā§āϝāĻŧāĻžāϰ⧠16-āĻ, āĻāĻŽāϰāĻž āĻŦāĻžāĻāύāĻžāϰāĻŋ āĻā§āĻĄ āĻāĻŽā§āϞā§āĻļāύā§āϰ āĻŽā§āϞāĻŋāĻ āύā§āϤāĻŋ āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āϰ āύāĻŋāĻāϏā§āĻŦ āĻŦāĻŋāĻāĻžāĻļā§āϰ āĻāĻĒāϰ āĻāĻāĻāĻŋ āĻĒā§āϰāϤāĻŋāĻŦā§āĻĻāύ āĻāĻĒāϏā§āĻĨāĻžāĻĒāύ āĻāϰā§āĻāĻŋ - āĻāĻāĻāĻŋ āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ āĻāĻŽā§āϞā§āĻāϰ .
āĻāĻ āύāĻŋāĻŦāύā§āϧ⧠āĻāĻŽāϰāĻž āĻŦāϰā§āĻŖāύāĻž āĻāϰāĻŦ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻŽā§āϞā§āĻāϰ⧠āĻĄāĻŋāĻāĻžāĻāϏ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āĻāĻžāϞāĻžāύ⧠āϝāĻžāϝāĻŧ, āĻĄāĻŋāĻŦāĻžāĻāĻžāϰā§āϰ āϏāĻžāĻĨā§ āĻŽāĻŋāĻĨāϏā§āĻā§āϰāĻŋāϝāĻŧāĻž āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰāĻž āϝāĻžāϝāĻŧ āĻāĻŦāĻ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰā§āϰ āĻāĻāĻāĻŋ āĻā§āĻ āĻāϤāĻŋāĻļā§āϞ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤
āĻĒā§āϰāĻžāĻāĻāϤāĻŋāĻšāĻžāϏāĻŋāĻ
āĻŦāĻšā§āĻĻāĻŋāύ āĻāĻā§ āĻŦāĻšā§ āĻĻā§āϰā§āϰ āĻāĻ āĻā§āϝāĻžāϞāĻžāĻā§āϏāĻŋāϤā§
āĻāϝāĻŧā§āĻ āĻŦāĻāϰ āĻāĻā§ āĻāĻŽāĻžāĻĻā§āϰ āĻĒāϰā§āĻā§āώāĻžāĻāĻžāϰ⧠āĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāϏā§āϰ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āϤāĻĻāύā§āϤ āĻāϰāĻžāϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻāĻŋāϞāĨ¤ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰāĻāĻŋ āĻāĻāĻāĻŋ āĻŦā§āĻāϞā§āĻĄāĻžāϰ āĻĻāĻŋāϝāĻŧā§ āϏāĻāĻā§āĻāĻŋāϤ āĻāĻŦāĻ āĻāύāĻĒā§āϝāĻžāĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻāĻŋāϞāĨ¤ āϤāĻŋāύāĻŋ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻŦ āĻāĻāĻŋāϞ āĻāĻĒāĻžāϝāĻŧā§ āĻāϰā§āĻā§āύ, āĻŽā§āĻŽāϰāĻŋāϤ⧠āĻĄā§āĻāĻž āϏā§āĻĨāĻžāύāĻžāύā§āϤāϰ āĻāϰā§āĻā§āύ āĻāϝāĻŧā§āĻāĻŦāĻžāϰāĨ¤ āĻāĻŦāĻ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āύāĻŋāĻā§āĻ āϤāĻāύ āϏāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āĻĒā§āϰāĻŋāĻĢā§āϰāĻžāϞāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āϝā§āĻāĻžāϝā§āĻ āĻāϰā§āĻāĻŋāϞāĨ¤ āĻāĻŦāĻ āĻāĻ āϏāĻŦ MIPS āĻā§āϰā§āĨ¤
āĻāĻĻā§āĻĻā§āĻļā§āϝāĻŽā§āϞāĻ āĻāĻžāϰāĻŖā§, āĻāĻĒāϞāĻŦā§āϧ āĻāĻŽā§āϞā§āĻāϰāĻā§āϞāĻŋ āĻāĻŽāĻžāĻĻā§āϰ āĻāύā§āϝ āĻāĻĒāϝā§āĻā§āϤ āĻāĻŋāϞ āύāĻž, āϤāĻŦā§ āĻāĻŽāϰāĻž āĻāĻāύāĻ āĻā§āĻĄāĻāĻŋ āĻāĻžāϞāĻžāϤ⧠āĻā§āϝāĻŧā§āĻāĻŋāϞāĻžāĻŽāĨ¤ āϤāĻžāϰāĻĒāϰ⧠āĻāĻŽāϰāĻž āĻāĻŽāĻžāĻĻā§āϰ āύāĻŋāĻāϏā§āĻŦ āĻāĻŽā§āϞā§āĻāϰ āϤā§āϰāĻŋ āĻāϰāĻžāϰ āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύāĻŋāϝāĻŧā§āĻāĻŋ, āϝāĻž āϏāϰā§āĻŦāύāĻŋāĻŽā§āύ āĻāϰāĻŦā§ āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āϰ āĻŽā§āϞ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰāĻāĻŋ āĻāύāĻĒā§āϝāĻžāĻ āĻāϰāĻžāϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āĻŦā§āĨ¤ āĻāĻŽāϰāĻž āĻāĻāĻŋ āĻā§āώā§āĻāĻž āĻāϰā§āĻāĻŋ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻžāĻ āĻāϰā§āĻā§āĨ¤ āĻāĻŽāϰāĻž āĻā§āĻŦā§āĻāĻŋāϞāĻžāĻŽ, āϝāĻĻāĻŋ āĻāĻŽāϰāĻž āĻŽā§āϞ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āϏāĻā§āĻāĻžāϞāύā§āϰ āĻāύā§āϝ āĻĒā§āϰāĻŋāĻĢā§āϰāĻžāϞ āϝā§āĻ āĻāϰāĻŋāĨ¤ āĻāĻāĻŋ āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻāĻāĻžāϤ āĻāϰā§āύāĻŋ - āĻāĻŦāĻ āĻāĻāĻŋāĻ āĻāĻžāϰā§āϝāĻāϰ āĻšāϝāĻŧā§āĻā§āĨ¤ āĻāĻŽāϰāĻž āĻāĻŦāĻžāϰ āĻāĻŋāύā§āϤāĻž āĻāϰā§āĻāĻŋ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĒā§āϰā§āĻŖāĻžāĻā§āĻ āĻāĻŽā§āϞā§āĻāϰ āϤā§āϰāĻŋ āĻāϰāĻžāϰ āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύāĻŋāϝāĻŧā§āĻāĻŋāĨ¤
āĻĢāϞāĻžāĻĢāϞ āĻāĻāĻāĻŋ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāϰ āϏāĻŋāϏā§āĻā§āĻŽ āĻāĻŽā§āϞā§āĻāϰ āĻāĻŋāϞ .

āĻā§āύ āĻāĻĒāĻŋāĻā§āϝāĻžāĻ?
āĻļāĻŦā§āĻĻ āύāĻŋāϝāĻŧā§ āύāĻžāĻāĻ āĻāĻā§āĨ¤
- copycat (āĻāĻāϰā§āĻāĻŋ, āĻŦāĻŋāĻļā§āώā§āϝ [ËkÉpÉĒkÃĻt]) - āĻ āύā§āĻāϰāĻŖāĻāĻžāϰā§, āĻ āύā§āĻāϰāĻŖāĻāĻžāϰā§
- āĻŦāĻŋāĻĄāĻŧāĻžāϞ (āĻāĻāϰā§āĻāĻŋ, āĻŦāĻŋāĻļā§āώā§āϝ [ËkÃĻt]) - āĻŦāĻŋāĻĄāĻŧāĻžāϞ, āĻŦāĻŋāĻĄāĻŧāĻžāϞ - āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āύāĻŋāϰā§āĻŽāĻžāϤāĻžāĻĻā§āϰ āĻāĻāĻāύā§āϰ āĻĒā§āϰāĻŋāϝāĻŧ āĻĒā§āϰāĻžāĻŖā§
- "K" āĻ āĻā§āώāϰāĻāĻŋ āĻā§āĻāϞāĻŋāύ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻŋāĻ āĻāĻžāώāĻž āĻĨā§āĻā§ āĻāϏā§āĻā§
āĻāĻĒāĻŋāĻā§āϝāĻžāĻ
āĻāĻŽā§āϞā§āĻāϰ āϤā§āϰāĻŋ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻā§āĻŦ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϞāĻā§āώā§āϝ āϏā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻāĻŋāϞ:
- āĻĻā§āϰā§āϤ āύāϤā§āύ āĻĒā§āϰāĻŋāĻĢā§āϰāĻžāϞ, āĻŽāĻĄāĻŋāĻāϞ, āĻĒā§āϰāϏā§āϏāϰ āĻā§āϰ āϤā§āϰāĻŋ āĻāϰāĻžāϰ āĻā§āώāĻŽāϤāĻž;
- āĻŦāĻŋāĻāĻŋāύā§āύ āĻŽāĻĄāĻŋāĻāϞ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻĄāĻŋāĻāĻžāĻāϏ āĻāĻāϤā§āϰāĻŋāϤ āĻāϰāĻžāϰ āĻā§āώāĻŽāϤāĻž;
- āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻĄāĻŋāĻāĻžāĻāϏā§āϰ āĻŽā§āĻŽāϰāĻŋāϤ⧠āϝā§āĻā§āύ⧠āĻŦāĻžāĻāύāĻžāϰāĻŋ āĻĄā§āĻāĻž (āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ) āϞā§āĻĄ āĻāϰāĻžāϰ āĻā§āώāĻŽāϤāĻž;
- āϏā§āύā§āϝāĻžāĻĒāĻļāĻāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāĻžāϰ āĻā§āώāĻŽāϤāĻž (āϏāĻŋāϏā§āĻā§āĻŽ āϏā§āĻā§āĻā§āϰ āϏā§āύā§āϝāĻžāĻĒāĻļāĻ);
- āĻŦāĻŋāϞā§āĻ-āĻāύ āĻĄāĻŋāĻŦāĻžāĻāĻžāϰā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻŽā§āϞā§āĻāϰā§āϰ āϏāĻžāĻĨā§ āϝā§āĻāĻžāϝā§āĻ āĻāϰāĻžāϰ āĻā§āώāĻŽāϤāĻž;
- āĻāύā§āύāϝāĻŧāύā§āϰ āĻāύā§āϝ āϏā§āύā§āĻĻāϰ āĻāϧā§āύāĻŋāĻ āĻāĻžāώāĻžāĨ¤
āĻĢāϞāϏā§āĻŦāϰā§āĻĒ, āĻā§āĻāϞāĻŋāύāĻā§ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύā§āϰ āĻāύā§āϝ āĻŦā§āĻā§ āύā§āĻāϝāĻŧāĻž āĻšāϝāĻŧā§āĻāĻŋāϞ, āĻŦāĻžāϏ āĻāϰā§āĻāĻŋāĻā§āĻāĻāĻžāϰ (āĻāĻāĻŋ āĻšāϞ āϝāĻāύ āĻŽāĻĄāĻŋāĻāϞāĻā§āϞāĻŋ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻĄā§āĻāĻž āĻŦāĻžāϏā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻā§ āĻ āĻĒāϰā§āϰ āϏāĻžāĻĨā§ āϝā§āĻāĻžāϝā§āĻ āĻāϰā§), āĻĄāĻŋāĻāĻžāĻāϏā§āϰ āĻŦāϰā§āĻŖāύāĻžāϰ āĻŦāĻŋāύā§āϝāĻžāϏ āĻšāĻŋāϏāĻžāĻŦā§ JSON āĻāĻŦāĻ āĻĄāĻŋāĻŦāĻžāĻāĻžāϰā§āϰ āϏāĻžāĻĨā§ āĻŽāĻŋāĻĨāϏā§āĻā§āϰāĻŋāϝāĻŧāĻž āĻāϰāĻžāϰ āĻĒā§āϰā§āĻā§āĻāϞ āĻšāĻŋāϏāĻžāĻŦā§ GDB RSPāĨ¤
āĻāύā§āύāϝāĻŧāύ āĻĻā§āĻ āĻŦāĻāϰā§āϰāĻ āĻŦā§āĻļāĻŋ āϏāĻŽāϝāĻŧ āϧāϰ⧠āĻāϞāĻā§ āĻāĻŦāĻ āϏāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āĻāϞāĻā§āĨ¤ āĻāĻ āϏāĻŽāϝāĻŧā§āϰ āĻŽāϧā§āϝā§, MIPS, x86, V850ES, ARM, āĻāĻŦāĻ PowerPC āĻĒā§āϰāϏā§āϏāϰ āĻā§āϰāĻā§āϞāĻŋ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāĻŋāϤ āĻšāϝāĻŧā§āĻāĻŋāϞāĨ¤
āĻĒā§āϰāĻāϞā§āĻĒāĻāĻŋ āĻā§āϰāĻŽāĻŦāϰā§āϧāĻŽāĻžāύ āĻāĻŦāĻ āĻāĻāĻŋ āĻŦā§āϝāĻžāĻĒāĻ āĻāύāϏāĻžāϧāĻžāϰāĻŖā§āϰ āĻāĻžāĻā§ āĻāĻĒāϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧāĨ¤ āĻāĻŽāϰāĻž āĻĒāϰ⧠āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāϰāĻŖ āĻāϰāĻŦ, āϤāĻŦā§ āĻāĻĒāĻžāϤāϤ āĻāĻŽāϰāĻž āĻāĻĒāĻŋāĻā§āϝāĻžāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻāĻĒāϰ āĻĢā§āĻāĻžāϏ āĻāϰāĻŦāĨ¤
āϏāĻŦāĻā§āϝāĻŧā§ āĻ āϧā§āϰā§āϝā§āϰ āĻāύā§āϝ, āĻāĻŽā§āϞā§āĻāϰā§āϰ āĻāĻāĻāĻŋ āĻĒā§āϰāĻāĻžāϰ āϏāĻāϏā§āĻāϰāĻŖ āĻĨā§āĻā§ āĻĄāĻžāĻāύāϞā§āĻĄ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰ⧠.
āĻāĻŽā§āϞā§āĻāϰ⧠āϰāĻžāĻāύā§
āĻāĻŽāĻžāĻĻā§āϰ āϏā§āĻŽāϰāĻŖ āĻāϰāĻž āϝāĻžāĻ āϝ⧠āĻāϰ āĻāĻā§ SMARTRHINO-2018 āϏāĻŽā§āĻŽā§āϞāύā§, āĻŦāĻŋāĻĒāϰā§āϤ āĻĒā§āϰāĻā§āĻļāϞ āĻĻāĻā§āώāϤāĻž āĻļā§āĻāĻžāύā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĒāϰā§āĻā§āώāĻžāĻŽā§āϞāĻ āĻĄāĻŋāĻāĻžāĻāϏ "āĻāĻŖā§āĻĄāĻžāϰ" āϤā§āϰāĻŋ āĻāϰāĻž āĻšāϝāĻŧā§āĻāĻŋāϞāĨ¤ āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āĻŦāĻŋāĻļā§āϞā§āώāĻŖā§āϰ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāĻŋ āĻŦāϰā§āĻŖāύāĻž āĻāϰāĻž āĻšāϝāĻŧā§āĻāĻŋāϞ .
āĻāĻāύ āĻāϏā§āύ "āϏā§āĻĒāĻŋāĻāĻžāϰ" āϝā§āĻ āĻāϰāĻžāϰ āĻāĻŦāĻ āĻāĻŽā§āϞā§āĻāϰ⧠āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āĻāĻžāϞāĻžāύā§āϰ āĻā§āώā§āĻāĻž āĻāϰāĻŋāĨ¤
āĻāĻŽāϰāĻž āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāĻŦā§:
1) āĻāĻžāĻāĻž 1.8
2) āĻĒāĻžāĻāĻĨāύ āĻāĻŦāĻ āĻŽāĻĄāĻŋāĻāϞ āĻāĻŽā§āϞā§āĻāϰā§āϰ āĻāĻŋāϤāϰ⧠āĻĒāĻžāĻāĻĨāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤā§āĨ¤ Jep āĻŽāĻĄāĻŋāĻāϞā§āϰ WHL āĻŦāĻŋāϞā§āĻĄāĨ¤ Windows āĻĒāĻžāϰā§āύ .
āĻĨā§āĻā§ Windows:
1)
2)
āĻĨā§āĻā§ Linux:
1) āϏā§āĻāĻžāĻ
āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ GDB āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻšāĻŋāϏāĻžāĻŦā§ Eclipse, IDA Pro āĻŦāĻž radare2 āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāĻāĻž āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§?
āĻāĻŽā§āϞā§āĻāϰ⧠āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻāϰāĻžāϰ āĻāύā§āϝ, āĻāĻāĻāĻŋ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻĄāĻŋāĻāĻžāĻāϏ "āĻāĻāϤā§āϰāĻŋāϤ āĻāϰāĻž" āĻĒā§āϰāϝāĻŧā§āĻāύ, āϝāĻž āĻāĻāĻāĻŋ āĻŦāĻžāϏā§āϤāĻŦ āĻĄāĻŋāĻāĻžāĻāϏā§āϰ āĻāĻāĻāĻŋ āĻ ā§āϝāĻžāύāĻžāϞāĻāĨ¤
āĻāϏāϞ āĻĄāĻŋāĻāĻžāĻāϏ ("āĻāύā§āĻĄāĻžāϰ") āĻŦā§āϞāĻ āĻĄāĻžāϝāĻŧāĻžāĻā§āϰāĻžāĻŽā§ āĻĻā§āĻāĻžāύ⧠āϝā§āϤ⧠āĻĒāĻžāϰā§:

āĻāĻŽā§āϞā§āĻāϰāĻāĻŋāϰ āĻāĻāĻāĻŋ āĻŽāĻĄā§āϞāĻžāϰ āĻāĻžāĻ āĻžāĻŽā§ āϰāϝāĻŧā§āĻā§ āĻāĻŦāĻ āĻā§āĻĄāĻŧāĻžāύā§āϤ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻĄāĻŋāĻāĻžāĻāϏāĻāĻŋ āĻāĻāĻāĻŋ JSON āĻĢāĻžāĻāϞ⧠āĻŦāϰā§āĻŖāύāĻž āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤
JSON 105 āϞāĻžāĻāύ
{
"top": true,
// Plugin name should be the same as file name (or full path from library start)
"plugin": "rhino",
// Directory where plugin places
"library": "user",
// Plugin parameters (constructor parameters if jar-plugin version)
"params": [
{ "name": "tty_dbg", "type": "String"},
{ "name": "tty_bt", "type": "String"},
{ "name": "firmware", "type": "String", "default": "NUL"}
],
// Plugin outer ports
"ports": [ ],
// Plugin internal buses
"buses": [
{ "name": "mem", "size": "BUS30" },
{ "name": "nand", "size": "4" },
{ "name": "gpio", "size": "BUS32" }
],
// Plugin internal components
"modules": [
{
"name": "u1_stm32",
"plugin": "STM32F042",
"library": "mcu",
"params": {
"firmware:String": "params.firmware"
}
},
{
"name": "usart_debug",
"plugin": "UartSerialTerminal",
"library": "terminals",
"params": {
"tty": "params.tty_dbg"
}
},
{
"name": "term_bt",
"plugin": "UartSerialTerminal",
"library": "terminals",
"params": {
"tty": "params.tty_bt"
}
},
{
"name": "bluetooth",
"plugin": "BT",
"library": "mcu"
},
{ "name": "led_0", "plugin": "LED", "library": "mcu" },
{ "name": "led_1", "plugin": "LED", "library": "mcu" },
{ "name": "led_2", "plugin": "LED", "library": "mcu" },
{ "name": "led_3", "plugin": "LED", "library": "mcu" },
{ "name": "led_4", "plugin": "LED", "library": "mcu" },
{ "name": "led_5", "plugin": "LED", "library": "mcu" },
{ "name": "led_6", "plugin": "LED", "library": "mcu" },
{ "name": "led_7", "plugin": "LED", "library": "mcu" },
{ "name": "led_8", "plugin": "LED", "library": "mcu" },
{ "name": "led_9", "plugin": "LED", "library": "mcu" },
{ "name": "led_10", "plugin": "LED", "library": "mcu" },
{ "name": "led_11", "plugin": "LED", "library": "mcu" },
{ "name": "led_12", "plugin": "LED", "library": "mcu" },
{ "name": "led_13", "plugin": "LED", "library": "mcu" },
{ "name": "led_14", "plugin": "LED", "library": "mcu" },
{ "name": "led_15", "plugin": "LED", "library": "mcu" }
],
// Plugin connection between components
"connections": [
[ "u1_stm32.ports.usart1_m", "usart_debug.ports.term_s"],
[ "u1_stm32.ports.usart1_s", "usart_debug.ports.term_m"],
[ "u1_stm32.ports.usart2_m", "bluetooth.ports.usart_m"],
[ "u1_stm32.ports.usart2_s", "bluetooth.ports.usart_s"],
[ "bluetooth.ports.bt_s", "term_bt.ports.term_m"],
[ "bluetooth.ports.bt_m", "term_bt.ports.term_s"],
[ "led_0.ports.pin", "u1_stm32.buses.pin_output_a", "0x00"],
[ "led_1.ports.pin", "u1_stm32.buses.pin_output_a", "0x01"],
[ "led_2.ports.pin", "u1_stm32.buses.pin_output_a", "0x02"],
[ "led_3.ports.pin", "u1_stm32.buses.pin_output_a", "0x03"],
[ "led_4.ports.pin", "u1_stm32.buses.pin_output_a", "0x04"],
[ "led_5.ports.pin", "u1_stm32.buses.pin_output_a", "0x05"],
[ "led_6.ports.pin", "u1_stm32.buses.pin_output_a", "0x06"],
[ "led_7.ports.pin", "u1_stm32.buses.pin_output_a", "0x07"],
[ "led_8.ports.pin", "u1_stm32.buses.pin_output_a", "0x08"],
[ "led_9.ports.pin", "u1_stm32.buses.pin_output_a", "0x09"],
[ "led_10.ports.pin", "u1_stm32.buses.pin_output_a", "0x0A"],
[ "led_11.ports.pin", "u1_stm32.buses.pin_output_a", "0x0B"],
[ "led_12.ports.pin", "u1_stm32.buses.pin_output_a", "0x0C"],
[ "led_13.ports.pin", "u1_stm32.buses.pin_output_a", "0x0D"],
[ "led_14.ports.pin", "u1_stm32.buses.pin_output_a", "0x0E"],
[ "led_15.ports.pin", "u1_stm32.buses.pin_output_a", "0x0F"]
]
}āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ āĻŽāύā§āϝā§āĻ āĻĻāĻŋāύ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āĻ āϧā§āϝāĻžāϝāĻŧ āĻĒā§āϝāĻžāϰāĻžāĻŽ āĻāĻāĻāĻŋ āĻĢāĻžāĻāϞā§āϰ āύāĻžāĻŽ āϝāĻž āĻāĻāĻāĻŋ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻĄāĻŋāĻāĻžāĻāϏ⧠āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āĻšāĻŋāϏāĻžāĻŦā§ āϞā§āĻĄ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤
āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻĄāĻŋāĻāĻžāĻāϏ āĻāĻŦāĻ āĻĒā§āϰāϧāĻžāύ āĻ āĻĒāĻžāϰā§āĻāĻŋāĻ āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āϏāĻžāĻĨā§ āĻāϰ āĻŽāĻŋāĻĨāϏā§āĻā§āϰāĻŋāϝāĻŧāĻž āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻāĻŋāϤā§āϰ āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āϰāϤāĻŋāύāĻŋāϧāĻŋāϤā§āĻŦ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§:

āĻāĻŽā§āϞā§āĻāϰā§āϰ āĻŦāϰā§āϤāĻŽāĻžāύ āĻĒāϰā§āĻā§āώāĻžāϰ āĻāĻĻāĻžāĻšāϰāĻŖā§ āĻĒā§āϰāϧāĻžāύ OS āĻāϰ COM āĻĒā§āϰā§āĻāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āĻŽāĻŋāĻĨāϏā§āĻā§āϰāĻŋāϝāĻŧāĻž āĻāĻĄāĻŧāĻŋāϤ (āĻŦā§āϞā§āĻā§āĻĨ āĻŽāĻĄāĻŋāĻāϞā§āϰ āĻāύā§āϝ UART āĻāĻŦāĻ UART āĻĄāĻŋāĻŦāĻžāĻ āĻāϰāĻž)āĨ¤ āĻāĻā§āϞāĻŋ āĻŦāĻžāϏā§āϤāĻŦ āĻĒā§āϰā§āĻ āĻšāϤ⧠āĻĒāĻžāϰ⧠āϝāĻžāϰ āϏāĻžāĻĨā§ āĻĄāĻŋāĻāĻžāĻāϏāĻā§āϞāĻŋ āϏāĻāϝā§āĻā§āϤ āĻŦāĻž āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ COM āĻĒā§āϰā§āĻ (āĻāϰ āĻāύā§āϝ āĻāĻĒāύāĻžāϰ āĻĒā§āϰāϝāĻŧā§āĻāύ com0com/socat).
āĻŦāϰā§āϤāĻŽāĻžāύ⧠āĻŦāĻžāĻāϰ⧠āĻĨā§āĻā§ āĻāĻŽā§āϞā§āĻāϰā§āϰ āϏāĻžāĻĨā§ āĻāύā§āĻāĻžāϰāĻ ā§āϝāĻžāĻā§āĻ āĻāϰāĻžāϰ āĻĻā§āĻāĻŋ āĻĒā§āϰāϧāĻžāύ āĻāĻĒāĻžāϝāĻŧ āϰāϝāĻŧā§āĻā§:
- GDB RSP āĻĒā§āϰā§āĻā§āĻāϞ (āĻ āύā§āϏāĻžāϰā§, āĻāĻ āĻĒā§āϰā§āĻā§āĻāϞāĻā§ āϏāĻŽāϰā§āĻĨāύ āĻāϰ⧠āĻāĻŽāύ āϏāϰāĻā§āĻāĻžāĻŽāĻā§āϞāĻŋ āĻšāϞ Eclipse/IDA/radare2);
- āĻ āĻā§āϝāύā§āϤāϰā§āĻŖ āĻāĻŽā§āϞā§āĻāϰ āĻāĻŽāĻžāύā§āĻĄ āϞāĻžāĻāύ (āĻāϰā§āĻāĻĒāĻžāϰā§āϏ āĻŦāĻž āĻĒāĻžāĻāĻĨāύ)āĨ¤
āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ COM āĻĒā§āϰā§āĻ
āĻāĻāĻāĻŋ āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āϏā§āĻĨāĻžāύā§āϝāĻŧ āĻŽā§āĻļāĻŋāύ⧠āĻāĻāĻāĻŋ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻĄāĻŋāĻāĻžāĻāϏā§āϰ UART-āĻāϰ āϏāĻžāĻĨā§ āĻāύā§āĻāĻžāϰāĻ ā§āϝāĻžāĻā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ, āĻāĻĒāύāĻžāĻā§ āĻāĻāĻāĻŋ āĻā§āĻĄāĻŧāĻž āϝā§āĻā§āϤ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ COM āĻĒā§āϰā§āĻ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻāĻŽāĻžāĻĻā§āϰ āĻā§āώā§āϤā§āϰā§, āĻāĻāĻāĻŋ āĻĒā§āϰā§āĻ āĻāĻŽā§āϞā§āĻāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻāĻŦāĻ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ (PuTTY āĻŦāĻž āϏā§āĻā§āϰā§āύ) āĻĻā§āĻŦāĻžāϰāĻž āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧ:

com0com āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§
āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ COM āĻĒā§āϰā§āĻāĻā§āϞāĻŋ com0com āĻāĻŋāĻ āĻĨā§āĻā§ āϏā§āĻāĻāĻĒ āĻāĻāĻāĻŋāϞāĻŋāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ (āĻāύāϏā§āϞ āϏāĻāϏā§āĻāϰāĻŖ - C:āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ āĻĢāĻžāĻāϞ (x86)com0comsetupŅ.exe, āĻŦāĻž GUI āϏāĻāϏā§āĻāϰāĻŖ - C: āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ āĻĢāĻžāĻāϞ (x86)com0comsetupg.exe):

āĻŦāĻā§āϏ āĻā§āĻ āĻāϰā§āύ āĻŦāĻžāĻĢāĻžāϰ āĻāĻāĻžāϰāϰāĻžāύ āϏāĻā§āώāĻŽ āĻāϰā§āύ āϏāĻŽāϏā§āϤ āϤā§āϰāĻŋ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻĒā§āϰā§āĻā§āϰ āĻāύā§āϝ, āĻ āύā§āϝāĻĨāĻžāϝāĻŧ āĻāĻŽā§āϞā§āĻāϰāĻāĻŋ COM āĻĒā§āϰā§āĻ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻĒā§āϰāϤāĻŋāĻā§āϰāĻŋāϝāĻŧāĻžāϰ āĻāύā§āϝ āĻ āĻĒā§āĻā§āώāĻž āĻāϰāĻŦā§āĨ¤
āϏā§āĻāĻžāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§
āĻāĻāύāĻŋāĻā§āϏ āϏāĻŋāϏā§āĻā§āĻŽā§, āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ COM āĻĒā§āϰā§āĻāĻā§āϞāĻŋ āϏā§āĻā§āϝāĻžāĻ āĻāĻāĻāĻŋāϞāĻŋāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻŽā§āϞā§āĻāϰ āĻĻā§āĻŦāĻžāϰāĻž āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āϤā§āϰāĻŋ āĻāϰāĻž āĻšāϝāĻŧ; āĻāĻāĻŋ āĻāϰāĻžāϰ āĻāύā§āϝ, āĻāĻŽā§āϞā§āĻāϰ āĻļā§āϰ⧠āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻā§āĻŦāϞ āĻĒā§āϰā§āĻā§āϰ āύāĻžāĻŽā§āϰ āĻŽāϧā§āϝ⧠āĻāĻĒāϏāϰā§āĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰā§āύ socat:.
āĻ āĻā§āϝāύā§āϤāϰā§āĻŖ āĻāĻŽāĻžāύā§āĻĄ āϞāĻžāĻāύ āĻāύā§āĻāĻžāϰāĻĢā§āϏ (āĻāϰā§āĻāĻĒāĻžāϰā§āϏ āĻŦāĻž āĻĒāĻžāĻāĻĨāύ)
āϝā§āĻšā§āϤ⧠āĻāĻĒāĻŋāĻā§āϝāĻžāĻ āĻāĻāĻāĻŋ āĻāύāϏā§āϞ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ, āϤāĻžāĻ āĻāĻŽā§āϞā§āĻāϰ āϤāĻžāϰ āĻŦāϏā§āϤ⧠āĻāĻŦāĻ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞā§āϰ āϏāĻžāĻĨā§ āĻāύā§āĻāĻžāϰāĻ ā§āϝāĻžāĻā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĻā§āĻāĻŋ āĻāĻŽāĻžāύā§āĻĄ āϞāĻžāĻāύ āĻāύā§āĻāĻžāϰāĻĢā§āϏ āĻŦāĻŋāĻāϞā§āĻĒ āϏāϰāĻŦāϰāĻžāĻš āĻāϰā§: Argparse āĻāĻŦāĻ PythonāĨ¤
Argparse āĻšāϞ āĻāĻĒāĻŋāĻā§āϝāĻžāĻā§ āϤā§āϰāĻŋ āĻāĻāĻāĻŋ CLI āĻāĻŦāĻ āϏāϰā§āĻŦāĻĻāĻž āϏāĻŦāĻžāϰ āĻāύā§āϝ āĻāĻĒāϞāĻŦā§āϧāĨ¤
āĻāĻāĻāĻŋ āĻŦāĻŋāĻāϞā§āĻĒ CLI āĻšāϞ āĻĒāĻžāĻāĻĨāύ āĻāύā§āĻāĻžāϰāĻĒā§āϰā§āĻāĻžāϰāĨ¤ āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻāύā§āϝ, āĻāĻĒāύāĻžāĻā§ āĻā§āĻĒ āĻĒāĻžāĻāĻĨāύ āĻŽāĻĄāĻŋāĻāϞāĻāĻŋ āĻāύāϏā§āĻāϞ āĻāϰāϤ⧠āĻšāĻŦā§ āĻāĻŦāĻ āĻĒāĻžāĻāĻĨāύā§āϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻŽā§āϞā§āĻāϰāĻāĻŋ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāϤ⧠āĻšāĻŦā§ (āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻĒā§āϰāϧāĻžāύ āϏāĻŋāϏā§āĻā§āĻŽā§ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻĒāĻžāĻāĻĨāύ āĻāύā§āĻāĻžāϰāĻĒā§āϰā§āĻāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāĻŦā§)āĨ¤
āĻĒāĻžāĻāĻĨāύ āĻŽāĻĄāĻŋāĻāϞ āĻā§āĻĒ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻšāĻā§āĻā§
āϤāϞāĻĻā§āĻļā§ Linux Jep pip āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāύāϏā§āĻāϞ āĻāϰāĻž āϝāĻžāϝāĻŧ:
pip install jepāĻā§āĻĒ āĻāύāϏā§āĻāϞ āĻāϰāϤ⧠Windows āĻ āĻŦāĻļā§āϝāĻ āĻāĻā§ āĻĨā§āĻā§ āĻāύāϏā§āĻāϞ āĻāϰāϤ⧠āĻšāĻŦā§ Windows āĻāϏāĻĄāĻŋāĻā§ āĻāĻŦāĻ āϏāĻāĻļā§āϞāĻŋāώā§āĻ āĻŽāĻžāĻāĻā§āϰā§āϏāĻĢāĻ āĻāĻŋāĻā§āϝā§āϝāĻŧāĻžāϞ āϏā§āĻā§āĻĄāĻŋāĻāĨ¤ āĻāĻŽāϰāĻž āĻāĻĒāύāĻžāϰ āĻāύā§āϝ āĻŦāĻŋāώāϝāĻŧāĻā§āϞ⧠āĻāϰāĻ āĻāĻāĻā§ āϏāĻšāĻ āĻāϰ⧠āĻĻāĻŋāϝāĻŧā§āĻāĻŋ āĻāĻŦāĻ āϤā§āϰāĻŋ āĻāϰā§āĻāĻŋ āĻĒāĻžāĻāĻĨāύā§āϰ āĻŦāϰā§āϤāĻŽāĻžāύ āϏāĻāϏā§āĻāϰāĻŖāĻā§āϞāĻŋāϰ āĻāύā§āϝ JEP WindowsāϏā§āϤāϰāĻžāĻ āĻŽāĻĄāĻŋāĻāϞāĻāĻŋ āĻāĻāĻāĻŋ āĻĢāĻžāĻāϞ āĻĨā§āĻā§ āĻāύāϏā§āĻāϞ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§:
pip install jep-3.8.2-cp27-cp27m-win_amd64.whlāĻā§āĻĒā§āϰ āĻāύāϏā§āĻāϞā§āĻļāύ āĻĒāϰā§āĻā§āώāĻž āĻāϰāϤā§, āĻāĻĒāύāĻžāĻā§ āĻāĻŽāĻžāύā§āĻĄ āϞāĻžāĻāύ⧠āĻāĻžāϞāĻžāϤ⧠āĻšāĻŦā§:
python -c "import jep"āĻĒā§āϰāϤāĻŋāĻā§āϰāĻŋāϝāĻŧāĻž āĻšāĻŋāϏāĻžāĻŦā§ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻŦāĻžāϰā§āϤāĻžāĻāĻŋ āĻĒāĻžāĻāϝāĻŧāĻž āĻāĻāĻŋāϤ:
ImportError: Jep is not supported in standalone Python, it must be embedded in Java.āĻāĻĒāύāĻžāϰ āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āĻāύā§āϝ āĻāĻŽā§āϞā§āĻāϰ āĻŦā§āϝāĻžāĻ āĻĢāĻžāĻāϞ⧠(copycat.bat - āĻāύā§āϝ Windows, āĻāĻĒāĻŋāĻā§āϝāĻžāĻ - āĻāύā§āϝ LinuxāĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻā§āϞāĻŋāϰ āϤāĻžāϞāĻŋāĻāĻžāϝāĻŧ ) DEFAULT_JVM_OPTS āĻāĻāĻāĻŋ āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ āϝā§āĻ āĻāϰā§āύ Djava.library.path â āĻāϤ⧠āĻāύāϏā§āĻāϞ āĻāϰāĻž Jep āĻŽāĻĄāĻŋāĻāϞā§āϰ āĻĒāĻžāĻĨ āĻĨāĻžāĻāϤ⧠āĻšāĻŦā§āĨ¤
āĻĢāϞāϏā§āĻŦāϰā§āĻĒ Windows āĻāĻĒāύāĻžāϰ āĻāĻāϰāĻāĻŽ āĻāĻāĻāĻŋ āϞāĻžāĻāύ āĻĒāĻžāĻāϝāĻŧāĻž āĻāĻāĻŋāϤ:
set DEFAULT_JVM_OPTS="-XX:MaxMetaspaceSize=256m" "-XX:+UseParallelGC" "-XX:SurvivorRatio=6" "-XX:-UseGCOverheadLimit" "-Djava.library.path=C:/Python27/Lib/site-packages/jep"āĻāĻĒāĻŋāĻā§āϝāĻžāĻ āĻāĻžāϞ⧠āĻāϰāĻž āĻšāĻā§āĻā§
āĻāĻŽā§āϞā§āĻāϰ āĻšāϞ āĻāĻāĻāĻŋ āĻāύāϏā§āϞ JVM āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĨ¤ āĻ āĻĒāĻžāϰā§āĻāĻŋāĻ āϏāĻŋāϏā§āĻā§āĻŽ āĻāĻŽāĻžāύā§āĻĄ āϞāĻžāĻāύ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ (sh/cmd) āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āϞāĻā§āĻ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
āĻāϰ āĻ āϧā§āύ⧠āĻāĻžāϞāĻžāύā§āϰ āĻāĻŽāĻžāύā§āĻĄ Windows:
binkopycat -g 23946 -n rhino -l user -y library -p firmware=firmwarerhino_pass.bin,tty_dbg=COM26,tty_bt=COM28āĻāϰ āĻ āϧā§āύ⧠āĻāĻžāϞāĻžāύā§āϰ āĻāĻŽāĻžāύā§āĻĄ Linux socat āĻāĻāĻāĻŋāϞāĻŋāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§:
./bin/kopycat -g 23946 -n rhino -l user -y library -p firmware=./firmware/rhino_pass.bin, tty_dbg=socat:./COM26,tty_bt=socat:./COM28-g 23646â TCP āĻĒā§āϰā§āĻ āϝāĻž GDB āϏāĻžāϰā§āĻāĻžāϰ⧠āĻ ā§āϝāĻžāĻā§āϏā§āϏā§āϰ āĻāύā§āϝ āĻā§āϞāĻž āĻĨāĻžāĻāĻŦā§;-n rhino- āĻĒā§āϰāϧāĻžāύ āϏāĻŋāϏā§āĻā§āĻŽ āĻŽāĻĄāĻŋāĻāϞā§āϰ āύāĻžāĻŽ (āĻāĻāϤā§āϰāĻŋāϤ āĻĄāĻŋāĻāĻžāĻāϏ);-l userâ āĻĒā§āϰāϧāĻžāύ āĻŽāĻĄāĻŋāĻāϞ āĻ āύā§āϏāύā§āϧāĻžāύā§āϰ āĻāύā§āϝ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāϰ āύāĻžāĻŽ;-y libraryâ āĻĄāĻŋāĻāĻžāĻāϏ⧠āĻ āύā§āϤāϰā§āĻā§āĻā§āϤ āĻŽāĻĄāĻŋāĻāϞ āĻ āύā§āϏāύā§āϧāĻžāύā§āϰ āĻĒāĻĨ;firmwarerhino_pass.binâ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āĻĢāĻžāĻāϞā§āϰ āĻĒāĻĨ;- COM26 āĻāĻŦāĻ COM28 āĻšāϞ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ COM āĻĒā§āϰā§āĻāĨ¤
āĻĢāϞāϏā§āĻŦāϰā§āĻĒ, āĻāĻāĻāĻŋ āĻĒā§āϰāĻŽā§āĻĒāĻ āĻĒā§āϰāĻĻāϰā§āĻļāĻŋāϤ āĻšāĻŦā§ Python > (āĻŦāĻž Argparse >):
18:07:59 INFO [eFactoryBuilder.create ]: Module top successfully created as top
18:07:59 INFO [ Module.initializeAndRes]: Setup core to top.u1_stm32.cortexm0.arm for top
18:07:59 INFO [ Module.initializeAndRes]: Setup debugger to top.u1_stm32.dbg for top
18:07:59 WARN [ Module.initializeAndRes]: Tracer wasn't found in top...
18:07:59 INFO [ Module.initializeAndRes]: Initializing ports and buses...
18:07:59 WARN [ Module.initializePortsA]: ATTENTION: Some ports has warning use printModulesPortsWarnings to see it...
18:07:59 FINE [ ARMv6CPU.reset ]: Set entry point address to 08006A75
18:07:59 INFO [ Module.initializeAndRes]: Module top is successfully initialized and reset as a top cell!
18:07:59 INFO [ Kopycat.open ]: Starting virtualization of board top[rhino] with arm[ARMv6Core]
18:07:59 INFO [ GDBServer.debuggerModule ]: Set new debugger module top.u1_stm32.dbg for GDB_SERVER(port=23946,alive=true)
Python >IDA Pro āĻāϰ āϏāĻžāĻĨā§ āĻŽāĻŋāĻĨāϏā§āĻā§āϰāĻŋāϝāĻŧāĻž
āĻĒāϰā§āĻā§āώāĻž āϏāĻšāĻ āĻāϰāĻžāϰ āĻāύā§āϝ, āĻāĻŽāϰāĻž āĻĢāϰā§āĻŽā§ IDA-āϤ⧠āĻŦāĻŋāĻļā§āϞā§āώāĻŖā§āϰ āĻāύā§āϝ āϏā§āϰā§āϏ āĻĢāĻžāĻāϞ āĻšāĻŋāϏāĻžāĻŦā§ Rhino āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŋ (āĻŽā§āĻāĻž āϤāĻĨā§āϝ āϏā§āĻāĻžāύ⧠āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āĻšāϝāĻŧ)āĨ¤
āĻāĻĒāύāĻŋ āĻŽā§āĻāĻž āϤāĻĨā§āϝ āĻāĻžāĻĄāĻŧāĻžāĻ āĻĒā§āϰāϧāĻžāύ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāĻāĻĄāĻŋāĻ āĻĒā§āϰā§āϤ⧠āĻāĻĒāĻŋāĻā§āϝāĻžāĻ āĻāĻžāϞ⧠āĻāϰāĻžāϰ āĻĒāϰā§, āĻĄāĻŋāĻŦāĻžāĻāĻžāϰ āĻŽā§āύā§āϤ⧠āĻāĻāĻā§āĻŽāĻāĻŋāϤ⧠āϝāĻžāύ âāĻĄāĻŋāĻŦāĻžāĻāĻžāϰ āϏā§āϝā§āĻāĻ āĻāϰā§āύ..."āĻāĻŦāĻ āĻāϝāĻŧāύ āĻāϰā§āύ"āĻĻā§āϰāĻŦāϰā§āϤ⧠GDB āĻĄāĻŋāĻŦāĻžāĻāĻžāϰ" āĻĒāϰāĻŦāϰā§āϤā§, āϏāĻāϝā§āĻ āϏā§āĻ āĻāĻĒ āĻāϰā§āύ: āĻŽā§āύ⧠āĻĄāĻŋāĻŦāĻžāĻāĻžāϰ - āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻŦāĻŋāĻāϞā§āĻĒāĻā§āϞāĻŋ...
āĻŽāĻžāύ āϏā§āĻ āĻāϰā§āύ:
- āĻāĻŦā§āĻĻāύ - āϝā§āĻā§āύ⧠āĻŽāĻžāύ
- āĻšā§āϏā§āĻāύāĻžāĻŽ: 127.0.0.1 (āĻ āĻĨāĻŦāĻž āĻĻā§āϰāĻŦāϰā§āϤ⧠āĻŽā§āĻļāĻŋāύā§āϰ āĻāĻāĻĒāĻŋ āĻ āĻŋāĻāĻžāύāĻž āϝā§āĻāĻžāύ⧠āĻāĻĒāĻŋāĻā§āϝāĻžāĻ āĻāϞāĻā§)
- āĻĒā§āϰā§āĻ: 23946

āĻāĻāύ āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ āĻŦā§āϤāĻžāĻŽāĻāĻŋ āĻāĻĒāϞāĻŦā§āϧ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧ (F9 āĻā§):
![]()
āĻāĻŽā§āϞā§āĻāϰ⧠āĻĄāĻŋāĻŦāĻžāĻāĻžāϰ āĻŽāĻĄāĻŋāĻāϞā§āϰ āϏāĻžāĻĨā§ āϏāĻāϝā§āĻ āĻāϰāϤ⧠āĻāĻāĻŋāϤ⧠āĻā§āϞāĻŋāĻ āĻāϰā§āύāĨ¤ IDA āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ āĻŽā§āĻĄā§ āϝāĻžāϝāĻŧ, āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āĻāĻāύā§āĻĄā§ āĻĒāĻžāĻāϝāĻŧāĻž āϝāĻžāϝāĻŧ: āϰā§āĻāĻŋāϏā§āĻāĻžāϰ āϏāĻŽā§āĻĒāϰā§āĻā§ āϤāĻĨā§āϝ, āϏā§āĻā§āϝāĻžāĻ āϏāĻŽā§āĻĒāϰā§āĻā§āĨ¤
āĻāĻāύ āĻāĻŽāϰāĻž āĻĄāĻŋāĻŦāĻžāĻāĻžāϰā§āϰ āϏāĻŽāϏā§āϤ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ:
- āϧāĻžāĻĒā§ āϧāĻžāĻĒā§ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞ⧠āϏāĻŽā§āĻĒāĻžāĻĻāύ (āĻĒāĻĻāĻžāϰā§āĻĒāĻŖ āĻāϰāĻž и āϧāĻžāĻĒ āĻāĻĒāϰ⧠â āĻā§ F7 āĻāĻŦāĻ F8, āϝāĻĨāĻžāĻā§āϰāĻŽā§);
- āϏāĻā§āĻāĻžāϞāύ āĻļā§āϰ⧠āĻāĻŦāĻ āĻŦāĻŋāϰāϤāĻŋ;
- āĻā§āĻĄ āĻāĻŦāĻ āĻĄā§āĻāĻž āĻāĻāϝāĻŧā§āϰ āĻāύā§āϝ āĻŦā§āϰā§āĻāĻĒāϝāĻŧā§āύā§āĻ āϤā§āϰāĻŋ āĻāϰāĻž (F2 āĻā§)āĨ¤
āĻĄāĻŋāĻŦāĻžāĻāĻžāϰā§āϰ āϏāĻžāĻĨā§ āϏāĻāϝā§āĻ āĻāϰāĻž āĻŽāĻžāύ⧠āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āĻā§āĻĄ āĻāĻžāϞāĻžāύ⧠āύāϝāĻŧāĨ¤ āĻŦāϰā§āϤāĻŽāĻžāύ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻ
āĻŦāϏā§āĻĨāĻžāύ āĻ āĻŋāĻāĻžāύāĻž āĻšāϤ⧠āĻšāĻŦā§ 0x08006A74 - āĻĢāĻžāĻāĻļāύ āĻļā§āϰ⧠āϰāĻŋāϏā§āĻ_āĻšā§āϝāĻžāύā§āĻĄāϞāĻžāϰ. āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āϤāĻžāϞāĻŋāĻāĻžāĻāĻŋ āύā§āĻā§ āϏā§āĻā§āϰā§āϞ āĻāϰā§āύ āϤāĻŦā§ āĻāĻĒāύāĻŋ āĻĢāĻžāĻāĻļāύ āĻāϞāĻāĻŋ āĻĻā§āĻāϤ⧠āĻĒāĻžāĻŦā§āύ āĻĒā§āϰāϧāĻžāύ. āĻāĻĒāύāĻŋ āĻāĻ āϞāĻžāĻāύ⧠āĻāĻžāϰā§āϏāĻžāϰ āϰāĻžāĻāϤ⧠āĻĒāĻžāϰā§āύ (āĻ āĻŋāĻāĻžāύāĻž 0x08006ABE) āĻāĻŦāĻ āĻ
āĻĒāĻžāϰā§āĻļāύ āϏāĻā§āĻāĻžāϞāύ āĻāĻžāϰā§āϏāĻžāϰ āĻĒāϰā§āϝāύā§āϤ āĻāĻžāϞāĻžāύ (āĻā§ F4)āĨ¤

āĻāϰ āĻĒāϰā§, āĻāĻĒāύāĻŋ āĻĢāĻžāĻāĻļāύ⧠āĻĒā§āϰāĻŦā§āĻļ āĻāϰāϤ⧠F7 āĻāĻŋāĻĒā§āύ āĻĒā§āϰāϧāĻžāύ.
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϞāĻžāύ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāĻžāϞāĻŋāϝāĻŧā§ āϝāĻžāύ (F9 āĻā§), āϤāĻžāϰāĻĒāϰ "āĻĻāϝāĻŧāĻž āĻāϰ⧠āĻ āĻĒā§āĻā§āώāĻž āĻāϰā§āύ" āĻāĻāύā§āĻĄā§āĻāĻŋ āĻāĻāĻāĻŋ āĻāĻāĻ āĻŦā§āϤāĻžāĻŽ āϏāĻš āĻĒā§āϰāĻĻāϰā§āĻļāĻŋāϤ āĻšāĻŦā§ āĻā§āϞāĻžāύ:

āϝāĻāύ āĻāĻĒāύāĻŋ āĻāĻžāĻĒā§āύ āĻā§āϞāĻžāύ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āĻā§āĻĄ āĻāĻžāϰā§āϝāĻāϰ āĻāϰāĻž āϏā§āĻĨāĻāĻŋāϤ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŦāĻ āĻā§āĻĄā§ āϝ⧠āĻ āĻŋāĻāĻžāύāĻžāϝāĻŧ āĻāĻāĻŋ āĻŦāĻžāϧāĻžāĻĒā§āϰāĻžāĻĒā§āϤ āĻšāϝāĻŧā§āĻāĻŋāϞ āϏā§āĻ āĻ āĻŋāĻāĻžāύāĻž āĻĨā§āĻā§ āĻāĻžāϞāĻŋāϝāĻŧā§ āϝāĻžāĻāϝāĻŧāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻā§āĻĄāĻāĻŋ āĻāĻžāϰā§āϝāĻāϰ āĻāϰāĻž āĻāĻžāϞāĻŋāϝāĻŧā§ āϝāĻžāύ, āĻāĻĒāύāĻŋ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ COM āĻĒā§āϰā§āĻāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āϏāĻāϝā§āĻā§āϤ āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞāĻā§āϞāĻŋāϤ⧠āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āϞāĻžāĻāύāĻā§āϞāĻŋ āĻĻā§āĻāϤ⧠āĻĒāĻžāĻŦā§āύ:


"āϏā§āĻā§āĻ āĻŦāĻžāĻāĻĒāĻžāϏ" āϞāĻžāĻāύā§āϰ āĻāĻĒāϏā§āĻĨāĻŋāϤāĻŋ āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰ⧠āϝ⧠āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻŦā§āϞā§āĻā§āĻĨ āĻŽāĻĄāĻŋāĻāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ COM āĻĒā§āϰā§āĻ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻā§āϰāĻšāĻŖā§āϰ āĻŽā§āĻĄā§ āϏā§āϝā§āĻāĻ āĻāϰā§āĻā§āĨ¤
āĻāĻāύ āĻŦā§āϞā§āĻā§āĻĨ āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞ⧠(āĻāĻŦāĻŋāϤ⧠COM29) āĻāĻĒāύāĻŋ āϰāĻžāĻāύ⧠āĻĒā§āϰā§āĻā§āĻāϞ āĻ āύā§āϝāĻžāϝāĻŧā§ āĻāĻŽāĻžāύā§āĻĄ āϞāĻŋāĻāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, "MEOW" āĻāĻŽāĻžāύā§āĻĄ āϏā§āĻā§āϰāĻŋāĻ "mur-mur" āĻŦā§āϞā§āĻā§āĻĨ āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞ⧠āĻĢāĻŋāϰāĻŋāϝāĻŧā§ āĻĻā§āĻŦā§:

āϏāĻŽā§āĻĒā§āϰā§āĻŖāϰā§āĻĒā§ āύāĻž āĻāĻŽāĻžāĻā§ āĻ āύā§āĻāϰāĻŖ
āĻāĻāĻāĻŋ āĻāĻŽā§āϞā§āĻāϰ āϤā§āϰāĻŋ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĄāĻŋāĻāĻžāĻāϏā§āϰ āĻŦāĻŋāĻļāĻĻ/āĻāĻŽā§āϞā§āĻļāύā§āϰ āϏā§āϤāϰ āĻāϝāĻŧāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻŦā§āϞā§āĻā§āĻĨ āĻŽāĻĄāĻŋāĻāϞāĻāĻŋ āĻŦāĻŋāĻāĻŋāύā§āύ āĻāĻĒāĻžāϝāĻŧā§ āĻ āύā§āĻāϰāĻŖ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§:
- āĻāĻŽāĻžāύā§āĻĄā§āϰ āĻāĻāĻāĻŋ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āϏā§āĻ āϏāĻš āĻĄāĻŋāĻāĻžāĻāϏāĻāĻŋ āϏāĻŽā§āĻĒā§āϰā§āĻŖāϰā§āĻĒā§ āĻ āύā§āĻāϰāĻŖ āĻāϰāĻž āĻšāϝāĻŧ;
- AT āĻāĻŽāĻžāύā§āĻĄ āĻ āύā§āĻāϰāĻŖ āĻāϰāĻž āĻšāϝāĻŧ, āĻāĻŦāĻ āĻĄāĻžāĻāĻž āϏā§āĻā§āϰā§āĻŽ āĻĒā§āϰāϧāĻžāύ āϏāĻŋāϏā§āĻā§āĻŽā§āϰ COM āĻĒā§āϰā§āĻ āĻĨā§āĻā§ āĻĒā§āϰāĻžāĻĒā§āϤ āĻšāϝāĻŧ;
- āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻĄāĻŋāĻāĻžāĻāϏāĻāĻŋ āĻĒā§āϰāĻā§āϤ āĻĄāĻŋāĻāĻžāĻāϏ⧠āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻĄā§āĻāĻž āĻĒā§āύāĻāύāĻŋāϰā§āĻĻā§āĻļ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§;
- āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āϏā§āĻāĻžāĻŦ āĻšāĻŋāϏāĻžāĻŦā§ āϝāĻž āϏāϰā§āĻŦāĻĻāĻž "āĻ āĻŋāĻ āĻāĻā§" āĻĢā§āϰāϤ āĻĻā§āϝāĻŧāĨ¤
āĻāĻŽā§āϞā§āĻāϰā§āϰ āĻŦāϰā§āϤāĻŽāĻžāύ āϏāĻāϏā§āĻāϰāĻŖāĻāĻŋ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠- āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻŦā§āϞā§āĻā§āĻĨ āĻŽāĻĄāĻŋāĻāϞ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻāϰā§, āϤāĻžāϰāĻĒāϰ⧠āĻāĻāĻŋ āĻĒā§āϰāϧāĻžāύ āϏāĻŋāϏā§āĻā§āĻŽā§āϰ COM āĻĒā§āϰā§āĻ āĻĨā§āĻā§ āĻāĻŽā§āϞā§āĻāϰā§āϰ UART āĻĒā§āϰā§āĻā§ āĻĄā§āĻāĻž "āĻĒā§āϰāĻā§āϏāĻŋāĻŋāĻ" āĻŽā§āĻĄā§ āϏā§āϝā§āĻāĻ āĻāϰā§āĨ¤

āĻĒā§āϰāĻŋāĻĢā§āϰāĻŋāϰ āĻāĻŋāĻā§ āĻ
āĻāĻļ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāĻŋāϤ āύāĻž āĻšāϞ⧠āĻā§āĻĄā§āϰ āϏāĻšāĻ āĻāύā§āϏāĻā§āϰā§āĻŽā§āύā§āĻā§āĻļāύā§āϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰāĻž āϝāĻžāĻāĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āϝāĻĻāĻŋ DMA-āϤ⧠āĻĄā§āĻāĻž āϏā§āĻĨāĻžāύāĻžāύā§āϤāϰ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖā§āϰ āĻāύā§āϝ āĻĻāĻžāϝāĻŧā§ āĻāĻāĻāĻŋ āĻāĻžāĻāĻŽāĻžāϰ āϤā§āϰāĻŋ āĻāϰāĻž āύāĻž āĻšāϝāĻŧ (āĻā§āĻāĻāĻŋ āĻĢāĻžāĻāĻļāύ⧠āϏāĻā§āĻāĻžāϞāĻŋāϤ āĻšāϝāĻŧ ws2812b_āĻ
āĻĒā§āĻā§āώāĻž āĻāϰā§āύāĻ
āĻŦāϏā§āĻĨāĻŋāϤ 0x08006840), āϤāĻžāϰāĻĒāϰ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āϏāϰā§āĻŦāĻĻāĻž āĻĒāϤāĻžāĻāĻž āĻĒā§āύāϰāĻžāϝāĻŧ āϏā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻ
āĻĒā§āĻā§āώāĻž āĻāϰāĻŦā§ āĻŦā§āϝāϏā§āϤāĻ
āĻŦāϏā§āĻĨāĻŋāϤ 0x200004C4āϝāĻž DMA āĻĄā§āĻāĻž āϞāĻžāĻāύā§āϰ āĻĻāĻāϞ āĻĻā§āĻāĻžāϝāĻŧ:

āĻĒāϤāĻžāĻāĻžāĻāĻŋ āĻŽā§āϝāĻžāύā§āϝāĻŧāĻžāϞāĻŋ āϰāĻŋāϏā§āĻ āĻāϰ⧠āĻāĻŽāϰāĻž āĻāĻ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāϰ āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ āϝā§āϤ⧠āĻĒāĻžāϰāĻŋ āĻŦā§āϝāϏā§āϤ āĻāĻāĻŋ āĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āĻĒāϰāĻĒāϰāĻāĨ¤ IDA Pro-āϤā§, āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻĒāĻžāĻāĻĨāύ āĻĢāĻžāĻāĻļāύ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻŦā§āϰā§āĻāĻĒāϝāĻŧā§āύā§āĻā§ āĻāϞ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŦāĻ āĻĢā§āϞā§āϝāĻžāĻā§ āĻŽāĻžāύ 1 āϞā§āĻāĻžāϰ āĻĒāϰ⧠āĻā§āĻĄā§ āĻŦā§āϰā§āĻāĻĒāϝāĻŧā§āύā§āĻāĻāĻŋ āύāĻŋāĻā§āĻ āϰāĻžāĻāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻŦā§āϝāϏā§āϤ.
āĻŦā§āϰā§āĻāĻĒāϝāĻŧā§āύā§āĻ āĻšā§āϝāĻžāύā§āĻĄāϞāĻžāϰ
āĻĒā§āϰāĻĨāĻŽā§ āĻāĻāĻĄāĻŋāĻ-āϤ⧠āĻāĻāĻāĻŋ āĻĒāĻžāĻāĻĨāύ āĻĢāĻžāĻāĻļāύ āϤā§āϰāĻŋ āĻāϰāĻž āϝāĻžāĻāĨ¤ āϤāĻžāϞāĻŋāĻāĻž āĻĢāĻžāĻāϞ - āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻāĻŽāĻžāύā§āĻĄ...
āĻŦāĻžāĻŽ āĻĻāĻŋāĻā§ āϤāĻžāϞāĻŋāĻāĻžāϝāĻŧ āĻāĻāĻāĻŋ āύāϤā§āύ āϏā§āύāĻŋāĻĒā§āĻ āϝā§āĻ āĻāϰā§āύ, āĻāĻāĻŋ āĻāĻāĻāĻŋ āύāĻžāĻŽ āĻĻāĻŋāύ (āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, BPT),
āĻĄāĻžāύāĻĻāĻŋāĻā§ āĻĒāĻžāĻ ā§āϝ āĻā§āώā§āϤā§āϰā§, āĻĢāĻžāĻāĻļāύ āĻā§āĻĄ āϞāĻŋāĻā§āύ:
def skip_dma():
print "Skipping wait ws2812..."
value = Byte(0x200004C4)
if value == 1:
PatchDbgByte(0x200004C4, 0)
return False 
āĻāϰ āĻĒāϰ⧠āĻāĻŽāϰāĻž āĻāĻŋāĻĒā§āύ āĻāĻžāϞāĻžāύ āĻāĻŦāĻ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻāĻāύā§āĻĄā§ āĻŦāύā§āϧ āĻāϰā§āύāĨ¤
āĻāĻāύ āĻā§āĻĄ āĻ āϝāĻžāĻāϝāĻŧāĻž āϝāĻžāĻ 0x0800688A, āĻāĻāĻāĻŋ āĻŦā§āϰā§āĻāĻĒāϝāĻŧā§āύā§āĻ āϏā§āĻ āĻāϰā§āύ (F2 āĻā§), āĻāĻāĻŋ āϏāĻŽā§āĻĒāĻžāĻĻāύāĻž āĻāϰā§āύ (āĻĒā§āϰāϏāĻā§āĻ āĻŽā§āύ⧠āĻŦā§āϰā§āĻāĻĒāϝāĻŧā§āύā§āĻ āϏāĻŽā§āĻĒāĻžāĻĻāύāĻž āĻāϰā§āύ...), āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻāĻžāĻāĻĒ āĻĒāĻžāĻāĻĨāύ⧠āϏā§āĻ āĻāϰāϤ⧠āĻā§āϞāĻŦā§āύ āύāĻž:


āϝāĻĻāĻŋ āĻŦāϰā§āϤāĻŽāĻžāύ āĻĒāϤāĻžāĻāĻž āĻŽāĻžāύ āĻŦā§āϝāϏā§āϤ 1 āĻāϰ āϏāĻŽāĻžāύ, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻžāϰ āĻĢāĻžāĻāĻļāύāĻāĻŋ āĻāĻžāϞāĻžāύ⧠āĻāĻāĻŋāϤ skip_dma āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āϞāĻžāĻāύā§:

āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻžāϰā§āϝāĻāϰ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āĻāĻžāϞāĻžāύ, āĻāĻĒāύāĻŋ IDA āĻāĻāύā§āĻĄā§āϤ⧠āĻŦā§āϰā§āĻāĻĒāϝāĻŧā§āύā§āĻ āĻšā§āϝāĻžāύā§āĻĄāϞāĻžāϰ āĻā§āĻĄā§āϰ āĻā§āϰāĻŋāĻāĻžāϰāĻŋāĻ āĻĻā§āĻāϤ⧠āĻĒāĻžāĻŦā§āύ āĻāĻāĻāĻĒā§āĻ āϞāĻžāĻāύ āĻĻā§āĻŦāĻžāϰāĻž Skipping wait ws2812.... āĻāĻāύ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āĻĒāϤāĻžāĻāĻž āϰāĻŋāϏā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻ
āĻĒā§āĻā§āώāĻž āĻāϰāĻŦā§ āύāĻž āĻŦā§āϝāϏā§āϤ.
āĻāĻŽā§āϞā§āĻāϰā§āϰ āϏāĻžāĻĨā§ āĻŽāĻŋāĻĨāϏā§āĻā§āϰāĻŋāϝāĻŧāĻž
āĻ āύā§āĻāϰāĻŖā§āϰ āĻāύā§āϝ āĻ āύā§āĻāϰāĻŖ āĻāύāύā§āĻĻ āĻāĻŦāĻ āĻāύāύā§āĻĻā§āϰ āĻāĻžāϰāĻŖ āĻšāĻāϝāĻŧāĻžāϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āύā§āĻāĨ¤ āĻāĻŽā§āϞā§āĻāϰ āϝāĻĻāĻŋ āĻāĻŦā§āώāĻāĻā§ āĻŽā§āĻŽāϰāĻŋāϤ⧠āĻĄā§āĻāĻž āĻĻā§āĻāϤ⧠āĻŦāĻž āĻĨā§āϰā§āĻĄāĻā§āϞāĻŋāϰ āĻŽāĻŋāĻĨāϏā§āĻā§āϰāĻŋāϝāĻŧāĻž āϏā§āĻĨāĻžāĻĒāύ āĻāϰāϤ⧠āϏāĻšāĻžāϝāĻŧāϤāĻž āĻāϰ⧠āϤāĻŦā§ āĻāĻāĻŋ āĻāϰāĻ āĻāĻāϰā§āώāĻŖā§āϝāĻŧāĨ¤
āĻāĻŽāϰāĻž āĻāĻĒāύāĻžāĻā§ āĻĻā§āĻāĻžāĻŦ āĻāĻŋāĻāĻžāĻŦā§ āĻāϤāĻŋāĻļā§āϞāĻāĻžāĻŦā§ RTOS āĻāĻžāĻā§āϰ āĻŽāϧā§āϝ⧠āĻŽāĻŋāĻĨāϏā§āĻā§āϰāĻŋāϝāĻŧāĻž āϏā§āĻĨāĻžāĻĒāύ āĻāϰāϤ⧠āĻšāϝāĻŧāĨ¤ āĻā§āĻĄāĻāĻŋ āĻāϞāĻŽāĻžāύ āĻĨāĻžāĻāϞ⧠āĻāĻĒāύāĻžāĻā§ āĻĒā§āϰāĻĨāĻŽā§ āĻāĻāĻŋāϰ āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻļāύāĻā§ āĻŦāĻŋāϰāϤāĻŋ āĻĻāĻŋāϤ⧠āĻšāĻŦā§āĨ¤ āĻĢāĻžāĻāĻļāύ⧠āĻā§āϞ⧠bluetooth_task_entry "LED" āĻāĻŽāĻžāύā§āĻĄā§āϰ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāϰāĻŖ āĻļāĻžāĻāĻžāϝāĻŧ (āĻ āĻŋāĻāĻžāύāĻž 0x080057B8), āϤāĻžāϰāĻĒāϰ āĻāĻĒāύāĻŋ āĻĻā§āĻāϤ⧠āĻĒāĻžāĻŦā§āύ āĻāĻŋ āĻĒā§āϰāĻĨāĻŽā§ āϤā§āϰāĻŋ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŦāĻ āϤāĻžāϰāĻĒāϰ āϏāĻŋāϏā§āĻā§āĻŽ āϏāĻžāϰāĻŋāϤ⧠āĻĒāĻžāĻ āĻžāύ⧠āĻšāϝāĻŧā§āĻā§ ledControlQueueHandle āĻāĻŋāĻā§ āĻŦāĻžāϰā§āϤāĻžāĨ¤

āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ āĻ
ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻĒāύāĻžāϰ āĻāĻāĻāĻŋ āĻŦā§āϰā§āĻāĻĒāϝāĻŧā§āύā§āĻ āϏā§āĻ āĻāϰāĻž āĻāĻāĻŋāϤ ledControlQueueHandleāĻ
āĻŦāϏā§āĻĨāĻŋāϤ 0x20000624 āĻāĻŦāĻ āĻā§āĻĄ āĻāĻžāϞāĻžāύ⧠āĻāĻžāϞāĻŋāϝāĻŧā§ āϝāĻžāύ:

āĻĢāϞāϏā§āĻŦāϰā§āĻĒ, āϏā§āĻāĻĒ āĻĒā§āϰāĻĨāĻŽā§ āĻ āĻŋāĻāĻžāύāĻžāϝāĻŧ āĻāĻāĻŦā§ 0x080057CA āĻĢāĻžāĻāĻļāύ āĻāϞ āĻāϰāĻžāϰ āĻāĻā§ osMailAllocāϤāĻžāϰāĻĒāϰ āĻ āĻŋāĻāĻžāύāĻžāϝāĻŧ 0x08005806 āĻĢāĻžāĻāĻļāύ āĻāϞ āĻāϰāĻžāϰ āĻāĻā§ osMailPut, āϤāĻžāϰāĻĒāϰ āĻāĻŋāĻā§āĻā§āώāĻŖ āĻĒāϰ⧠- āĻ āĻŋāĻāĻžāύāĻžāϝāĻŧ 0x08005BD4 (āĻĢāĻžāĻāĻļāύ āĻāϞ āĻāϰāĻžāϰ āĻāĻā§ osMailGet), āϝāĻž āĻĢāĻžāĻāĻļāύā§āϰ āĻ
āύā§āϤāϰā§āĻāϤ leds_task_entry (āĻāϞāĻāĻĄāĻŋ-āĻāĻžāϏā§āĻ), āĻ
āϰā§āĻĨāĻžā§, āĻāĻžāĻāĻā§āϞāĻŋ āϏā§āĻāĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻāύ āĻāϞāĻāĻĄāĻŋ-āĻāĻžāϏā§āĻ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āĻĒā§āϝāĻŧā§āĻā§āĨ¤

āĻāĻ āϏāĻšāĻ āĻāĻĒāĻžāϝāĻŧā§ āĻāĻĒāύāĻŋ RTOS āĻāĻžāĻāĻā§āϞāĻŋ āĻāĻā§ āĻ āĻĒāϰā§āϰ āϏāĻžāĻĨā§ āĻā§āĻāĻžāĻŦā§ āĻāύā§āĻāĻžāϰāĻ ā§āϝāĻžāĻā§āĻ āĻāϰ⧠āϤāĻž āϏā§āĻĨāĻžāĻĒāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻ āĻŦāĻļā§āϝāĻ, āĻŦāĻžāϏā§āϤāĻŦā§, āĻāĻžāϰā§āϝāĻā§āϞāĻŋāϰ āĻŽāĻŋāĻĨāϏā§āĻā§āϰāĻŋāϝāĻŧāĻž āĻāϰāĻ āĻāĻāĻŋāϞ āĻšāϤ⧠āĻĒāĻžāϰā§, āϤāĻŦā§ āĻāĻāĻāĻŋ āĻāĻŽā§āϞā§āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§, āĻāĻ āĻŽāĻŋāĻĨāϏā§āĻā§āϰāĻŋāϝāĻŧāĻž āĻā§āϰā§āϝāĻžāĻ āĻāϰāĻž āĻāĻŽ āĻļā§āϰāĻŽāϏāĻžāϧā§āϝ āĻšāϝāĻŧā§ āĻāĻ ā§āĨ¤
āĻāĻĒāύāĻŋ āĻāĻŽā§āϞā§āĻāϰ āĻāĻžāϞ⧠āĻāϰāĻžāϰ āĻāĻŦāĻ IDA Pro āĻāϰ āϏāĻžāĻĨā§ āĻāύā§āĻāĻžāϰāĻ ā§āϝāĻžāĻā§āĻ āĻāϰāĻžāϰ āĻāĻāĻāĻŋ āĻā§āĻ āĻāĻŋāĻĄāĻŋāĻ āĻĻā§āĻāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
Radare2 āĻĻāĻŋāϝāĻŧā§ āϞāĻā§āĻ āĻāϰā§āύ
āĻāĻĒāύāĻŋ Radare2 āĻāϰ āĻŽāϤ⧠āĻāĻāĻāĻŋ āϏāϰā§āĻŦāĻāύā§āύ āϏāϰāĻā§āĻāĻžāĻŽāĻā§ āĻāĻĒā§āĻā§āώāĻž āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§āύ āύāĻžāĨ¤
r2 āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻŽā§āϞā§āĻāϰā§āϰ āϏāĻžāĻĨā§ āϏāĻāϝā§āĻ āĻāϰāϤā§, āĻāĻŽāĻžāύā§āĻĄāĻāĻŋ āĻĻā§āĻāϤ⧠āĻāĻāϰāĻāĻŽ āĻšāĻŦā§:
radare2 -A -a arm -b 16 -d gdb://localhost:23946 rhino_fw42k6.elfāϞāĻā§āĻ āĻāĻāύ āĻāĻĒāϞāĻŦā§āϧ (dc) āĻāĻŦāĻ āĻĒāĻ āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻļāύ (Ctrl+C)āĨ¤
āĻĻā§āϰā§āĻāĻžāĻā§āϝāĻŦāĻļāϤ, āĻāĻ āĻŽā§āĻšā§āϰā§āϤā§, āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ āĻāĻŋāĻĄāĻŋāĻŦāĻŋ āϏāĻžāϰā§āĻāĻžāϰ āĻāĻŦāĻ āĻŽā§āĻŽāϰāĻŋ āϞā§āĻāĻāĻā§āϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ r2-āĻāϰ āϏāĻŽāϏā§āϝāĻž āϰāϝāĻŧā§āĻā§; āĻāϰ āĻāĻžāϰāĻŖā§, āĻŦā§āϰā§āĻāĻĒāϝāĻŧā§āύā§āĻ āĻāĻŦāĻ āĻĒāĻĻāĻā§āώā§āĻĒāĻā§āϞāĻŋ āĻāĻžāĻ āĻāϰ⧠āύāĻž (āĻāĻŽāĻžāύā§āĻĄ ds) āĻāĻŽāϰāĻž āĻāĻļāĻž āĻāϰāĻŋ āĻāĻāĻŋ āĻļā§āĻā§āϰāĻ āĻ āĻŋāĻ āĻāϰāĻž āĻšāĻŦā§āĨ¤
Eclipse āϏāĻā§āĻā§ āĻāϞāĻŽāĻžāύ
āĻāĻŽā§āϞā§āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻŦāĻŋāĻāϞā§āĻĒāĻā§āϞāĻŋāϰ āĻŽāϧā§āϝ⧠āĻāĻāĻāĻŋ āĻšāϞ āĻĄā§āĻā§āϞāĻĒ āĻāϰāĻž āĻĄāĻŋāĻāĻžāĻāϏā§āϰ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āĻĄāĻŋāĻŦāĻžāĻ āĻāϰāĻžāĨ¤ āϏā§āĻŦāĻā§āĻāϤāĻžāϰ āĻāύā§āϝ, āĻāĻŽāϰāĻž Rhino āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦāĨ¤ āĻāĻĒāύāĻŋ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āĻāϤā§āϏāĻā§āϞāĻŋ āĻĄāĻžāĻāύāϞā§āĻĄ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ .
āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ IDE āĻšāĻŋāϏāĻžāĻŦā§ āϏā§āĻ āĻĨā§āĻā§ Eclipse āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦ .
Eclipse-āĻ āϏāϰāĻžāϏāϰāĻŋ āϏāĻāĻāϞāĻŋāϤ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āϞā§āĻĄ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻŽā§āϞā§āĻāϰāĻāĻŋāϰ āĻāύā§āϝ, āĻāĻĒāύāĻžāĻā§ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āϝā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§ firmware=null āĻāĻŽā§āϞā§āĻāϰ āϞāĻā§āĻ āĻāĻŽāĻžāύā§āĻĄā§:
binkopycat -g 23946 -n rhino -l user -y modules -p firmware=null,tty_dbg=COM26,tty_bt=COM28āĻĄāĻŋāĻŦāĻžāĻ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āϏā§āĻ āĻāĻĒ āĻāϰāĻž āĻšāĻā§āĻā§
Eclipse āĻ, āĻŽā§āύ⧠āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰā§āύ āĻāĻžāϞāĻžāύ - āĻĄāĻŋāĻŦāĻžāĻ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ... āϝ⧠āĻāĻāύā§āĻĄā§āĻāĻŋ āĻā§āϞ⧠āϏ⧠āĻŦāĻŋāĻāĻžāĻā§ GDB āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ āĻāĻĒāύāĻžāĻā§ āĻāĻāĻāĻŋ āύāϤā§āύ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āϝā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§, āϤāĻžāϰāĻĒāϰ "āĻĒā§āϰāϧāĻžāύ" āĻā§āϝāĻžāĻŦā§ āĻŦāϰā§āϤāĻŽāĻžāύ āĻĒā§āϰāĻāϞā§āĻĒ āĻāĻŦāĻ āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰā§āύ:

"āĻĄāĻŋāĻŦāĻžāĻāĻžāϰ" āĻā§āϝāĻžāĻŦā§ āĻāĻĒāύāĻžāĻā§ GDB āĻāĻŽāĻžāύā§āĻĄ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§:
${openstm32_compiler_path}arm-none-eabi-gdb
āĻāĻŦāĻ GDB āϏāĻžāϰā§āĻāĻžāϰ⧠(āĻšā§āϏā§āĻ āĻāĻŦāĻ āĻĒā§āϰā§āĻ) āϏāĻāϝā§āĻā§āϰ āĻāύā§āϝ āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋāĻā§āϞāĻŋāĻ āϞāĻŋāĻā§āύ:

"āϏā§āĻāĻžāϰā§āĻāĻāĻĒ" āĻā§āϝāĻžāĻŦā§, āĻāĻĒāύāĻžāĻā§ āĻ āĻŦāĻļā§āϝāĻ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋāĻā§āϞāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§:
- āĻā§āĻāĻŦāĻā§āϏ āϏāĻā§āϰāĻŋāϝāĻŧ āĻāϰā§āύ āĻāĻŦāĻŋ āϞā§āĻĄ āĻāϰā§āύ (āϝāĻžāϤ⧠āĻāĻāϤā§āϰāĻŋāϤ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āĻāĻŋāϤā§āϰāĻāĻŋ āĻāĻŽā§āϞā§āĻāϰ⧠āϞā§āĻĄ āĻāϰāĻž āĻšāϝāĻŧ);
- āĻā§āĻāĻŦāĻā§āϏ āϏāĻā§āϰāĻŋāϝāĻŧ āĻāϰā§āύ āϞā§āĻĄ āĻĒā§āϰāϤā§āĻ;
- āϞāĻā§āĻ āĻāĻŽāĻžāύā§āĻĄ āϝā§āĻ āĻāϰā§āύ:
set $pc = *0x08000004(āĻĒāĻŋāϏāĻŋ āϰā§āĻāĻŋāϏā§āĻāĻžāϰāĻā§ āĻ āĻŋāĻāĻžāύāĻžāϝāĻŧ āĻŽā§āĻŽāϰāĻŋ āĻĨā§āĻā§ āĻŽāĻžāύ āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰā§āύ0x08000004- āĻ āĻŋāĻāĻžāύāĻž āϏā§āĻāĻžāύ⧠āϏāĻāϰāĻā§āώāĻŋāϤ āĻāĻā§ āϰāĻŋāϏā§āĻāĻšā§āϝāĻžāύā§āĻĄāϞāĻžāϰ).
āĻŽāύā§āϝā§āĻ āĻĻāĻžāĻ, āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ Eclipse āĻĨā§āĻā§ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āĻĢāĻžāĻāϞ āĻĄāĻžāĻāύāϞā§āĻĄ āĻāϰāϤ⧠āύāĻž āĻāĻžāύ, āϤāĻžāĻšāϞ⧠āĻŦāĻŋāĻāϞā§āĻĒāĻā§āϞāĻŋ āĻāĻŦāĻŋ āϞā§āĻĄ āĻāϰā§āύ и āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϞāĻžāύ āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰāĻžāϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āύā§āĻāĨ¤

āĻĄāĻŋāĻŦāĻžāĻ āĻā§āϞāĻŋāĻ āĻāϰāĻžāϰ āĻĒāϰā§, āĻāĻĒāύāĻŋ āĻĄāĻŋāĻŦāĻžāĻāĻžāϰ āĻŽā§āĻĄā§ āĻāĻžāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:
- āϧāĻžāĻĒā§ āϧāĻžāĻĒā§ āĻā§āĻĄ āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻļāύ

- āĻŦā§āϰā§āĻāĻĒāϝāĻŧā§āύā§āĻā§āϰ āϏāĻžāĻĨā§ āĻŽāĻŋāĻĨāϏā§āĻā§āϰāĻŋāϝāĻŧāĻž āĻāϰāĻž

āĻŽāύā§āϤāĻŦā§āϝ. Eclipse āĻāĻā§, āĻšā§āĻŽ... āĻāĻŋāĻā§ quirks... āĻāĻŦāĻ āĻāĻĒāύāĻžāĻā§ āϤāĻžāĻĻā§āϰ āϏāĻžāĻĨā§ āĻĨāĻžāĻāϤ⧠āĻšāĻŦā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āϝāĻĻāĻŋ āĻĄāĻŋāĻŦāĻžāĻāĻžāϰ āĻļā§āϰ⧠āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ "0x0âŗ āĻāϰ āĻāύā§āϝ āĻā§āύ āĻā§āϏ āĻāĻĒāϞāĻŦā§āϧ āύā§āĻ" āĻŦāĻžāϰā§āϤāĻžāĻāĻŋ āĻāĻĒāϏā§āĻĨāĻŋāϤ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧠āϧāĻžāĻĒ āĻāĻŽāĻžāύā§āĻĄāĻāĻŋ āĻāĻžāϞāĻžāύ (F5)

āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āĻāĻāĻāĻŋ āĻāĻĒāϏāĻāĻšāĻžāϰā§āϰ
āύā§āĻāĻŋāĻ āĻā§āĻĄ āĻ āύā§āĻāϰāĻŖ āĻāϰāĻž āĻāĻāĻāĻŋ āĻā§āĻŦ āĻāĻāϰā§āώāĻŖā§āϝāĻŧ āĻāĻŋāύāĻŋāϏāĨ¤ āĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāϏ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāϰā§āϰ āĻĒāĻā§āώ⧠āĻāĻāĻāĻŋ āĻŦāĻžāϏā§āϤāĻŦ āĻĄāĻŋāĻāĻžāĻāϏ āĻāĻžāĻĄāĻŧāĻžāĻ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āĻĄāĻŋāĻŦāĻžāĻ āĻāϰāĻž āϏāĻŽā§āĻāĻŦ āĻšāϝāĻŧ⧎ āĻāĻāĻāύ āĻāĻŦā§āώāĻā§āϰ āĻāύā§āϝ, āĻāĻāĻŋ āĻāϤāĻŋāĻļā§āϞ āĻā§āĻĄ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāĻžāϰ āĻāĻāĻāĻŋ āϏā§āϝā§āĻ, āϝāĻž āĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāϏā§āϰ āϏāĻžāĻĨā§āĻ āϏāĻŦāϏāĻŽāϝāĻŧ āϏāĻŽā§āĻāĻŦ āĻšāϝāĻŧ āύāĻžāĨ¤
āĻāĻŽāϰāĻž āĻŦāĻŋāĻļā§āώāĻā§āĻāĻĻā§āϰ āĻāĻŽāύ āĻāĻāĻāĻŋ āĻā§āϞ āϏāϰāĻŦāϰāĻžāĻš āĻāϰāϤ⧠āĻāĻžāĻ āϝāĻž āϏā§āĻŦāĻŋāϧāĻžāĻāύāĻ, āĻŽāĻžāĻāĻžāϰāĻŋāĻāĻžāĻŦā§ āϏāĻšāĻ āĻāĻŦāĻ āϏā§āĻ āĻāĻĒ āĻāĻŦāĻ āĻāĻžāϞāĻžāύā§āϰ āĻāύā§āϝ āĻ āύā§āĻ āĻĒā§āϰāĻā§āώā§āĻāĻž āĻāĻŦāĻ āϏāĻŽāϝāĻŧ āϞāĻžāĻā§ āύāĻžāĨ¤
āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ āĻāĻŽā§āϞā§āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻĒāύāĻžāϰ āĻ āĻāĻŋāĻā§āĻāϤāĻž āϏāĻŽā§āĻĒāϰā§āĻā§ āĻŽāύā§āϤāĻŦā§āϝ⧠āϞāĻŋāĻā§āύāĨ¤ āĻāĻŽāϰāĻž āĻāĻĒāύāĻžāĻā§ āĻāϞā§āĻāύāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻŽāύā§āϤā§āϰāĻŖ āĻāĻžāύāĻžāĻ āĻāĻŦāĻ āĻĒā§āϰāĻļā§āύā§āϰ āĻāϤā§āϤāϰ āĻĻāĻŋāϤ⧠āĻĒā§āϰ⧠āĻā§āĻļāĻŋ āĻšāĻŦāĨ¤
āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āύāĻŋāĻŦāύā§āϧāĻŋāϤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰāĻž āĻāϰāĻŋāĻĒā§ āĻ āĻāĻļāĻā§āϰāĻšāĻŖ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§āύāĨ¤ āĻāϰā§āύāĨ¤
āĻāĻĒāύāĻŋ āĻāĻŋ āĻāύā§āϝ āĻāĻŽā§āϞā§āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻā§āύ?
āĻāĻŽāĻŋ (āĻĄāĻŋāĻŦāĻžāĻ) āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āĻŦāĻŋāĻāĻžāĻļ āĻāϰāĻŋ
āĻāĻŽāĻŋ āĻĢāĻžāϰā§āĻŽāĻāϝāĻŧā§āϝāĻžāϰ āύāĻŋāϝāĻŧā§ āĻāĻŦā§āώāĻŖāĻž āĻāϰāĻāĻŋ
āĻāĻŽāĻŋ āĻā§āĻŽ āĻāĻžāϞ⧠āĻāϰāĻŋ (āĻĄā§āύā§āĻĄāĻŋ, āϏā§āĻāĻž, āĻĒāĻŋāĻāϏāĻĒāĻŋ)
āĻ āύā§āϝ āĻāĻŋāĻā§ (āĻŽāύā§āϤāĻŦā§āϝ⧠āϞāĻŋāĻā§āύ)
7 āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻā§āĻ āĻĻāĻŋāϝāĻŧā§āĻā§āύāĨ¤ 2 āĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻŦāĻŋāϰāϤ āĻāĻŋāϞā§āύāĨ¤
āύā§āĻāĻŋāĻ āĻā§āĻĄ āĻ āύā§āĻāϰāĻŖ āĻāϰāϤ⧠āĻāĻĒāύāĻŋ āĻā§āύ āϏāĻĢā§āĻāĻāϝāĻŧā§āϝāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ?
QEMU āĻĻā§āĻŦāĻžāϰāĻž
āĻāĻāύāĻŋāĻāϰā§āύ āĻāĻā§āĻāĻŋāύ
āĻĒā§āϰā§āĻāĻŋāϝāĻŧāĻžāϏ
āĻ āύā§āϝ āĻāĻŋāĻā§ (āĻŽāύā§āϤāĻŦā§āϝ⧠āϞāĻŋāĻā§āύ)
6 āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻā§āĻ āĻĻāĻŋāϝāĻŧā§āĻā§āύāĨ¤ 2 āĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻŦāĻŋāϰāϤ āĻāĻŋāϞā§āύāĨ¤
āĻāĻĒāύāĻŋ āϝ⧠āĻāĻŽā§āϞā§āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻā§āύ āϤāĻžāϤ⧠āĻāĻĒāύāĻŋ āĻā§ āĻāύā§āύāϤāĻŋ āĻāϰāϤ⧠āĻāĻžāύ?
āĻāĻŽāĻŋ āĻāϤāĻŋ āĻāĻžāĻ
āĻāĻŽāĻŋ āϏā§āĻāĻāĻĒ/āϞāĻā§āĻā§āϰ āϏāĻšāĻāϤāĻž āĻāĻžāĻ
āĻāĻŽāĻŋ āĻāĻŽā§āϞā§āĻāϰā§āϰ āϏāĻžāĻĨā§ āĻāύā§āĻāĻžāϰāĻ ā§āϝāĻžāĻā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāϰāĻ āĻŦāĻŋāĻāϞā§āĻĒ āĻāĻžāĻ (API, āĻšā§āĻ)
āĻāĻŽāĻŋ āϏāĻŦāĻāĻŋāĻā§āϤā§āĻ āĻā§āĻļāĻŋ
āĻ āύā§āϝ āĻāĻŋāĻā§ (āĻŽāύā§āϤāĻŦā§āϝ⧠āϞāĻŋāĻā§āύ)
8 āĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻā§āĻ āĻĻāĻŋāϝāĻŧā§āĻā§āύāĨ¤ ā§§ āĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻŦāĻŋāϰāϤ āĻāĻŋāϞā§āύāĨ¤
āĻāϤā§āϏ: www.habr.com


