Aigo-แƒก แƒ—แƒ•แƒ˜แƒ—แƒ“แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ˜แƒก แƒ’แƒแƒ แƒ” HDD แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ แƒ“แƒ แƒ’แƒแƒขแƒ”แƒฎแƒ•แƒ. แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2: แƒœแƒแƒ’แƒแƒ•แƒกแƒแƒงแƒ แƒ”แƒšแƒ˜แƒก แƒแƒฆแƒ”แƒ‘แƒ Cypress PSoC-แƒ“แƒแƒœ

แƒ”แƒก แƒแƒ แƒ˜แƒก แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ›แƒ”แƒแƒ แƒ” แƒ“แƒ แƒ‘แƒแƒšแƒ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ’แƒแƒ แƒ” แƒ—แƒ•แƒ˜แƒ—แƒ“แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ˜แƒก แƒ“แƒ˜แƒกแƒ™แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒขแƒ”แƒฎแƒ•แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒจแƒ”แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒชแƒแƒขแƒ แƒฎแƒœแƒ˜แƒก แƒฌแƒ˜แƒœ แƒ™แƒแƒšแƒ”แƒ’แƒแƒ› แƒ›แƒแƒ›แƒ˜แƒขแƒแƒœแƒ แƒžแƒแƒขแƒ แƒ˜แƒแƒขแƒ˜ (แƒแƒ˜แƒ’แƒ) SK8671 แƒ›แƒงแƒแƒ แƒ˜ แƒ“แƒ˜แƒกแƒ™แƒ˜ แƒ“แƒ แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ” แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒแƒฎแƒšแƒ แƒ•แƒแƒ–แƒ˜แƒแƒ แƒ”แƒ‘, แƒ แƒแƒช แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒ“แƒ. แƒกแƒแƒœแƒแƒ› แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ› แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ•แƒ—, แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒšแƒแƒ“ แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ— แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ”แƒ‘แƒ˜.

4. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— แƒœแƒแƒ’แƒแƒ•แƒกแƒแƒงแƒ แƒ”แƒšแƒ˜แƒก แƒแƒฆแƒ”แƒ‘แƒแƒก แƒจแƒ˜แƒ“แƒ PSoC แƒคแƒšแƒ”แƒจ แƒ“แƒ แƒแƒ˜แƒ•แƒ˜แƒ“แƒแƒœ
5. ISSP แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜
- 5.1. แƒ แƒ แƒแƒ แƒ˜แƒก ISSP
โ€“ 5.2. แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ”แƒ›แƒ˜แƒกแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ
โ€“ 5.3. แƒ™แƒแƒ›แƒฃแƒœแƒ˜แƒ™แƒแƒชแƒ˜แƒ PSoC-แƒ—แƒแƒœ
โ€“ 5.4. แƒฉแƒ˜แƒžแƒ–แƒ” แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ
- 5.5. แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ”แƒ‘แƒ˜แƒก แƒ‘แƒ˜แƒขแƒ”แƒ‘แƒ˜
6. แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ (แƒฉแƒแƒ•แƒแƒ แƒ“แƒœแƒ˜แƒšแƒ˜) แƒจแƒ”แƒขแƒ”แƒ•แƒ: ROMX
7. แƒ›แƒ”แƒแƒ แƒ” แƒจแƒ”แƒขแƒ”แƒ•แƒ: Cold Boot Tracing
โ€“ 7.1. แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ
โ€“ 7.2. แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜แƒก แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ
โ€“ 7.3. แƒคแƒšแƒ”แƒจ แƒแƒ แƒแƒ‘แƒ˜แƒ—แƒ˜ แƒ แƒ”แƒ™แƒแƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ
โ€“ 7.4. PIN แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒก แƒžแƒแƒ•แƒœแƒ
- 7.5. No126 แƒ‘แƒšแƒแƒ™แƒ˜แƒก แƒœแƒแƒ’แƒแƒ•แƒกแƒแƒงแƒ แƒ”แƒšแƒ˜แƒก แƒแƒฆแƒ”แƒ‘แƒ
โ€“ 7.6. PIN แƒ™แƒแƒ“แƒ˜แƒก แƒแƒฆแƒ“แƒ’แƒ”แƒœแƒ
8. แƒ แƒ แƒแƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜?
9. แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ

Aigo-แƒก แƒ—แƒ•แƒ˜แƒ—แƒ“แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ˜แƒก แƒ’แƒแƒ แƒ” HDD แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ แƒ“แƒ แƒ’แƒแƒขแƒ”แƒฎแƒ•แƒ. แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2: แƒœแƒแƒ’แƒแƒ•แƒกแƒแƒงแƒ แƒ”แƒšแƒ˜แƒก แƒแƒฆแƒ”แƒ‘แƒ Cypress PSoC-แƒ“แƒแƒœ


4. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— แƒœแƒแƒ’แƒแƒ•แƒกแƒแƒงแƒ แƒ”แƒšแƒ˜แƒก แƒแƒฆแƒ”แƒ‘แƒแƒก แƒจแƒ˜แƒ“แƒ PSoC แƒคแƒšแƒ”แƒจ แƒ“แƒ แƒแƒ˜แƒ•แƒ˜แƒ“แƒแƒœ

แƒแƒกแƒ” แƒ แƒแƒ›, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก (แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒแƒ“แƒ’แƒ˜แƒœแƒ”แƒ— [แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒœแƒแƒฌแƒ˜แƒšแƒจแƒ˜]()), แƒ แƒแƒ› PIN แƒ™แƒแƒ“แƒ˜ แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ PSoC-แƒ˜แƒก แƒคแƒšแƒ”แƒจ แƒกแƒ˜แƒฆแƒ แƒ›แƒ”แƒจแƒ˜. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒฌแƒแƒ•แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ— แƒ”แƒก แƒคแƒšแƒ”แƒจ แƒกแƒ˜แƒฆแƒ แƒ›แƒ”แƒ”แƒ‘แƒ˜. แƒกแƒแƒญแƒ˜แƒ แƒ แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒ”แƒ‘แƒ˜แƒก แƒฌแƒ˜แƒœแƒ แƒœแƒแƒฌแƒ˜แƒšแƒ˜:

  • แƒ›แƒ˜แƒ™แƒ แƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ—แƒแƒœ โ€žแƒ™แƒแƒ›แƒฃแƒœแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกโ€œ แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜;
  • แƒ˜แƒžแƒแƒ•แƒœแƒ”แƒ— แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒแƒ— แƒแƒ แƒ˜แƒก แƒ—แƒฃ แƒแƒ แƒ แƒ”แƒก โ€žแƒ™แƒแƒ›แƒฃแƒœแƒ˜แƒ™แƒแƒชแƒ˜แƒโ€œ แƒ“แƒแƒชแƒฃแƒšแƒ˜ แƒ’แƒแƒ แƒ”แƒ“แƒแƒœ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒกแƒ’แƒแƒœ;
  • แƒ˜แƒžแƒแƒ•แƒ”แƒ— แƒ“แƒแƒชแƒ•แƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒแƒ•แƒšแƒ˜แƒ— แƒ’แƒ–แƒ.

แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒแƒ แƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒ˜, แƒกแƒแƒ“แƒแƒช แƒแƒ–แƒ แƒ˜ แƒแƒฅแƒ•แƒก แƒกแƒฌแƒแƒ แƒ˜ PIN แƒ™แƒแƒ“แƒ˜แƒก แƒซแƒ”แƒ‘แƒœแƒแƒก:

  • แƒจแƒ˜แƒ“แƒ แƒคแƒšแƒ”แƒจ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ;
  • SRAM, แƒกแƒแƒ“แƒแƒช แƒžแƒ˜แƒœ แƒ™แƒแƒ“แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒแƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒš แƒžแƒ˜แƒœ แƒ™แƒแƒ“แƒ—แƒแƒœ แƒจแƒ”แƒกแƒแƒ“แƒแƒ แƒ”แƒ‘แƒšแƒแƒ“.

แƒฌแƒ˜แƒœแƒกแƒ•แƒšแƒ˜แƒก แƒงแƒฃแƒ แƒ”แƒ‘แƒ˜แƒ—, แƒแƒฆแƒ•แƒœแƒ˜แƒจแƒœแƒแƒ•, แƒ แƒแƒ› แƒ›แƒ” แƒ›แƒแƒ˜แƒœแƒช แƒ›แƒแƒ•แƒแƒฎแƒ”แƒ แƒฎแƒ” แƒจแƒ˜แƒ“แƒ PSoC แƒคแƒšแƒ”แƒจ แƒ“แƒ แƒแƒ˜แƒ•แƒ˜แƒก แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ - แƒ›แƒ˜แƒกแƒ˜ แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒแƒ•แƒšแƒ˜แƒ— แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒ˜แƒก แƒจแƒ”แƒขแƒ”แƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒกแƒแƒฎแƒ”แƒšแƒฌแƒแƒ“แƒ”แƒ‘แƒ˜แƒ— "แƒชแƒ˜แƒ•แƒ˜ แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ›แƒแƒ™แƒ•แƒšแƒ”แƒ•แƒ" - ISSP แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜แƒก แƒ“แƒแƒฃแƒกแƒแƒ‘แƒฃแƒ—แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’. แƒแƒ›แƒแƒœ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ แƒ›แƒแƒ›แƒชแƒ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒ’แƒแƒ“แƒแƒ›แƒ”แƒ’แƒ“แƒ แƒคแƒแƒฅแƒขแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ PIN แƒ™แƒแƒ“แƒ˜.

$ ./psoc.py 
syncing: KO OK
[...]
PIN: 1 2 3 4 5 6 7 8 9

แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒ™แƒแƒ“แƒ˜:

5. ISSP แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜

5.1. แƒ แƒ แƒแƒ แƒ˜แƒก ISSP

แƒ›แƒ˜แƒ™แƒ แƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ—แƒแƒœ โ€žแƒ™แƒแƒ›แƒฃแƒœแƒ˜แƒ™แƒแƒชแƒ˜แƒโ€œ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒœแƒ˜แƒจแƒœแƒแƒ•แƒ“แƒ”แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ แƒแƒ›แƒ”แƒก: โ€žแƒ’แƒแƒ›แƒงแƒ˜แƒ“แƒ•แƒ”แƒšแƒ˜แƒ“แƒแƒœ แƒ’แƒแƒ›แƒงแƒ˜แƒ“แƒ•แƒ”แƒšแƒแƒ›แƒ“แƒ”โ€œ แƒกแƒ”แƒ แƒ˜แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒแƒ›แƒ“แƒ” (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, ICSP Microchip-แƒ˜แƒก PIC-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก).

Cypress-แƒก แƒแƒฅแƒ•แƒก แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒกแƒแƒ™แƒฃแƒ—แƒ แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ”แƒฌแƒแƒ“แƒ”แƒ‘แƒ ISSP (แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜ แƒกแƒ”แƒ แƒ˜แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜), แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒœแƒแƒฌแƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ• แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ. แƒžแƒแƒขแƒ”แƒœแƒขแƒ˜ US7185162 แƒแƒกแƒ”แƒ•แƒ” แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒš แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก. แƒแƒกแƒ”แƒ•แƒ” แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก OpenSource-แƒ˜แƒก แƒ”แƒฅแƒ•แƒ˜แƒ•แƒแƒšแƒ”แƒœแƒขแƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒฌแƒแƒ“แƒ”แƒ‘แƒ˜แƒ— HSSP (แƒฉแƒ•แƒ”แƒœ แƒ›แƒแƒก แƒชแƒแƒขแƒ แƒ›แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ—). ISSP แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒœแƒแƒ˜แƒ แƒแƒ“:

  • แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ— PSoC;
  • แƒ’แƒแƒ›แƒแƒ˜แƒขแƒแƒœแƒ”แƒ— แƒฏแƒแƒ“แƒแƒกแƒœแƒฃแƒ แƒ˜ แƒœแƒแƒ›แƒ”แƒ แƒ˜ แƒแƒ› PSoC-แƒ˜แƒก แƒกแƒ”แƒ แƒ˜แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒžแƒ˜แƒœแƒ–แƒ”; แƒ’แƒแƒ แƒ” แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜ แƒจแƒ”แƒกแƒ•แƒšแƒ;
  • แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ”แƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒ แƒ˜แƒก แƒ’แƒ แƒซแƒ”แƒšแƒ˜ แƒ‘แƒ˜แƒขแƒ˜แƒแƒœแƒ˜ แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒฃแƒฌแƒแƒ“แƒ”แƒ‘แƒ”แƒœ "แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ”แƒ‘แƒก".

ISSP แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒก แƒแƒ› แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ”แƒ‘แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒชแƒ˜แƒ แƒ” แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก:

  • แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ-1
  • แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ-2
  • Initialize-3 (3V แƒ“แƒ 5V แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ”แƒ‘แƒ˜)
  • ID-SETUP
  • READ-ID-WORD
  • SET-BLOCK-NUM: 10011111010dddddddd111, แƒกแƒแƒ“แƒแƒช dddddddd=แƒ‘แƒšแƒแƒ™แƒ˜ #
  • แƒœแƒแƒงแƒแƒ แƒ˜ แƒฌแƒแƒจแƒšแƒ
  • แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ-แƒ‘แƒšแƒแƒ™แƒ˜
  • VERIFY-SETUP
  • READ-BYTE: 10110aaaaaaZDDDDDDDDDZ1, แƒกแƒแƒ“แƒแƒช DDDDDDDD = แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ, aaaaaa = แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜ (6 แƒ‘แƒ˜แƒขแƒ˜)
  • WRITE-BYTE: 10010aaaaaaddddddd111, แƒกแƒแƒ“แƒแƒช dddddddd = แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒšแƒ˜แƒ, aaaaaa = แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜ (6 แƒ‘แƒ˜แƒขแƒ˜)
  • แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒ
  • CHECKSUM-SETUP
  • READ-CHECKSUM: 10111111001ZDDDDDDDDDZ110111111000ZDDDDDDDDZ1, แƒกแƒแƒ“แƒแƒช DDDDDDDDDDDDDDDDDD = แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ’แƒแƒ›แƒแƒ“แƒ˜แƒก: แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜
  • แƒ‘แƒšแƒแƒ™แƒ˜แƒก แƒฌแƒแƒจแƒšแƒ

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, Initialize-2-แƒ˜แƒก แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜:

1101111011100000000111 1101111011000000000111
1001111100000111010111 1001111100100000011111
1101111010100000000111 1101111010000000011111
1001111101110000000111 1101111100100110000111
1101111101001000000111 1001111101000000001111
1101111000000000110111 1101111100000000000111
1101111111100010010111

แƒงแƒ•แƒ”แƒšแƒ แƒ•แƒ”แƒฅแƒขแƒแƒ แƒก แƒแƒฅแƒ•แƒก แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒกแƒ˜แƒ’แƒ แƒซแƒ”: 22 แƒ‘แƒ˜แƒขแƒ˜. HSSP-แƒ˜แƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒก แƒแƒฅแƒ•แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ ISSP-แƒ–แƒ”: โ€žISSP แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜ แƒกแƒฎแƒ•แƒ แƒแƒ แƒแƒคแƒ”แƒ แƒ˜แƒ, แƒ—แƒฃ แƒแƒ แƒ แƒชแƒแƒขแƒ แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒแƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฌแƒแƒ แƒ›แƒแƒแƒ“แƒ’แƒ”แƒœแƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ”แƒ แƒ—แƒแƒ‘แƒšแƒ˜แƒแƒ‘แƒแƒกโ€œ.

5.2. แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ”แƒ›แƒ˜แƒกแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ

แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒแƒ แƒ™แƒ•แƒ˜แƒแƒ— แƒ แƒ แƒฎแƒ“แƒ”แƒ‘แƒ แƒแƒฅ. แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“ แƒ•แƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ‘แƒ“แƒ˜, แƒ แƒแƒ› แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ”แƒ‘แƒ˜ แƒ˜แƒงแƒ M8C แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒœแƒ”แƒ“แƒšแƒ”แƒฃแƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ› แƒฐแƒ˜แƒžแƒแƒ—แƒ”แƒ–แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒแƒฆแƒ›แƒแƒ•แƒแƒฉแƒ˜แƒœแƒ”, แƒ แƒแƒ› แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒžแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜ แƒแƒ  แƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ.

แƒ›แƒ”แƒ แƒ” แƒ“แƒแƒ•แƒ’แƒฃแƒ’แƒšแƒ” แƒ–แƒ”แƒ›แƒแƒ— แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜ แƒ“แƒ แƒฌแƒแƒ•แƒแƒฌแƒงแƒ“แƒ˜ แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ™แƒ•แƒšแƒ”แƒ•แƒ, แƒกแƒแƒ“แƒแƒช แƒแƒ•แƒขแƒแƒ แƒ˜, แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ› แƒ“แƒ”แƒขแƒแƒšแƒ”แƒ‘แƒจแƒ˜ แƒแƒ  แƒจแƒ”แƒ“แƒ˜แƒก, แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒ แƒฉแƒ”แƒ•แƒแƒก: โ€แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ แƒกแƒแƒ›แƒ˜ แƒ‘แƒ˜แƒขแƒ˜แƒ—, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒจแƒ”แƒ”แƒกแƒแƒ‘แƒแƒ›แƒ”แƒ‘แƒ แƒแƒ—แƒฎแƒ˜แƒ“แƒแƒœ แƒ”แƒ แƒ—แƒก แƒ›แƒœแƒ”แƒ›แƒแƒœแƒ˜แƒ™แƒแƒก (แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ— RAM-แƒ“แƒแƒœ, แƒฉแƒแƒฌแƒ”แƒ แƒ”แƒ— RAM-แƒจแƒ˜, แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ— แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒ, แƒฉแƒแƒฌแƒ”แƒ แƒ”แƒ— แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒ). แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒแƒ แƒ˜แƒก 8 แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒก แƒ‘แƒ˜แƒขแƒ˜, แƒ แƒแƒกแƒแƒช แƒ›แƒแƒฐแƒงแƒ•แƒ”แƒ‘แƒ 8 แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒ˜แƒขแƒ˜ (แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ แƒแƒœ แƒฉแƒแƒฌแƒ”แƒ แƒ) แƒ“แƒ แƒ‘แƒแƒšแƒแƒก แƒกแƒแƒ›แƒ˜ แƒ’แƒแƒฉแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ‘แƒ˜แƒขแƒ˜.โ€

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒ” แƒจแƒ”แƒ•แƒซแƒ”แƒšแƒ˜ แƒซแƒแƒšแƒ˜แƒแƒœ แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒžแƒแƒ•แƒ”แƒ‘แƒ Supervisory ROM (SROM) แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ. แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ›แƒซแƒฆแƒ•แƒแƒœแƒ”แƒšแƒ. SROM แƒแƒ แƒ˜แƒก แƒ›แƒงแƒแƒ แƒ˜ แƒ™แƒแƒ“แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ ROM PSoC-แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒก (Syscall-แƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒแƒ“) แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜:

  • 00 แƒกแƒ—: SWBoot Reset
  • 01 แƒกแƒ—: ReadBlock
  • 02 แƒกแƒ—: WriteBlock
  • 03 แƒกแƒ—: แƒฌแƒแƒจแƒšแƒ แƒ‘แƒšแƒแƒ™แƒ˜
  • 06h: TableRead
  • 07 แƒกแƒ—: CheckSum
  • 08 แƒกแƒ—: แƒ“แƒแƒ™แƒแƒšแƒ˜แƒ‘แƒ แƒ”แƒ‘แƒ 0
  • 09 แƒกแƒ—: แƒ“แƒแƒ™แƒแƒšแƒ˜แƒ‘แƒ แƒ”แƒ‘แƒ 1

แƒ•แƒ”แƒฅแƒขแƒแƒ แƒฃแƒšแƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก SROM แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ“แƒแƒ•แƒแƒคแƒ˜แƒฅแƒกแƒ˜แƒ แƒแƒ— แƒแƒ› แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜แƒ— แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ›แƒแƒกแƒแƒšแƒแƒ“แƒœแƒ”แƒš SROM แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ—แƒแƒœ. แƒแƒ›แƒ˜แƒก แƒฌแƒงแƒแƒšแƒแƒ‘แƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ•แƒจแƒ˜แƒคแƒ แƒแƒ— ISSP แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒกแƒแƒ›แƒ˜ แƒ‘แƒ˜แƒขแƒ˜:

  • 100 => "wrem"
  • 101 => "rdmem"
  • 110 => "wrreg"
  • 111 => "แƒ แƒ”แƒ’แƒฃแƒšแƒแƒชแƒ˜แƒ"

แƒ—แƒฃแƒ›แƒชแƒ, แƒฉแƒ˜แƒžแƒ–แƒ” แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ’แƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ PSoC-แƒ—แƒแƒœ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ แƒ˜ แƒ™แƒแƒ›แƒฃแƒœแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒ—.

5.3. แƒ™แƒแƒ›แƒฃแƒœแƒ˜แƒ™แƒแƒชแƒ˜แƒ PSoC-แƒ—แƒแƒœ

แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒ“แƒ˜แƒ แƒ™ แƒžแƒ”แƒขแƒ แƒแƒฃแƒชแƒ™แƒ˜ แƒฃแƒ™แƒ•แƒ” แƒžแƒแƒ แƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ Cypress-แƒ˜แƒก HSSP แƒ™แƒแƒ“แƒ˜ Arduino-แƒ–แƒ”, แƒ›แƒ” แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ” Arduino Uno แƒ™แƒšแƒแƒ•แƒ˜แƒแƒขแƒฃแƒ แƒ˜แƒก แƒ“แƒแƒคแƒ˜แƒก ISSP แƒ™แƒแƒœแƒ”แƒฅแƒขแƒแƒ แƒ—แƒแƒœ แƒ“แƒแƒกแƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒšแƒแƒ“.

แƒ’แƒ—แƒฎแƒแƒ•แƒ— แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒแƒ—, แƒ แƒแƒ› แƒฉแƒ”แƒ›แƒ˜ แƒ™แƒ•แƒšแƒ”แƒ•แƒ˜แƒก แƒ“แƒ แƒแƒก แƒ›แƒ” แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒจแƒ”แƒ•แƒชแƒ•แƒแƒšแƒ” แƒ“แƒ˜แƒ แƒ™แƒ˜แƒก แƒ™แƒแƒ“แƒ˜. แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒžแƒแƒ•แƒแƒ— แƒฉแƒ”แƒ›แƒ˜ แƒ›แƒแƒ“แƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ GitHub-แƒ–แƒ”: แƒแƒฅ แƒ“แƒ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ Arduino-แƒกแƒ—แƒแƒœ แƒ™แƒแƒ›แƒฃแƒœแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒฉแƒ”แƒ›แƒก แƒกแƒแƒชแƒแƒ•แƒจแƒ˜ cypress_psoc_tools.

แƒแƒกแƒ” แƒ แƒแƒ›, Arduino-แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ” แƒ›แƒฎแƒแƒšแƒแƒ“ "แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜" แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ”แƒ‘แƒ˜ "แƒ™แƒแƒ›แƒฃแƒœแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก". แƒ•แƒชแƒแƒ“แƒ” แƒจแƒ˜แƒ“แƒ ROM-แƒ˜แƒก แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ VERIFY แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒกแƒแƒšแƒแƒ“แƒœแƒ”แƒšแƒ˜ แƒ˜แƒงแƒ, แƒ›แƒ” แƒ”แƒก แƒ•แƒ”แƒ  แƒ›แƒแƒ•แƒแƒฎแƒ”แƒ แƒฎแƒ”. แƒแƒšแƒ‘แƒแƒ— แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ แƒแƒ› แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒ“แƒแƒชแƒ•แƒ˜แƒก แƒ‘แƒ˜แƒขแƒ”แƒ‘แƒ˜ แƒ’แƒแƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒคแƒšแƒ”แƒจ แƒ“แƒ แƒแƒ˜แƒ•แƒจแƒ˜.

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ•แƒฅแƒ›แƒ”แƒœแƒ˜ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฉแƒ”แƒ›แƒ˜ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก/แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒกแƒ แƒ“แƒ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ’แƒ—แƒฎแƒแƒ•แƒ— แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒแƒ—, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒฌแƒแƒ•แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ— แƒ›แƒ—แƒ”แƒšแƒ˜ SROM, แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ› แƒคแƒšแƒ”แƒจ แƒ“แƒ แƒแƒ˜แƒ•แƒ˜ แƒ“แƒแƒชแƒฃแƒšแƒ˜แƒ!

5.4. แƒฉแƒ˜แƒžแƒ–แƒ” แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ

โ€žแƒ“แƒแƒจแƒšแƒ˜แƒšแƒ˜โ€œ แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ—แƒ•แƒแƒšแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒแƒฆแƒ›แƒแƒ•แƒแƒฉแƒ˜แƒœแƒ”, แƒ แƒแƒ› แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ“แƒแƒฃแƒกแƒแƒ‘แƒฃแƒ—แƒ”แƒ‘แƒ”แƒš แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ”แƒ‘แƒก (0xF8-0xFA) M8C แƒแƒžแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒแƒ–แƒฃแƒกแƒขแƒ”แƒ‘แƒšแƒแƒ“, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒฃแƒจแƒฃแƒแƒšแƒแƒ“ แƒ“แƒแƒชแƒ•แƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒแƒ•แƒšแƒ˜แƒ—. แƒแƒ›แƒแƒœ แƒ›แƒแƒ›แƒชแƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒ”แƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒœแƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒ™แƒแƒ“แƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ "ADD", "MOV A, X", "PUSH" แƒแƒœ "JMP". แƒ›แƒแƒ—แƒ˜ แƒฌแƒงแƒแƒšแƒแƒ‘แƒ˜แƒ— (แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ”แƒ‘แƒ–แƒ” แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒ—แƒ˜ แƒ”แƒคแƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ—แƒ•แƒแƒšแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒ—) แƒ›แƒ” แƒจแƒ”แƒ•แƒซแƒ”แƒšแƒ˜ แƒ’แƒแƒœแƒ•แƒกแƒแƒ–แƒฆแƒ•แƒ แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒ“แƒแƒฃแƒกแƒแƒ‘แƒฃแƒ—แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ˜ แƒ˜แƒงแƒ แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ”แƒ‘แƒ˜ (A, X, SP แƒ“แƒ PC).

แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, HSSP_disas.rb แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ โ€žแƒ“แƒแƒจแƒšแƒ˜แƒšแƒ˜โ€œ แƒ™แƒแƒ“แƒ˜ แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ (แƒกแƒ˜แƒชแƒฎแƒแƒ“แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ‘แƒ˜ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ”):

--== init2 ==--
[DE E0 1C] wrreg CPU_F (f7), 0x00   # ัะฑั€ะพั ั„ะปะฐะณะพะฒ
[DE C0 1C] wrreg SP (f6), 0x00      # ัะฑั€ะพั SP
[9F 07 5C] wrmem KEY1, 0x3A     # ะพะฑัะทะฐั‚ะตะปัŒะฝั‹ะน ะฐั€ะณัƒะผะตะฝั‚ ะดะปั SSC
[9F 20 7C] wrmem KEY2, 0x03     # ะฐะฝะฐะปะพะณะธั‡ะฝะพ
[DE A0 1C] wrreg PCh (f5), 0x00     # ัะฑั€ะพั PC (MSB) ...
[DE 80 7C] wrreg PCl (f4), 0x03     # (LSB) ... ะดะพ 3 ??
[9F 70 1C] wrmem POINTER, 0x80      # RAM-ัƒะบะฐะทะฐั‚ะตะปัŒ ะดะปั ะฒั‹ั…ะพะดะฝั‹ั… ะดะฐะฝะฝั‹ั…
[DF 26 1C] wrreg opc1 (f9), 0x30        # ะžะฟะบะพะด 1 => "HALT"
[DF 48 1C] wrreg opc2 (fa), 0x40        # ะžะฟะบะพะด 2 => "NOP"
[9F 40 3C] wrmem BLOCKID, 0x01  # BLOCK ID ะดะปั ะฒั‹ะทะพะฒะฐ SSC
[DE 00 DC] wrreg A (f0), 0x06       # ะฝะพะผะตั€ "Syscall" : TableRead
[DF 00 1C] wrreg opc0 (f8), 0x00        # ะžะฟะบะพะด ะดะปั SSC, "Supervisory SROM Call"
[DF E2 5C] wrreg CPU_SCR0 (ff), 0x12    # ะะตะดะพะบัƒะผะผะตะฝั‚ะธั€ะพะฒะฐะฝะฝะฐั ะพะฟะตั€ะฐั†ะธั: ะฒั‹ะฟะพะปะฝะธั‚ัŒ ะฒะฝะตัˆะฝะธะน ะพะฟะบะพะด

5.5. แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ”แƒ‘แƒ˜แƒก แƒ‘แƒ˜แƒขแƒ”แƒ‘แƒ˜

แƒแƒ› แƒ”แƒขแƒแƒžแƒ–แƒ” แƒฃแƒ™แƒ•แƒ” แƒจแƒ”แƒ›แƒ˜แƒซแƒšแƒ˜แƒ PSoC-แƒ—แƒแƒœ แƒ™แƒแƒ›แƒฃแƒœแƒ˜แƒ™แƒแƒชแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒแƒ  แƒ›แƒแƒฅแƒ•แƒก แƒกแƒแƒœแƒ“แƒ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒคแƒšแƒ”แƒจ แƒ“แƒ แƒแƒ˜แƒ•แƒ˜แƒก แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ”แƒ‘แƒ˜แƒก แƒ‘แƒ˜แƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒซแƒแƒšแƒ˜แƒแƒœ แƒ’แƒแƒ›แƒ˜แƒ™แƒ•แƒ˜แƒ แƒ“แƒ แƒ˜แƒก แƒคแƒแƒฅแƒขแƒ˜, แƒ แƒแƒ› Cypress แƒแƒ  แƒแƒฌแƒ•แƒ“แƒ˜แƒก แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒก แƒแƒ แƒแƒœแƒแƒ˜แƒ  แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก, แƒ แƒแƒ—แƒ แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒแƒก แƒแƒ แƒ˜แƒก แƒ—แƒฃ แƒแƒ แƒ แƒ“แƒแƒชแƒ•แƒ แƒ’แƒแƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ”แƒ‘แƒฃแƒšแƒ˜. แƒฃแƒคแƒ แƒ แƒฆแƒ แƒ›แƒแƒ“ แƒฉแƒแƒ•แƒฃแƒฆแƒ แƒ›แƒแƒ•แƒ“แƒ˜ Google-แƒก, แƒ แƒแƒ—แƒ แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“ แƒ’แƒแƒ•แƒ˜แƒ’แƒ, แƒ แƒแƒ› Cypress-แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ›แƒแƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ HSSP แƒ™แƒแƒ“แƒ˜ แƒ’แƒแƒœแƒแƒฎแƒšแƒ“แƒ แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒช แƒ“แƒ˜แƒ แƒ™แƒ›แƒ แƒ’แƒแƒ›แƒแƒฃแƒจแƒ•แƒ แƒ—แƒแƒ•แƒ˜แƒกแƒ˜ แƒ›แƒแƒ“แƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ. แฒแƒ›แƒ˜แƒขแƒแƒ›แƒแƒช! แƒ”แƒก แƒแƒฎแƒแƒšแƒ˜ แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ:

[DE E0 1C] wrreg CPU_F (f7), 0x00
[DE C0 1C] wrreg SP (f6), 0x00
[9F 07 5C] wrmem KEY1, 0x3A
[9F 20 7C] wrmem KEY2, 0x03
[9F A0 1C] wrmem 0xFD, 0x00 # ะฝะตะธะทะฒะตัั‚ะฝั‹ะต ะฐั€ะณัƒะผะตะฝั‚ั‹
[9F E0 1C] wrmem 0xFF, 0x00 # ะฐะฝะฐะปะพะณะธั‡ะฝะพ
[DE A0 1C] wrreg PCh (f5), 0x00
[DE 80 7C] wrreg PCl (f4), 0x03
[9F 70 1C] wrmem POINTER, 0x80
[DF 26 1C] wrreg opc1 (f9), 0x30
[DF 48 1C] wrreg opc2 (fa), 0x40
[DE 02 1C] wrreg A (f0), 0x10   # ะฝะตะดะพะบัƒะผะตะฝั‚ะธั€ะพะฒะฐะฝะฝั‹ะน syscall !
[DF 00 1C] wrreg opc0 (f8), 0x00
[DF E2 5C] wrreg CPU_SCR0 (ff), 0x12

แƒแƒ› แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— (แƒ˜แƒฎแƒ˜แƒšแƒ”แƒ— read_security_data psoc.py-แƒจแƒ˜), แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ”แƒ‘แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ‘แƒ˜แƒขแƒก SRAM-แƒจแƒ˜ 0x80-แƒ–แƒ”, แƒกแƒแƒ“แƒแƒช แƒแƒ แƒ˜แƒก แƒแƒ แƒ˜ แƒ‘แƒ˜แƒขแƒ˜ แƒ—แƒ˜แƒ—แƒ แƒ“แƒแƒชแƒฃแƒš แƒ‘แƒšแƒแƒ™แƒจแƒ˜.

แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒ“แƒแƒ›แƒ—แƒ แƒ’แƒฃแƒœแƒ•แƒ”แƒšแƒ˜แƒ: แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ“แƒแƒชแƒฃแƒšแƒ˜แƒ "แƒ’แƒแƒ แƒ” แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒกแƒ แƒ“แƒ แƒฌแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ" แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜. แƒ›แƒแƒจแƒแƒกแƒแƒ“แƒแƒ›แƒ”, แƒคแƒšแƒ”แƒจ แƒ“แƒ แƒแƒ˜แƒ•แƒ˜แƒ“แƒแƒœ แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ•แƒ”แƒ แƒแƒคแƒ”แƒ แƒก แƒฌแƒแƒ•แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ•แƒ—, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒ•แƒ”แƒ แƒช แƒ•แƒ”แƒ แƒแƒคแƒ”แƒ แƒก แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒ— (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, ROM-แƒ˜แƒก แƒ“แƒฃแƒ›แƒžแƒ”แƒ แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ). แƒ“แƒ แƒ“แƒแƒชแƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒ”แƒ แƒ—แƒแƒ“แƒ”แƒ แƒ—แƒ˜ แƒ’แƒ–แƒ แƒแƒ แƒ˜แƒก แƒ›แƒ—แƒ”แƒšแƒ˜ แƒฉแƒ˜แƒžแƒ˜แƒก แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒแƒ“ แƒฌแƒแƒจแƒšแƒ. ๐Ÿ™

6. แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ (แƒฉแƒแƒ•แƒแƒ แƒ“แƒœแƒ˜แƒšแƒ˜) แƒจแƒ”แƒขแƒ”แƒ•แƒ: ROMX

แƒ—แƒฃแƒ›แƒชแƒ, แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ•แƒชแƒแƒ“แƒแƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒฎแƒ แƒ˜แƒ™แƒ˜: แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒ—แƒ•แƒ˜แƒ—แƒœแƒ”แƒ‘แƒฃแƒ แƒ˜ แƒแƒžแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ, แƒ แƒแƒขแƒแƒ› แƒแƒ  แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ•แƒแƒกแƒ แƒฃแƒšแƒแƒ— ROMX, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒคแƒšแƒ”แƒจ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒฌแƒแƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒแƒ“? แƒแƒ› แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒ แƒ’แƒ˜ แƒจแƒแƒœแƒกแƒ˜. แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ แƒแƒ› ReadBlock แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒแƒ‘แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก SROM-แƒ“แƒแƒœ (แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ”แƒ‘แƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ) แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก, แƒแƒ แƒ˜แƒก แƒ—แƒฃ แƒแƒ แƒ แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒ ISSP-แƒ“แƒแƒœ. แƒ—แƒฃแƒ›แƒชแƒ, ROMX opcode-แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒ  แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒก แƒแƒกแƒ”แƒ—แƒ˜ แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ. แƒแƒ˜, แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒ™แƒแƒ“แƒ˜ (แƒแƒ แƒ“แƒฃแƒ˜แƒœแƒแƒก แƒ™แƒแƒ“แƒจแƒ˜ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ“แƒแƒ›แƒฎแƒ›แƒแƒ แƒ” แƒ™แƒšแƒแƒกแƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’):

for i in range(0, 8192):
    write_reg(0xF0, i>>8)       # A = 0
    write_reg(0xF3, i&0xFF)     # X = 0
    exec_opcodes("x28x30x40")    # ROMX, HALT, NOP
    byte = read_reg(0xF0)       # ROMX reads ROM[A|X] into A
    print "%02x" % ord(byte[0]) # print ROM byte

แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“ แƒ”แƒก แƒ™แƒแƒ“แƒ˜ แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก. ๐Ÿ™ แƒฃแƒคแƒ แƒ แƒกแƒฌแƒแƒ แƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ–แƒ” แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒกแƒแƒ™แƒฃแƒ—แƒแƒ  แƒแƒžแƒ™แƒแƒ“แƒ”แƒ‘แƒก (0x28 0x30 0x40)! แƒแƒ  แƒ›แƒ’แƒแƒœแƒ˜แƒ, แƒ แƒแƒ› แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒ“แƒแƒชแƒ•แƒ˜แƒก แƒ”แƒšแƒ”แƒ›แƒ”แƒœแƒขแƒ˜แƒ. แƒ”แƒก แƒฃแƒคแƒ แƒ แƒกแƒแƒ˜แƒœแƒŸแƒ˜แƒœแƒ แƒ แƒฎแƒ แƒ˜แƒ™แƒก แƒฐแƒ’แƒแƒ•แƒก: แƒ’แƒแƒ แƒ” แƒแƒžแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒกแƒแƒก, ROM แƒแƒ•แƒขแƒแƒ‘แƒฃแƒกแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒ แƒแƒ”แƒ‘แƒ˜แƒ— แƒ‘แƒฃแƒคแƒ”แƒ แƒ–แƒ”.

7. แƒ›แƒ”แƒแƒ แƒ” แƒจแƒ”แƒขแƒ”แƒ•แƒ: Cold Boot Tracing

แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ แƒแƒ› ROMX แƒ˜แƒšแƒ”แƒ—แƒ›แƒ แƒแƒ  แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ, แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ” แƒคแƒ˜แƒฅแƒ แƒ˜ แƒแƒ› แƒฎแƒ แƒ˜แƒ™แƒ˜แƒก แƒกแƒฎแƒ•แƒ แƒ•แƒแƒ แƒ˜แƒแƒชแƒ˜แƒแƒ–แƒ” - แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒžแƒฃแƒ‘แƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒจแƒ˜ "แƒ›แƒ˜แƒ™แƒ แƒแƒกแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒฃแƒšแƒ˜ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒ˜แƒก แƒ“แƒแƒชแƒ•แƒแƒ–แƒ” แƒ–แƒ”แƒ“แƒ›แƒ”แƒขแƒแƒ“ แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒกแƒ˜แƒœแƒแƒ—แƒšแƒ˜แƒก แƒ›แƒแƒชแƒ˜แƒšแƒ”แƒ‘แƒ".

7.1. แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ

ISSP แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ แƒ’แƒ—แƒแƒ•แƒแƒ–แƒแƒ‘แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ•แƒ”แƒฅแƒขแƒแƒ แƒก CHECKSUM-SETUP-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก:

[DE E0 1C] wrreg CPU_F (f7), 0x00
[DE C0 1C] wrreg SP (f6), 0x00
[9F 07 5C] wrmem KEY1, 0x3A
[9F 20 7C] wrmem KEY2, 0x03
[DE A0 1C] wrreg PCh (f5), 0x00
[DE 80 7C] wrreg PCl (f4), 0x03
[9F 70 1C] wrmem POINTER, 0x80
[DF 26 1C] wrreg opc1 (f9), 0x30
[DF 48 1C] wrreg opc2 (fa), 0x40
[9F 40 1C] wrmem BLOCKID, 0x00
[DE 00 FC] wrreg A (f0), 0x07
[DF 00 1C] wrreg opc0 (f8), 0x00
[DF E2 5C] wrreg CPU_SCR0 (ff), 0x12

แƒ”แƒก แƒแƒ แƒกแƒ”แƒ‘แƒ˜แƒ—แƒแƒ“ แƒฃแƒฌแƒแƒ“แƒ”แƒ‘แƒก SROM แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก 0x07, แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜แƒ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒจแƒ˜ (แƒ“แƒแƒฎแƒ แƒ˜แƒšแƒ˜ แƒฉแƒ”แƒ›แƒ˜แƒ):

แƒ”แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ. แƒ˜แƒก แƒ˜แƒ—แƒ•แƒšแƒ˜แƒก 16-แƒ‘แƒ˜แƒขแƒ˜แƒแƒœ แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ‘แƒšแƒแƒ™แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒ”แƒ แƒ— แƒคแƒšแƒ”แƒจ แƒ‘แƒแƒœแƒ™แƒจแƒ˜, แƒœแƒฃแƒšแƒ˜แƒ“แƒแƒœ แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒฃแƒšแƒ˜. BLOCKID แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ˜แƒ› แƒ‘แƒšแƒแƒ™แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒชแƒ”แƒ›แƒแƒ“, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜แƒก แƒ’แƒแƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ”แƒ‘แƒ˜แƒกแƒแƒก. แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ "1" แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒก แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒœแƒฃแƒšแƒแƒ•แƒแƒœแƒ˜ แƒ‘แƒšแƒแƒ™แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก; แƒฎแƒแƒšแƒ "0" แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ”แƒ•แƒก แƒคแƒšแƒ”แƒจ แƒ‘แƒแƒœแƒ™แƒ˜แƒก 256-แƒ•แƒ” แƒ‘แƒšแƒแƒ™แƒ˜แƒก แƒฏแƒแƒ›แƒฃแƒ แƒ˜ แƒฏแƒแƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒแƒก. 16-แƒ‘แƒ˜แƒขแƒ˜แƒแƒœแƒ˜ แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜ แƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒ‘แƒ KEY1 แƒ“แƒ KEY2 แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—. KEY1 แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ˜แƒœแƒแƒฎแƒแƒ•แƒก แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜แƒก แƒ“แƒแƒ‘แƒแƒšแƒ˜ แƒ แƒ˜แƒ’แƒ˜แƒก 8 แƒ‘แƒ˜แƒขแƒก, แƒฎแƒแƒšแƒ KEY2 แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ˜แƒœแƒแƒฎแƒแƒ•แƒก แƒ›แƒแƒฆแƒแƒšแƒ˜ แƒ แƒ˜แƒ’แƒ˜แƒก 8 แƒ‘แƒ˜แƒขแƒก. แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒคแƒšแƒ”แƒจ แƒ‘แƒแƒœแƒ™แƒ˜แƒก แƒ›แƒฅแƒแƒœแƒ” แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒ’แƒแƒ›แƒแƒ˜แƒซแƒแƒฎแƒ”แƒ‘แƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒชแƒแƒšแƒ™แƒ”. แƒ‘แƒแƒœแƒ™แƒ˜แƒก แƒœแƒแƒ›แƒ”แƒ แƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒ—แƒแƒช แƒ˜แƒก แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก, แƒ“แƒ’แƒ˜แƒœแƒ“แƒ”แƒ‘แƒ FLS_PR1 แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ˜แƒ— (แƒ›แƒแƒกแƒจแƒ˜ แƒ‘แƒ˜แƒขแƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ”แƒกแƒแƒ‘แƒแƒ›แƒ”แƒ‘แƒ แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒคแƒšแƒ”แƒจ แƒ‘แƒแƒœแƒ™แƒก).

แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ—, แƒ แƒแƒ› แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜: แƒ‘แƒแƒ˜แƒขแƒ”แƒ‘แƒ˜ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ”แƒ›แƒแƒขแƒ”แƒ‘แƒ แƒ”แƒ แƒ—แƒ›แƒแƒœแƒ”แƒ—แƒ˜แƒก แƒ›แƒ˜แƒงแƒแƒšแƒ”แƒ‘แƒ˜แƒ—; แƒแƒ  แƒแƒ แƒ˜แƒก แƒšแƒแƒ›แƒแƒ–แƒ˜ CRC แƒฃแƒชแƒœแƒแƒฃแƒ แƒแƒ‘แƒ”แƒ‘แƒ˜. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒ˜แƒ›แƒ˜แƒก แƒชแƒแƒ“แƒœแƒ, แƒ แƒแƒ› M8C แƒ‘แƒ˜แƒ แƒ—แƒ•แƒก แƒแƒฅแƒ•แƒก แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒชแƒ˜แƒ แƒ” แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜, แƒ›แƒ” แƒ•แƒ˜แƒ•แƒแƒ แƒแƒฃแƒ“แƒ”, แƒ แƒแƒ› แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜แƒก แƒ’แƒแƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ”แƒ‘แƒ˜แƒกแƒแƒก, แƒจแƒฃแƒแƒšแƒ”แƒ“แƒฃแƒ แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜ แƒฉแƒแƒ˜แƒฌแƒ”แƒ แƒ”แƒ‘แƒ แƒ˜แƒ›แƒแƒ•แƒ” แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒจแƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“ แƒ’แƒแƒ“แƒแƒ•แƒ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ–แƒ”: KEY1 (0xF8) / KEY2 ( 0xF9).

แƒแƒกแƒ” แƒ แƒแƒ›, แƒ—แƒ”แƒแƒ แƒ˜แƒฃแƒšแƒแƒ“ แƒฉแƒ”แƒ›แƒ˜ แƒจแƒ”แƒขแƒ”แƒ•แƒ แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ:

  1. แƒฉแƒ•แƒ”แƒœ แƒ•แƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ˜แƒ— ISSP-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—.
  2. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒแƒก CHECKSUM-SETUP แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.
  3. แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒ— แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒก แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒฃแƒšแƒ˜ แƒ“แƒ แƒแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ T.
  4. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒแƒ‘แƒ— RAM-แƒก, แƒ แƒแƒ› แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒแƒ— แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜ C.
  5. แƒ’แƒแƒ˜แƒ›แƒ”แƒแƒ แƒ”แƒ— แƒœแƒแƒ‘แƒ˜แƒฏแƒ”แƒ‘แƒ˜ 3 แƒ“แƒ 4, แƒงแƒแƒ•แƒ”แƒš แƒฏแƒ”แƒ แƒ–แƒ” แƒแƒ“แƒœแƒแƒ• แƒ’แƒแƒ–แƒแƒ แƒ“แƒ”แƒ— T.
  6. แƒฉแƒ•แƒ”แƒœ แƒแƒฆแƒ•แƒแƒ“แƒ’แƒ”แƒœแƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒคแƒšแƒ”แƒจ แƒ“แƒ แƒแƒ˜แƒ•แƒ˜แƒ“แƒแƒœ แƒฌแƒ˜แƒœแƒ แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜แƒก C-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ™แƒšแƒ”แƒ‘แƒ˜แƒ—.

แƒ—แƒฃแƒ›แƒชแƒ, แƒแƒ แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ: Initialize-1 แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ•แƒ’แƒ–แƒแƒ•แƒœแƒแƒ— แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ’แƒแƒ“แƒแƒฌแƒ”แƒ แƒก KEY1 แƒ“แƒ KEY2:

1100101000000000000000  # ะœะฐะณะธั, ะฟะตั€ะตะฒะพะดัั‰ะฐั PSoC ะฒ ั€ะตะถะธะผ ะฟั€ะพะณั€ะฐะผะผะธั€ะพะฒะฐะฝะธั
nop
nop
nop
nop
nop
[DE E0 1C] wrreg CPU_F (f7), 0x00
[DE C0 1C] wrreg SP (f6), 0x00
[9F 07 5C] wrmem KEY1, 0x3A # ะบะพะฝั‚ั€ะพะปัŒะฝะฐั ััƒะผะผะฐ ะฟะตั€ะตะทะฐะฟะธัั‹ะฒะฐะตั‚ัั ะทะดะตััŒ
[9F 20 7C] wrmem KEY2, 0x03 # ะธ ะทะดะตััŒ
[DE A0 1C] wrreg PCh (f5), 0x00
[DE 80 7C] wrreg PCl (f4), 0x03
[9F 70 1C] wrmem POINTER, 0x80
[DF 26 1C] wrreg opc1 (f9), 0x30
[DF 48 1C] wrreg opc2 (fa), 0x40
[DE 01 3C] wrreg A (f0), 0x09   # SROM-ั„ัƒะฝะบั†ะธั 9
[DF 00 1C] wrreg opc0 (f8), 0x00    # SSC
[DF E2 5C] wrreg CPU_SCR0 (ff), 0x12

แƒ”แƒก แƒ™แƒแƒ“แƒ˜ แƒ’แƒแƒ“แƒแƒฌแƒ”แƒ แƒก แƒฉแƒ•แƒ”แƒœแƒก แƒซแƒ•แƒ˜แƒ แƒคแƒแƒก แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒก Calibrate1-แƒ˜แƒก (SROM แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ 9) แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒ˜แƒ—... แƒ˜แƒฅแƒœแƒ”แƒ‘ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒ•แƒแƒ’แƒ–แƒแƒ•แƒœแƒแƒ— แƒฏแƒแƒ“แƒแƒกแƒœแƒฃแƒ แƒ˜ แƒœแƒแƒ›แƒ”แƒ แƒ˜ (แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜แƒ“แƒแƒœ) แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜ แƒจแƒ”แƒกแƒ•แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฌแƒแƒ•แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ— SRAM? แƒ“แƒ แƒ“แƒ˜แƒแƒฎ, แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก! Arduino แƒ™แƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒก แƒแƒ› แƒจแƒ”แƒขแƒ”แƒ•แƒแƒก, แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ:

case Cmnd_STK_START_CSUM:
    checksum_delay = ((uint32_t)getch())<<24;
    checksum_delay |= ((uint32_t)getch())<<16;
    checksum_delay |= ((uint32_t)getch())<<8;
    checksum_delay |= getch();
    if(checksum_delay > 10000) {
        ms_delay = checksum_delay/1000;
        checksum_delay = checksum_delay%1000;
    }
    else {
        ms_delay = 0;
    }
    send_checksum_v();
    if(checksum_delay)
        delayMicroseconds(checksum_delay);
    delay(ms_delay);
    start_pmode();

  1. แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ— checkum_delay.
  2. แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜แƒก แƒ’แƒแƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ”แƒ‘แƒ (send_checksum_v).
  3. แƒ“แƒแƒ”แƒšแƒแƒ“แƒ”แƒ— แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒฃแƒš แƒžแƒ”แƒ แƒ˜แƒแƒ“แƒก; แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒฎแƒแƒ แƒ•แƒ”แƒ–แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒ—:
    • แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ“แƒ แƒ แƒ“แƒแƒ•แƒ™แƒแƒ แƒ’แƒ”, แƒกแƒแƒœแƒแƒ› แƒแƒ  แƒ’แƒแƒ•แƒ˜แƒ’แƒ”, แƒ แƒ แƒ’แƒแƒ›แƒแƒ“แƒ˜แƒก แƒ“แƒแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒ แƒ›แƒ˜แƒ™แƒ แƒแƒฌแƒแƒ›แƒ”แƒ‘แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒกแƒฌแƒแƒ แƒแƒ“ แƒ›แƒฎแƒแƒšแƒแƒ“ 16383 ฮผs-แƒ–แƒ” แƒ›แƒ”แƒขแƒ˜ แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ˜แƒ—;
    • แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ˜แƒกแƒ”แƒ• แƒ“แƒแƒ•แƒ™แƒแƒ แƒ’แƒ” แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ“แƒ แƒ, แƒกแƒแƒœแƒแƒ› แƒแƒ  แƒแƒฆแƒ›แƒแƒ•แƒแƒฉแƒ˜แƒœแƒ”, แƒ แƒแƒ› delayMicroseconds, แƒ—แƒฃ แƒ›แƒแƒก 0 แƒ’แƒแƒ“แƒแƒ”แƒชแƒ”แƒ›แƒ แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—, แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒกแƒ แƒฃแƒšแƒ˜แƒแƒ“ แƒแƒ แƒแƒกแƒฌแƒแƒ แƒแƒ“!
  4. แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ— PSoC แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜ (แƒฉแƒ•แƒ”แƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ•แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒ— แƒฏแƒแƒ“แƒแƒกแƒœแƒฃแƒ  แƒœแƒแƒ›แƒ”แƒ แƒก แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”).

แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒ™แƒแƒ“แƒ˜ แƒžแƒ˜แƒ—แƒแƒœแƒจแƒ˜:

for delay in range(0, 150000):  # ะทะฐะดะตั€ะถะบะฐ ะฒ ะผะธะบั€ะพัะตะบัƒะฝะดะฐั…
    for i in range(0, 10):      # ะบะพะปะธั‡ะตัั‚ะฒะพ ัั‡ะธั‚ั‹ะฒะฐะฝะธั ะดะปั ะบะฐะถะดะพะนะธะท ะทะฐะดะตั€ะถะตะบ
        try:
            reset_psoc(quiet=True)  # ะฟะตั€ะตะทะฐะณั€ัƒะทะบะฐ ะธ ะฒั…ะพะด ะฒ ั€ะตะถะธะผ ะฟั€ะพะณั€ะฐะผะผะธั€ะพะฒะฐะฝะธั
            send_vectors()      # ะพั‚ะฟั€ะฐะฒะบะฐ ะธะฝะธั†ะธะฐะปะธะทะธั€ัƒัŽั‰ะธั… ะฒะตะบั‚ะพั€ะพะฒ
            ser.write("x85"+struct.pack(">I", delay)) # ะฒั‹ั‡ะธัะปะธั‚ัŒ ะบะพะฝั‚ั€ะพะปัŒะฝัƒัŽ ััƒะผะผัƒ + ะฟะตั€ะตะทะฐะณั€ัƒะทะธั‚ัŒัั ะฟะพัะปะต ะทะฐะดะตั€ะถะบะธ
            res = ser.read(1)       # ัั‡ะธั‚ะฐั‚ัŒ arduino ACK
        except Exception as e:
            print e
            ser.close()
            os.system("timeout -s KILL 1s picocom -b 115200 /dev/ttyACM0 2>&1 > /dev/null")
            ser = serial.Serial('/dev/ttyACM0', 115200, timeout=0.5) # ะพั‚ะบั€ั‹ั‚ัŒ ะฟะพัะปะตะดะพะฒะฐั‚ะตะปัŒะฝั‹ะน ะฟะพั€ั‚
            continue
        print "%05d %02X %02X %02X" % (delay,      # ัั‡ะธั‚ะฐั‚ัŒ RAM-ะฑะฐะนั‚ั‹
                read_regb(0xf1),
                read_ramb(0xf8),
                read_ramb(0xf9))

แƒ›แƒแƒ™แƒšแƒ”แƒ“, แƒ แƒแƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก แƒ”แƒก แƒ™แƒแƒ“แƒ˜:

  1. แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒก PSoC-แƒก (แƒ“แƒ แƒฃแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒก แƒฏแƒแƒ“แƒแƒกแƒœแƒฃแƒ  แƒœแƒแƒ›แƒ”แƒ แƒก).
  2. แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒก แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ แƒฃแƒš แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ”แƒ‘แƒก.
  3. แƒ˜แƒซแƒแƒฎแƒ”แƒ‘แƒก Arduino แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก Cmnd_STK_START_CSUM (0x85), แƒกแƒแƒ“แƒแƒช แƒ“แƒแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒ แƒ›แƒ˜แƒ™แƒ แƒแƒฌแƒแƒ›แƒ”แƒ‘แƒจแƒ˜ แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒแƒ“.
  4. แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒแƒ‘แƒก แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒก (0xF8 แƒ“แƒ 0xF9) แƒ“แƒ แƒ“แƒแƒฃแƒกแƒแƒ‘แƒฃแƒ—แƒ”แƒ‘แƒ”แƒš แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒก 0xF1.

แƒ”แƒก แƒ™แƒแƒ“แƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ 10 แƒฏแƒ”แƒ  1 แƒ›แƒ˜แƒ™แƒ แƒแƒฌแƒแƒ›แƒจแƒ˜. 0xF1 แƒแƒฅ แƒจแƒ”แƒ“แƒ˜แƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ”แƒก แƒ˜แƒงแƒ แƒ”แƒ แƒ—แƒแƒ“แƒ”แƒ แƒ—แƒ˜ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒ แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒกแƒแƒก. แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ, แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ แƒแƒฆแƒแƒช แƒ“แƒ แƒแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒแƒ แƒ˜แƒ—แƒ›แƒ”แƒขแƒ˜แƒ™แƒฃแƒšแƒ˜ แƒšแƒแƒ’แƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ”แƒ แƒ—แƒ”แƒฃแƒšแƒ˜. แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ— แƒ›แƒแƒฎแƒ˜แƒœแƒฏแƒ˜ แƒฐแƒแƒ™แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘ แƒแƒ แƒ“แƒฃแƒ˜แƒœแƒแƒก แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒžแƒ˜แƒ™แƒแƒ™แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ“แƒ”แƒกแƒแƒช Arduino แƒจแƒ”แƒฌแƒงแƒ•แƒ”แƒขแƒก แƒกแƒ˜แƒชแƒแƒชแƒฎแƒšแƒ˜แƒก แƒœแƒ˜แƒจแƒœแƒ”แƒ‘แƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒแƒก (แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ แƒแƒ  แƒ›แƒแƒฅแƒ•แƒก แƒ แƒแƒขแƒแƒ›).

7.2. แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜แƒก แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ

แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ (แƒ’แƒแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก):

DELAY F1 F8 F9  # F1 โ€“ ะฒั‹ัˆะตัƒะฟะพะผัะฝัƒั‚ั‹ะน ะฝะตะธะทะฒะตัั‚ะฝั‹ะน ั€ะตะณะธัั‚ั€
                  # F8 ะผะปะฐะดัˆะธะน ะฑะฐะนั‚ ะบะพะฝั‚ั€ะพะปัŒะฝะพะน ััƒะผะผั‹
                  # F9 ัั‚ะฐั€ัˆะธะน ะฑะฐะนั‚ ะบะพะฝั‚ั€ะพะปัŒะฝะพะน ััƒะผะผั‹

00000 03 E1 19
[...]
00016 F9 00 03
00016 F9 00 00
00016 F9 00 03
00016 F9 00 03
00016 F9 00 03
00016 F9 00 00  # ะบะพะฝั‚ั€ะพะปัŒะฝะฐั ััƒะผะผะฐ ัะฑั€ะฐัั‹ะฒะฐะตั‚ัั ะฒ 0
00017 FB 00 00
[...]
00023 F8 00 00
00024 80 80 00  # 1-ะน ะฑะฐะนั‚: 0x0080-0x0000 = 0x80 
00024 80 80 00
00024 80 80 00
[...]
00057 CC E7 00   # 2-ะน ะฑะฐะนั‚: 0xE7-0x80: 0x67
00057 CC E7 00
00057 01 17 01  # ะฟะพะฝัั‚ะธั ะฝะต ะธะผะตัŽ, ั‡ั‚ะพ ะทะดะตััŒ ะฟั€ะพะธัั…ะพะดะธั‚
00057 01 17 01
00057 01 17 01
00058 D0 17 01
00058 D0 17 01
00058 D0 17 01
00058 D0 17 01
00058 F8 E7 00  # ะกะฝะพะฒะฐ E7?
00058 D0 17 01
[...]
00059 E7 E7 00
00060 17 17 00  # ะฅะผะผะผะผะผะผ
[...]
00062 00 17 00
00062 00 17 00
00063 01 17 01  # ะ, ะดะพัˆะปะพ! ะ’ะพั‚ ะพะฝ ะถะต ะฟะตั€ะตะฝะพั ะฒ ัั‚ะฐั€ัˆะธะน ะฑะฐะนั‚
00063 01 17 01
[...]
00075 CC 17 01  # ะ˜ั‚ะฐะบ, 0x117-0xE7: 0x30

แƒ แƒแƒ’แƒแƒ แƒช แƒ•แƒ—แƒฅแƒ•แƒ˜แƒ—, แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ: แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒฉแƒ•แƒ”แƒœ แƒ•แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ— แƒ แƒ”แƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒ›แƒจแƒ•แƒ”แƒ‘แƒ˜ แƒฏแƒแƒ›แƒ˜แƒ—, แƒœแƒฃแƒšแƒแƒ•แƒแƒœแƒ˜ แƒ‘แƒแƒ˜แƒขแƒ˜ แƒแƒ  แƒชแƒ•แƒšแƒ˜แƒก แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒฃแƒš แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒแƒก. แƒ—แƒฃแƒ›แƒชแƒ, แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒ“แƒฃแƒ แƒแƒก (8192 แƒ‘แƒแƒ˜แƒขแƒ˜) แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ 0,1478 แƒฌแƒแƒ›แƒ˜ (แƒ›แƒชแƒ˜แƒ แƒ” แƒ•แƒแƒ แƒ˜แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒ— แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก), แƒ แƒแƒช แƒฃแƒ“แƒ แƒ˜แƒก แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 18,04 ฮผs แƒ—แƒ˜แƒ—แƒ แƒ‘แƒแƒ˜แƒขแƒก, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ”แƒก แƒ“แƒ แƒ แƒจแƒ”แƒกแƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒšแƒแƒ“ แƒฏแƒแƒ›แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒšแƒแƒ“ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒก แƒ“แƒ แƒแƒก. แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒ—แƒ˜ แƒžแƒ แƒแƒชแƒ”แƒ“แƒฃแƒ แƒ˜แƒก แƒฎแƒแƒœแƒ’แƒ แƒซแƒšแƒ˜แƒ•แƒแƒ‘แƒ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒ. แƒ—แƒฃแƒ›แƒชแƒ, แƒแƒ› แƒœแƒแƒ’แƒแƒ•แƒกแƒแƒงแƒ แƒ”แƒšแƒ˜แƒก แƒ“แƒแƒกแƒแƒกแƒ แƒฃแƒšแƒ˜ แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒแƒ“ แƒ–แƒฃแƒกแƒขแƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ โ€žแƒ“แƒ แƒแƒ˜แƒก แƒ›แƒชแƒ˜แƒ แƒ” แƒ’แƒแƒ“แƒแƒฎแƒ แƒ”แƒ‘แƒ˜โ€œ แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒ›แƒแƒขแƒฃแƒšแƒแƒ‘แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜:

134023 D0 02 DD
134023 CC D2 DC
134023 CC D2 DC
134023 CC D2 DC
134023 FB D2 DC
134023 3F D2 DC
134023 CC D2 DC
134024 02 02 DC
134024 CC D2 DC
134024 F9 02 DC
134024 03 02 DD
134024 21 02 DD
134024 02 D2 DC
134024 02 02 DC
134024 02 02 DC
134024 F8 D2 DC
134024 F8 D2 DC
134025 CC D2 DC
134025 EF D2 DC
134025 21 02 DD
134025 F8 D2 DC
134025 21 02 DD
134025 CC D2 DC
134025 04 D2 DC
134025 FB D2 DC
134025 CC D2 DC
134025 FB 02 DD
134026 03 02 DD
134026 21 02 DD

แƒ”แƒก แƒแƒ แƒ˜แƒก 10 แƒœแƒแƒ’แƒแƒ•แƒกแƒแƒงแƒ แƒ”แƒšแƒ˜ แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒ›แƒ˜แƒ™แƒ แƒแƒฌแƒแƒ›แƒ˜แƒก แƒ“แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒคแƒšแƒ”แƒจ แƒ“แƒ แƒแƒ˜แƒ•แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ 8192 แƒ‘แƒแƒ˜แƒขแƒ˜แƒก แƒ’แƒแƒ“แƒแƒงแƒ แƒ˜แƒก แƒกแƒแƒ”แƒ แƒ—แƒ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒ“แƒ แƒ แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 48 แƒกแƒแƒแƒ—แƒ˜แƒ.

7.3. แƒคแƒšแƒ”แƒจ แƒแƒ แƒแƒ‘แƒ˜แƒ—แƒ˜ แƒ แƒ”แƒ™แƒแƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ

แƒ›แƒ” แƒฏแƒ”แƒ  แƒแƒ  แƒ“แƒแƒ›แƒ˜แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒ แƒฃแƒšแƒแƒ“ แƒแƒฆแƒแƒ“แƒ’แƒ”แƒœแƒก แƒคแƒšแƒ”แƒจ แƒ“แƒ แƒแƒ˜แƒ•แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ™แƒแƒ“แƒก, แƒงแƒ•แƒ”แƒšแƒ แƒ“แƒ แƒแƒ˜แƒก แƒ’แƒแƒ“แƒแƒฎแƒ แƒ˜แƒก แƒ’แƒแƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ—แƒฃแƒ›แƒชแƒ, แƒ›แƒ” แƒฃแƒ™แƒ•แƒ” แƒแƒฆแƒ•แƒแƒ“แƒ’แƒ˜แƒœแƒ” แƒแƒ› แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜. แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ“แƒแƒ•แƒ แƒฌแƒ›แƒฃแƒœแƒ“แƒ”, แƒ แƒแƒ› แƒ”แƒก แƒกแƒฌแƒแƒ แƒแƒ“ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ”, แƒ›แƒ” แƒ“แƒแƒจแƒแƒšแƒ” แƒ˜แƒ’แƒ˜ m8cdis-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—:

0000: 80 67   jmp  0068h     ; Reset vector
[...]
0068: 71 10   or  F,010h
006a: 62 e3 87 mov  reg[VLT_CR],087h
006d: 70 ef   and  F,0efh
006f: 41 fe fb and  reg[CPU_SCR1],0fbh
0072: 50 80   mov  A,080h
0074: 4e    swap A,SP
0075: 55 fa 01 mov  [0fah],001h
0078: 4f    mov  X,SP
0079: 5b    mov  A,X
007a: 01 03   add  A,003h
007c: 53 f9   mov  [0f9h],A
007e: 55 f8 3a mov  [0f8h],03ah
0081: 50 06   mov  A,006h
0083: 00    ssc
[...]
0122: 18    pop  A
0123: 71 10   or  F,010h
0125: 43 e3 10 or  reg[VLT_CR],010h
0128: 70 00   and  F,000h ; Paging mode changed from 3 to 0
012a: ef 62   jacc 008dh
012c: e0 00   jacc 012dh
012e: 71 10   or  F,010h
0130: 62 e0 02 mov  reg[OSC_CR0],002h
0133: 70 ef   and  F,0efh
0135: 62 e2 00 mov  reg[INT_VC],000h
0138: 7c 19 30 lcall 1930h
013b: 8f ff   jmp  013bh
013d: 50 08   mov  A,008h
013f: 7f    ret

แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ“แƒแƒ›แƒแƒฏแƒ”แƒ แƒ”แƒ‘แƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ!

7.4. PIN แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒก แƒžแƒแƒ•แƒœแƒ

แƒแƒฎแƒšแƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒฌแƒแƒ•แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ— แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ“แƒ แƒแƒก, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒจแƒ”แƒ•แƒแƒ›แƒแƒฌแƒ›แƒแƒ— แƒ แƒแƒ’แƒแƒ  แƒ“แƒ แƒกแƒแƒ“ แƒ˜แƒชแƒ•แƒšแƒ”แƒ‘แƒ แƒ˜แƒก, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ:

  • แƒจแƒ”แƒ˜แƒงแƒ•แƒแƒœแƒ”แƒ— แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ PIN แƒ™แƒแƒ“แƒ˜;
  • แƒจแƒ”แƒชแƒ•แƒแƒšแƒ”แƒ— แƒžแƒ˜แƒœแƒ˜แƒก แƒ™แƒแƒ“แƒ˜.

แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ แƒ˜แƒ’แƒจแƒ˜, แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ•แƒแƒ แƒแƒฃแƒ“แƒ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒก แƒ›แƒแƒกแƒแƒซแƒ”แƒ‘แƒœแƒแƒ“, แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒแƒ•แƒ˜แƒฆแƒ” แƒ’แƒแƒ›แƒจแƒ•แƒ”แƒ‘แƒ˜ แƒฏแƒแƒ›แƒ˜แƒก แƒœแƒแƒ’แƒแƒ•แƒกแƒแƒงแƒ แƒ”แƒšแƒ˜ 10 ms แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—. แƒ›แƒ”แƒ แƒ” แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ PIN แƒจแƒ”แƒ•แƒ˜แƒงแƒ•แƒแƒœแƒ” แƒ“แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ”.

แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒแƒ แƒช แƒ—แƒฃ แƒ˜แƒกแƒ” แƒกแƒแƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ แƒ˜แƒงแƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“ แƒ›แƒ” แƒจแƒ”แƒ•แƒซแƒ”แƒšแƒ˜ แƒ“แƒแƒ›แƒ”แƒ“แƒ’แƒ˜แƒœแƒ, แƒ แƒแƒ› แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒ แƒกแƒแƒ“แƒฆแƒแƒช 120000 ฮผs แƒ“แƒ 140000 ฮผs แƒ“แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ›แƒแƒ’แƒ แƒแƒ› โ€žแƒžแƒ˜แƒœแƒ™แƒแƒ“แƒ˜โ€œ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒ” แƒ˜แƒฅ แƒแƒฉแƒ•แƒ”แƒœแƒ”, แƒกแƒ แƒฃแƒšแƒ˜แƒแƒ“ แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ แƒ˜แƒงแƒ - delayMicroseconds แƒžแƒ แƒแƒชแƒ”แƒ“แƒฃแƒ แƒ˜แƒก แƒแƒ แƒขแƒ”แƒคแƒแƒฅแƒขแƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒชแƒœแƒแƒฃแƒ  แƒ แƒแƒ›แƒ”แƒ”แƒ‘แƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ›แƒแƒก 0 แƒ’แƒแƒ“แƒแƒ”แƒชแƒ”แƒ›แƒ.

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก 3 แƒกแƒแƒแƒ—แƒ˜แƒก แƒ’แƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ’แƒแƒ›แƒแƒฎแƒกแƒ”แƒœแƒ“แƒ, แƒ แƒแƒ› SROM แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒ CheckSum แƒ˜แƒฆแƒ”แƒ‘แƒก แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒก แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒก แƒ‘แƒšแƒแƒ™แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒแƒก แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก! แƒ แƒแƒ›. แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒ›แƒแƒ•แƒแƒฎแƒ“แƒ˜แƒœแƒแƒ— PIN แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒก แƒšแƒแƒ™แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒ“แƒ โ€žแƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒกโ€œ แƒ›แƒ แƒ˜แƒชแƒฎแƒ•แƒ”แƒšแƒ˜, 64 แƒ‘แƒแƒ˜แƒขแƒ˜แƒแƒœแƒ˜ แƒ‘แƒšแƒแƒ™แƒ˜แƒก แƒกแƒ˜แƒ–แƒฃแƒกแƒขแƒ˜แƒ—.

แƒฉแƒ”แƒ›แƒ›แƒ แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ›แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ”แƒ‘แƒ›แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒฆแƒ:

Aigo-แƒก แƒ—แƒ•แƒ˜แƒ—แƒ“แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ˜แƒก แƒ’แƒแƒ แƒ” HDD แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ แƒ“แƒ แƒ’แƒแƒขแƒ”แƒฎแƒ•แƒ. แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2: แƒœแƒแƒ’แƒแƒ•แƒกแƒแƒงแƒ แƒ”แƒšแƒ˜แƒก แƒแƒฆแƒ”แƒ‘แƒ Cypress PSoC-แƒ“แƒแƒœ

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ•แƒชแƒ•แƒแƒšแƒ” PIN แƒ™แƒแƒ“แƒ˜ "123456"-แƒ“แƒแƒœ "1234567"-แƒ–แƒ” แƒ“แƒ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”:

Aigo-แƒก แƒ—แƒ•แƒ˜แƒ—แƒ“แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ˜แƒก แƒ’แƒแƒ แƒ” HDD แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ แƒ“แƒ แƒ’แƒแƒขแƒ”แƒฎแƒ•แƒ. แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2: แƒœแƒแƒ’แƒแƒ•แƒกแƒแƒงแƒ แƒ”แƒšแƒ˜แƒก แƒแƒฆแƒ”แƒ‘แƒ Cypress PSoC-แƒ“แƒแƒœ

แƒแƒ›แƒ แƒ˜แƒ’แƒแƒ“, PIN แƒ™แƒแƒ“แƒ˜ แƒ“แƒ แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ แƒ˜แƒชแƒฎแƒ•แƒ”แƒšแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ No126 แƒ‘แƒšแƒแƒ™แƒจแƒ˜.

7.5. No126 แƒ‘แƒšแƒแƒ™แƒ˜แƒก แƒœแƒแƒ’แƒแƒ•แƒกแƒแƒงแƒ แƒ”แƒšแƒ˜แƒก แƒแƒฆแƒ”แƒ‘แƒ

แƒ‘แƒšแƒแƒ™แƒ˜ #126 แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒแƒ“แƒฆแƒแƒช 125x64x18 = 144000ฮผs, แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜แƒก แƒ’แƒแƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ, แƒฉแƒ”แƒ›แƒก แƒกแƒ แƒฃแƒš แƒœแƒแƒ’แƒแƒ•แƒกแƒแƒงแƒ แƒ”แƒšแƒจแƒ˜ แƒ“แƒ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ“แƒแƒ›แƒแƒฏแƒ”แƒ แƒ”แƒ‘แƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ แƒœแƒแƒ’แƒแƒ•แƒกแƒแƒงแƒ แƒ”แƒšแƒ˜แƒก แƒฎแƒ”แƒšแƒ˜แƒ— แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ (โ€žแƒ›แƒชแƒ˜แƒ แƒ” แƒ“แƒ แƒแƒ˜แƒก แƒ’แƒแƒ“แƒแƒฎแƒ แƒ”แƒ‘แƒ˜แƒกโ€œ แƒ“แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ), แƒ›แƒ” แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ” แƒ”แƒก แƒ‘แƒแƒ˜แƒขแƒ”แƒ‘แƒ˜ (145527 ฮผs แƒšแƒแƒขแƒ”แƒœแƒขแƒฃแƒ แƒแƒ‘แƒ˜แƒ—):

Aigo-แƒก แƒ—แƒ•แƒ˜แƒ—แƒ“แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ˜แƒก แƒ’แƒแƒ แƒ” HDD แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ แƒ“แƒ แƒ’แƒแƒขแƒ”แƒฎแƒ•แƒ. แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2: แƒœแƒแƒ’แƒแƒ•แƒกแƒแƒงแƒ แƒ”แƒšแƒ˜แƒก แƒแƒฆแƒ”แƒ‘แƒ Cypress PSoC-แƒ“แƒแƒœ

แƒแƒจแƒ™แƒแƒ แƒแƒ, แƒ แƒแƒ› PIN แƒ™แƒแƒ“แƒ˜ แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒ“แƒแƒจแƒ˜แƒคแƒ แƒฃแƒšแƒ˜ แƒกแƒแƒฎแƒ˜แƒ—! แƒ”แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜, แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒแƒ  แƒ˜แƒฌแƒ”แƒ แƒ”แƒ‘แƒ ASCII แƒ™แƒแƒ“แƒ”แƒ‘แƒจแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒแƒ’แƒแƒ แƒช แƒ˜แƒ แƒ™แƒ•แƒ”แƒ•แƒ, แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒกแƒแƒฎแƒแƒ•แƒก แƒขแƒ”แƒ•แƒแƒ“แƒแƒ‘แƒ˜แƒก แƒ™แƒšแƒแƒ•แƒ˜แƒแƒขแƒฃแƒ แƒ˜แƒ“แƒแƒœ แƒแƒฆแƒ”แƒ‘แƒฃแƒš แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒ‘แƒก.

แƒ“แƒแƒ‘แƒแƒšแƒแƒก, แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒขแƒ”แƒกแƒขแƒ˜ แƒฉแƒแƒ•แƒแƒขแƒแƒ แƒ”, แƒ แƒแƒ—แƒ แƒ’แƒแƒ›แƒ”แƒ’แƒ, แƒกแƒแƒ“ แƒ˜แƒงแƒ แƒจแƒ”แƒœแƒแƒฎแƒฃแƒšแƒ˜ แƒชแƒฃแƒ“แƒ˜ แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒ›แƒ แƒ˜แƒชแƒฎแƒ•แƒ”แƒšแƒ˜. แƒแƒ˜ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜:

Aigo-แƒก แƒ—แƒ•แƒ˜แƒ—แƒ“แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ˜แƒก แƒ’แƒแƒ แƒ” HDD แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ แƒ“แƒ แƒ’แƒแƒขแƒ”แƒฎแƒ•แƒ. แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2: แƒœแƒแƒ’แƒแƒ•แƒกแƒแƒงแƒ แƒ”แƒšแƒ˜แƒก แƒแƒฆแƒ”แƒ‘แƒ Cypress PSoC-แƒ“แƒแƒœ

0xFF - แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก "15 แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒแƒก" แƒ“แƒ แƒ›แƒชแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒฌแƒแƒ แƒฃแƒ›แƒแƒขแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒ˜แƒกแƒแƒก.

7.6. PIN แƒ™แƒแƒ“แƒ˜แƒก แƒแƒฆแƒ“แƒ’แƒ”แƒœแƒ

แƒแƒฅ แƒแƒ แƒ˜แƒก แƒฉแƒ”แƒ›แƒ˜ แƒ›แƒแƒฎแƒ˜แƒœแƒฏแƒ˜ แƒ™แƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒก แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒก:

def dump_pin():
  pin_map = {0x24: "0", 0x25: "1", 0x26: "2", 0x27:"3", 0x20: "4", 0x21: "5",
        0x22: "6", 0x23: "7", 0x2c: "8", 0x2d: "9"}
  last_csum = 0
  pin_bytes = []
  for delay in range(145495, 145719, 16):
    csum = csum_at(delay, 1)
    byte = (csum-last_csum)&0xFF
    print "%05d %04x (%04x) => %02x" % (delay, csum, last_csum, byte)
    pin_bytes.append(byte)
    last_csum = csum
  print "PIN: ",
  for i in range(0, len(pin_bytes)):
    if pin_bytes[i] in pin_map:
      print pin_map[pin_bytes[i]],
  print

แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒกแƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜:

$ ./psoc.py 
syncing: KO OK
Resetting PSoC: KO Resetting PSoC: KO Resetting PSoC: OK
145495 53e2 (0000) => e2
145511 5407 (53e2) => 25
145527 542d (5407) => 26
145543 5454 (542d) => 27
145559 5474 (5454) => 20
145575 5495 (5474) => 21
145591 54b7 (5495) => 22
145607 54da (54b7) => 23
145623 5506 (54da) => 2c
145639 5506 (5506) => 00
145655 5533 (5506) => 2d
145671 554c (5533) => 19
145687 554e (554c) => 02
145703 554e (554e) => 00
PIN: 1 2 3 4 5 6 7 8 9

แƒฐแƒแƒ! แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก!

แƒ’แƒ—แƒฎแƒแƒ•แƒ—, แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒแƒ—, แƒ แƒแƒ› แƒšแƒแƒขแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ›แƒ” แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”, แƒกแƒแƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ“ แƒจแƒ”แƒ”แƒกแƒแƒ‘แƒแƒ›แƒ”แƒ‘แƒ แƒ”แƒ แƒ— แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒš PSoC-แƒก - แƒ›แƒ” แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”.

8. แƒ แƒ แƒแƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜?

แƒแƒกแƒ” แƒ แƒแƒ›, แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒแƒฏแƒแƒ›แƒแƒ— PSoC แƒ›แƒฎแƒแƒ แƒ”แƒก, แƒฉแƒ•แƒ”แƒœแƒ˜ Aigo แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒจแƒ˜:

  • แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒฌแƒแƒ•แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ— SRAM แƒ›แƒแƒจแƒ˜แƒœแƒแƒช แƒ™แƒ˜, แƒ—แƒฃ แƒ˜แƒก แƒ“แƒแƒชแƒฃแƒšแƒ˜แƒ;
  • แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜ แƒแƒ•แƒฃแƒแƒ แƒแƒ— แƒ“แƒแƒ แƒขแƒงแƒ›แƒ˜แƒก แƒกแƒแƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’แƒ แƒ“แƒแƒชแƒ•แƒแƒก แƒชแƒ˜แƒ•แƒ˜ แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ™แƒ•แƒแƒšแƒ˜ แƒจแƒ”แƒขแƒ”แƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  PIN แƒ™แƒแƒ“แƒ˜แƒก แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒ—.

แƒ—แƒฃแƒ›แƒชแƒ, แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒขแƒ”แƒ•แƒแƒก แƒแƒฅแƒ•แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒฎแƒแƒ แƒ•แƒ”แƒ–แƒ”แƒ‘แƒ˜ แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ. แƒ˜แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ“แƒ”แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒœแƒแƒ˜แƒ แƒแƒ“:

  • แƒ“แƒแƒฌแƒ”แƒ แƒ”แƒ— แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ, แƒ แƒแƒ—แƒ แƒกแƒฌแƒแƒ แƒแƒ“ แƒ’แƒแƒจแƒ˜แƒคแƒ แƒแƒ— แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒ โ€žแƒชแƒ˜แƒ•แƒ˜ แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ™แƒ•แƒแƒšแƒ˜โ€œ แƒจแƒ”แƒขแƒ”แƒ•แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“;
  • แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— FPGA แƒ’แƒแƒฏแƒ”แƒขแƒ˜ แƒฃแƒคแƒ แƒ แƒ–แƒฃแƒกแƒขแƒ˜ แƒ“แƒ แƒแƒ˜แƒก แƒ“แƒแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“ (แƒแƒœ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— Arduino แƒแƒžแƒแƒ แƒแƒขแƒฃแƒ แƒ˜แƒก แƒขแƒแƒ˜แƒ›แƒ”แƒ แƒ˜);
  • แƒกแƒชแƒแƒ“แƒ”แƒ— แƒกแƒฎแƒ•แƒ แƒจแƒ”แƒขแƒ”แƒ•แƒ: แƒจแƒ”แƒ˜แƒงแƒ•แƒแƒœแƒ”แƒ— แƒ›แƒ˜แƒ–แƒแƒœแƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒฃแƒšแƒแƒ“ แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ PIN แƒ™แƒแƒ“แƒ˜, แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ— แƒ“แƒ แƒฉแƒแƒแƒ’แƒ“แƒ”แƒ— RAM, แƒ˜แƒ› แƒ˜แƒ›แƒ”แƒ“แƒ˜แƒ—, แƒ แƒแƒ› แƒกแƒฌแƒแƒ แƒ˜ PIN แƒ™แƒแƒ“แƒ˜ แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ RAM-แƒจแƒ˜ แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ—แƒฃแƒ›แƒชแƒ, แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ แƒแƒ แƒช แƒ˜แƒกแƒ” แƒแƒ“แƒ•แƒ˜แƒšแƒ˜แƒ Arduino-แƒ–แƒ”, แƒ แƒแƒ“แƒ’แƒแƒœ Arduino-แƒก แƒกแƒ˜แƒ’แƒœแƒแƒšแƒ˜แƒก แƒ“แƒแƒœแƒ” 5 แƒ•แƒแƒšแƒขแƒ˜แƒ, แƒฎแƒแƒšแƒ แƒ“แƒแƒคแƒ, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ•แƒ—, แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก 3,3 แƒ•แƒแƒšแƒขแƒ˜แƒแƒœแƒ˜ แƒกแƒ˜แƒ’แƒœแƒแƒšแƒ”แƒ‘แƒ˜แƒ—.

แƒ”แƒ แƒ—แƒ˜ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒ แƒแƒ›, แƒ แƒแƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒกแƒชแƒแƒ“แƒแƒ—, แƒแƒ แƒ˜แƒก แƒซแƒแƒ‘แƒ•แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒกแƒ—แƒแƒœ แƒ—แƒแƒ›แƒแƒจแƒ˜ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒ“แƒแƒชแƒ•แƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒแƒ•แƒšแƒ˜แƒ—. แƒ—แƒฃ แƒ”แƒก แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ“แƒ, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒซแƒšแƒ”แƒ‘แƒ“แƒ˜แƒ— แƒแƒ‘แƒกแƒแƒšแƒฃแƒขแƒฃแƒ แƒแƒ“ แƒ–แƒฃแƒกแƒขแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒแƒก แƒคแƒšแƒ”แƒจ แƒ“แƒ แƒแƒ˜แƒ•แƒ˜แƒ“แƒแƒœ - แƒ˜แƒ›แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“, แƒ แƒแƒ› แƒ“แƒแƒ•แƒ”แƒงแƒ แƒ“แƒœแƒแƒ— แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜แƒก แƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒก แƒแƒ แƒแƒ–แƒฃแƒกแƒขแƒ˜ แƒ“แƒ แƒแƒ˜แƒก แƒ“แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ SROM แƒกแƒแƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ“ แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒแƒ‘แƒก แƒ“แƒแƒชแƒ•แƒ˜แƒก แƒ‘แƒ˜แƒขแƒ”แƒ‘แƒก ReadBlock แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒแƒ— แƒ˜แƒ’แƒ˜แƒ•แƒ”, แƒ แƒแƒช แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒ“แƒ˜แƒ›แƒ˜แƒขแƒ แƒ˜ แƒœแƒ”แƒ“แƒแƒกแƒžแƒแƒกแƒแƒ•แƒ˜แƒก แƒ‘แƒšแƒแƒ’แƒ–แƒ” - แƒ™แƒแƒœแƒคแƒ”แƒ แƒ”แƒœแƒชแƒ˜แƒแƒ–แƒ” แƒ’แƒแƒ›แƒแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒ แƒ˜แƒก แƒ’แƒ”แƒ แƒšแƒ˜แƒœแƒกแƒ™แƒ˜แƒก แƒ—แƒแƒ•แƒ“แƒแƒกแƒฎแƒ›แƒ˜แƒก แƒฎแƒ”แƒšแƒแƒฎแƒแƒšแƒ˜ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ "Recon Brussels 2017".

แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒกแƒแƒฎแƒแƒšแƒ˜แƒกแƒ แƒ แƒแƒ›, แƒ แƒ˜แƒกแƒ˜ แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒแƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ, แƒแƒ แƒ˜แƒก แƒฉแƒ˜แƒžแƒ˜แƒ“แƒแƒœ แƒ’แƒแƒ แƒกแƒแƒชแƒ›แƒ˜แƒก แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ: SRAM-แƒ˜แƒก แƒœแƒแƒ’แƒแƒ•แƒกแƒแƒงแƒ แƒ”แƒšแƒ˜แƒก แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ, แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ“แƒแƒฃแƒกแƒแƒ‘แƒฃแƒ—แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ–แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒชแƒ˜แƒ แƒ”แƒ‘แƒ.

9. แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ

แƒแƒกแƒ” แƒ แƒแƒ›, แƒแƒ› แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒ“แƒแƒชแƒ•แƒ แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒšแƒก แƒขแƒแƒ•แƒ”แƒ‘แƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ˜แƒก แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ แƒ”แƒ’แƒฃแƒšแƒแƒ แƒฃแƒš (แƒแƒ แƒ โ€žแƒ’แƒแƒ›แƒแƒ’แƒ แƒ”แƒ‘แƒฃแƒšโ€œ) แƒ›แƒ˜แƒ™แƒ แƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒก PIN แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒกแƒแƒœแƒแƒฎแƒแƒ“... แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒ›แƒ” แƒแƒ  แƒ›แƒ˜แƒœแƒแƒฎแƒแƒ•แƒก (แƒฏแƒ”แƒ ) แƒ แƒแƒ’แƒแƒ  แƒ›แƒ˜แƒ“แƒ˜แƒก แƒกแƒแƒฅแƒ›แƒ”แƒ”แƒ‘แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—. แƒ“แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ แƒแƒ› แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒแƒ–แƒ”!

แƒ แƒแƒก แƒฃแƒ แƒฉแƒ”แƒ•แƒ— แƒแƒ˜แƒ’แƒแƒก? แƒ“แƒแƒจแƒ˜แƒคแƒ แƒฃแƒšแƒ˜ HDD แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ›แƒแƒ“แƒ”แƒšแƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, 2015 แƒฌแƒ”แƒšแƒก แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ” แƒžแƒ แƒ”แƒ–แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ SyScan-แƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ›แƒแƒœ แƒจแƒ”แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ’แƒแƒ แƒ” HDD แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒ แƒ แƒ”แƒ™แƒแƒ›แƒ”แƒœแƒ“แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ˜แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ—แƒฃ แƒ แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜แƒงแƒ แƒ›แƒแƒ—แƒจแƒ˜. ๐Ÿ™‚

แƒแƒ แƒ˜ แƒจแƒแƒ‘แƒแƒ—-แƒ™แƒ•แƒ˜แƒ แƒ แƒ“แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒแƒฆแƒแƒ›แƒ แƒ’แƒแƒ•แƒแƒขแƒแƒ แƒ” แƒแƒ› แƒ™แƒ•แƒšแƒ”แƒ•แƒแƒจแƒ˜. แƒกแƒฃแƒš แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 40 แƒกแƒแƒแƒ—แƒ˜. แƒ—แƒ•แƒšแƒ แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœแƒ•แƒ” (แƒ แƒแƒชแƒ แƒ’แƒแƒ•แƒฎแƒกแƒ”แƒœแƒ˜ แƒ“แƒ˜แƒกแƒ™แƒ˜) แƒ‘แƒแƒšแƒแƒ›แƒ“แƒ” (PIN แƒ™แƒแƒ“แƒ˜แƒก แƒœแƒแƒ’แƒแƒ•แƒกแƒแƒงแƒ แƒ”แƒšแƒ˜). แƒ˜แƒ’แƒ˜แƒ•แƒ” 40 แƒกแƒแƒแƒ—แƒ˜ แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก แƒ˜แƒ› แƒ“แƒ แƒแƒก, แƒ แƒแƒช แƒ“แƒแƒ•แƒฎแƒแƒ แƒฏแƒ” แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒ”แƒ แƒแƒ“. แƒ”แƒก แƒ˜แƒงแƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒ›แƒแƒ’แƒ–แƒแƒฃแƒ แƒแƒ‘แƒ.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ