เชฌเชพเชนเซเชฏ เชธเซเชต-เชเชจเซเชเซเชฐเชฟเชชเซเชเซเชเช เชกเซเชฐเชพเชเชตเซเชจเซ เชนเซเช เชเชฐเชตเชพ เชตเชฟเชถเซเชจเชพ เชฒเซเชเชจเซ เช เชฌเซเชเซ เช
เชจเซ เช
เชเชคเชฟเชฎ เชญเชพเช เชเซ. เชนเซเช เชคเชฎเชจเซ เชฏเชพเชฆ เช
เชชเชพเชตเซ เชฆเชเช เชเซ เชคเชพเชเซเชคเชฐเชฎเชพเช เชเช เชธเชพเชฅเซเชฆเชพเชฐ เชฎเชพเชฐเชพ เชฎเชพเชเซ เชชเซเชเซเชฐเชฟเชฏเซเช (Aigo) SK8671 เชนเชพเชฐเซเชก เชกเซเชฐเชพเชเชต เชฒเชพเชตเซเชฏเซ, เช
เชจเซ เชฎเซเช เชคเซเชจเซ เชฐเชฟเชตเชฐเซเชธ เชเชฐเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช, เช
เชจเซ เชนเชตเซ เชนเซเช เชคเซเชฎเชพเชเชฅเซ เชเซ เชฌเชนเชพเชฐ เชเชตเซเชฏเซเช เชคเซ เชถเซเชฐ เชเชฐเซ เชฐเชนเซเชฏเซ เชเซเช. เชเชเชณ เชตเชพเชเชเชคเชพ เชชเชนเซเชฒเชพ, เช
เชตเชถเซเชฏ เชตเชพเชเชเซ
4. เช เชฎเซ เชเชเชคเชฐเชฟเช PSoC เชซเซเชฒเซเชถ เชกเซเชฐเชพเชเชตเชฎเชพเชเชฅเซ เชกเชฎเซเชช เชฒเซเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซเช เชเซเช
เชคเซเชฅเซ, เชฌเชงเซเช เชธเซเชเชตเซ เชเซ (เชเซเชฎ เชเซ เชเชชเชฃเซ [เชชเซเชฐเชฅเชฎ เชญเชพเชเชฎเชพเช]() เชฎเชพเช เชธเซเชฅเชพเชชเชฟเชค เชเชฐเซเชฏเซเช เชเซ) เชเซ PIN เชเซเชก PSoC เชจเซ เชซเซเชฒเซเชถ เชเชเชกเชพเชฃเซเชฎเชพเช เชธเชเชเซเชฐเชนเชฟเชค เชเซ. เชคเซเชฅเซ, เชเชชเชฃเซ เช เชซเซเชฒเซเชถ เชเชเชกเชพเชฃเซ เชตเชพเชเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชเชฐเซเชฐเซ เชเชพเชฎเชจเซ เชเชเชณ:
- เชฎเชพเชเชเซเชฐเซเชเชจเซเชเซเชฐเซเชฒเชฐ เชธเชพเชฅเซ "เชธเชเชเชพเชฐ" เชชเชฐ เชจเชฟเชฏเชเชคเซเชฐเชฃ เชฒเซ;
- เช "เชธเชเชเชพเชฐ" เชฌเชนเชพเชฐเชฅเซ เชตเชพเชเชเชตเชพเชฅเซ เชธเซเชฐเชเซเชทเชฟเชค เชเซ เชเซ เชเซเชฎ เชคเซ เชคเชชเชพเชธเชตเชพเชจเซ เชฎเชพเชฐเซเช เชถเซเชงเซ;
- เชธเชเชฐเชเซเชทเชฃเชจเซ เชฌเชพเชฏเชชเชพเชธ เชเชฐเชตเชพเชจเซ เชฎเชพเชฐเซเช เชถเซเชงเซ.
เชคเซเชฏเชพเช เชฌเซ เชธเซเชฅเชพเชจเซ เชเซ เชเซเชฏเชพเช เชฎเชพเชจเซเชฏ เชชเชฟเชจ เชเซเชก เชถเซเชงเชตเชพเชจเซ เช เชฐเซเชฅ เชฅเชพเชฏ เชเซ:
- เชเชเชคเชฐเชฟเช เชซเซเชฒเซเชถ เชฎเซเชฎเชฐเซ;
- SRAM, เชเซเชฏเชพเช เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชฆเซเชตเชพเชฐเชพ เชฆเชพเชเชฒ เชเชฐเซเชฒ เชชเชฟเชจ เชเซเชก เชธเชพเชฅเซ เชคเซเชจเซ เชธเชฐเชเชพเชฎเชฃเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชชเชฟเชจ เชเซเชก เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเซ เชถเชเชพเชฏ เชเซ.
เชเชเชณ เชเซเชคเชพเช, เชนเซเช เชจเซเชเชง เชเชฐเซเชถ เชเซ ISSP เชชเซเชฐเซเชเซเชเซเชฒเชจเซ เชฌเชฟเชจเชฆเชธเซเชคเชพเชตเซเชเซเชเซเชค เชเซเชทเชฎเชคเชพเชเชจเซ เชเชฒเชเชพเชตเซเชฏเชพ เชชเชเซ - "เชเซเชฒเซเชก เชฌเซเช เชเซเชฐเซเชธเชฟเชเช" เชจเชพเชฎเชจเชพ เชนเชพเชฐเซเชกเชตเซเชฐ เชนเซเชฎเชฒเชพเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชคเซเชจเซ เชธเซเชฐเชเซเชทเชพ เชธเชฟเชธเซเชเชฎเชจเซ เชฌเชพเชฏเชชเชพเชธ เชเชฐเซเชจเซ - เชนเซเช เชนเชเซ เชชเชฃ เชเชเชคเชฐเชฟเช PSoC เชซเซเชฒเซเชถ เชกเซเชฐเชพเชเชตเชจเซ เชกเชฎเซเชช เชฒเซเชตเชพเชฎเชพเช เชตเซเชฏเชตเชธเซเชฅเชพเชชเชฟเชค เชเซเช. เชเชจเชพเชฅเซ เชฎเชจเซ เชตเชพเชธเซเชคเชตเชฟเช เชชเชฟเชจ เชเซเชก เชธเซเชงเซ เชกเชฎเซเชช เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชฎเชณเซ.
$ ./psoc.py
syncing: KO OK
[...]
PIN: 1 2 3 4 5 6 7 8 9
เช เชเชคเชฟเชฎ เชชเซเชฐเซเชเซเชฐเชพเชฎ เชเซเชก:
HSSP เชฎเชพเชเซ Arduino เชเซเชก ;เชชเชพเชฏเชฅเซเชจ เชกเซเชฐเชพเชเชตเชฐ เช เชจเซ ISSP เชกเชฟเชธเชเชธเซเชฎเซเชฌเชฒเชฐ .
5. ISSP เชชเซเชฐเซเชเซเชเซเชฒ
5.1. ISSP เชถเซเช เชเซ
เชฎเชพเชเชเซเชฐเซเชเชจเซเชเซเชฐเซเชฒเชฐ เชธเชพเชฅเซ "เชธเชเชเชพเชฐ" เชจเซ เช เชฐเซเชฅ เช เชฒเช เช เชฒเช เชตเชธเซเชคเซเช เชนเซเช เชถเชเซ เชเซ: "เชตเชฟเชเซเชฐเซเชคเชพเชฅเซ เชตเชฟเชเซเชฐเซเชคเชพ" เชฅเซ เชธเซเชฐเซเชฏเชฒ เชชเซเชฐเซเชเซเชเซเชฒเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเชเซเชฐเชฟเชฏเชพ เชธเซเชงเซ (เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชฎเชพเชเชเซเชฐเซเชเชฟเชชเชจเชพ PIC เชฎเชพเชเซ ICSP).
เช เชฎเชพเชเซ เชธเชพเชฏเชชเซเชฐเชธเชจเซ เชชเซเชคเชพเชจเซ เชฎเชพเชฒเชฟเชเซเชจเซ เชชเซเชฐเซเชเซเชเซเชฒ เชเซ, เชเซเชจเซ ISSP (เชเชจ-เชธเชฟเชธเซเชเชฎ เชธเซเชฐเซเชฏเชฒ เชชเซเชฐเซเชเซเชฐเชพเชฎเชฟเชเช เชชเซเชฐเซเชเซเชเซเชฒ) เชเชนเซเชตเชพเชฏ เชเซ, เชเซเชจเซเช เชเชเชถเชฟเช เชฐเซเชคเซ เชตเชฐเซเชฃเชจ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชเซ.
- PSoC เชฐเซเชฌเซเช เชเชฐเซ;
- เช PSoC เชจเชพ เชธเซเชฐเซเชฏเชฒ เชกเซเชเชพ เชชเชฟเชจ เชชเชฐ เชเชพเชฆเซเช เชจเชเชฌเชฐ เชเชเชเชชเซเช เชเชฐเซ; เชฌเชพเชนเซเชฏ เชชเซเชฐเซเชเซเชฐเชพเชฎเชฟเชเช เชฎเซเชก เชฆเชพเชเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ;
- เชเชฆเซเชถเซ เชฎเซเชเชฒเซ, เชเซ "เชตเซเชเซเชเชฐ" เชคเชฐเซเชเซ เชเชณเชเชพเชคเซ เชฒเชพเชเชฌเซ เชฌเซเช เชธเซเชเซเชฐเซเชเช เชเซ.
ISSP เชฆเชธเซเชคเชพเชตเซเชเซเชเชฐเชฃ เช เชตเซเชเซเชเชฐเซเชธเชจเซ เชฎเชพเชคเซเชฐ เชฅเซเชกเชพ เชฎเซเช เซเช เซเชญเชฐ เชเชฆเซเชถเซ เชฎเชพเชเซ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเซ เชเซ:
- เชชเซเชฐเชพเชฐเชเชญ-1
- เชชเซเชฐเชพเชฐเชเชญ-2
- เชเชจเชฟเชถเชฟเชฏเชฒเชพเชเช-3 (3V เช เชจเซ 5V เชตเชฟเชเชฒเซเชชเซ)
- ID-SETUP
- READ-ID-WORD
- SET-BLOCK-NUM: 10011111010dddddd111, เชเซเชฏเชพเช dddddddd=block #
- เชฌเชฒเซเช เชเชฐเซเช
- เชชเซเชฐเซเชเซเชฐเชพเชฎ-เชฌเซเชฒเซเช
- เชเชเชพเชธเซ-เชธเซเชเช เชช
- READ-BYTE: 10110aaaaaZDDDDDDDZ1, เชเซเชฏเชพเช DDDDDDDD = เชกเซเชเชพ เชเชเช, aaaaaa = เชธเชฐเชจเชพเชฎเซเช (6 เชฌเชฟเชเซเชธ)
- WRITE-BYTE: 10010aaaaaddddddd111, เชเซเชฏเชพเช dddddddd = เชกเซเชเชพ เชเชจ, aaaaaa = เชธเชฐเชจเชพเชฎเซเช (6 เชฌเชฟเชเซเชธ)
- เชธเซเชฐเชเซเชทเชฟเชค
- เชเซเชเชธเชฎ-เชธเซเชเช เชช
- เชตเชพเชเชเซ-เชเซเชเชธเชฎ: 10111111001ZDDDDDDDZ110111111000ZDDDDDDDDZ1, เชเซเชฏเชพเช DDDDDDDDDDDDDDDDD = เชกเซเชเชพ เชเชเช: เชเชชเชเชฐเชฃ เชเซเชเชธเชฎ
- เชฌเซเชฒเซเช เชญเซเชเชธเซ เชจเชพเชเซ
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, Initialize-2 เชฎเชพเชเซ เชตเซเชเซเชเชฐ:
1101111011100000000111 1101111011000000000111
1001111100000111010111 1001111100100000011111
1101111010100000000111 1101111010000000011111
1001111101110000000111 1101111100100110000111
1101111101001000000111 1001111101000000001111
1101111000000000110111 1101111100000000000111
1101111111100010010111
เชฌเชงเชพ เชตเซเชเซเชเชฐเชจเซ เชฒเชเชฌเชพเช เชธเชฎเชพเชจ เชเซ: 22 เชฌเชฟเชเซเชธ. HSSP เชฆเชธเซเชคเชพเชตเซเชเซเชเชฐเชฃเชฎเชพเช ISSP เชชเชฐ เชเซเชเชฒเซเช เชตเชงเชพเชฐเชพเชจเซ เชฎเชพเชนเชฟเชคเซ เชเซ: "เชเช ISSP เชตเซเชเซเชเชฐ เช เชธเซเชเชจเซเชจเชพ เชธเชฎเซเชนเชจเซ เชฐเชเซ เชเชฐเชคเซ เชฅเซเชกเซ เชเซเชฐเชฎ เชธเชฟเชตเชพเชฏ เชฌเซเชเซเช เชเชเช เชจเชฅเซ."
5.2. เชกเชฟเชฎเชฟเชธเซเชเชฟเชซเชพเชเชเช เชตเซเชเซเชเชฐเซเชธ
เชเชพเชฒเซ เชเชพเชฃเซเช เชเซ เช เชนเซเช เชถเซเช เชฅเช เชฐเชนเซเชฏเซเช เชเซ. เชถเชฐเซเชเชคเชฎเชพเช, เชฎเซเช เชงเชพเชฐเซเชฏเซเช เชเซ เช เช เชตเซเชเซเชเชฐ M8C เชธเซเชเชจเชพเชเชจเชพ เชเชพเชเชพ เชธเชเชธเซเชเชฐเชฃเซ เชเซ, เชชเชฐเชเชคเซ เช เชชเซเชฐเซเชตเชงเชพเชฐเชฃเชพ เชคเชชเชพเชธเซเชฏเชพ เชชเชเซ, เชฎเซเช เชถเซเชงเซเชฏเซเช เชเซ เชเชชเชฐเซเชถเชจเชจเชพ เชเชชเชเซเชก เชฎเซเชณ เชเชพเชคเชพ เชจเชฅเซ.
เชชเชเซ เชฎเซเช เชเชชเชฐเชจเชพ เชตเซเชเซเชเชฐเชจเซ เชเซเชเชฒ เชเชฐเซเชฏเซเช เช
เชจเซ เชเชเซเชฌเชพเชเซ เชเชตเซเชฏเซ
เชชเชเซ เชนเซเช เชธเซเชชเชฐเชตเชพเชเชเชฐเซ ROM (SROM) เชตเชฟเชญเชพเชเชฎเชพเชเชฅเซ เชเซเชเชฒเซเช เชเซเชฌ เช เชเชชเชฏเซเชเซ เชฎเชพเชนเชฟเชคเซ เชฎเซเชณเชตเชตเชพเชฎเชพเช เชธเชเซเชทเชฎ เชนเชคเซ.
- 00h:SWBootReset
- 01h: เชฐเซเชกเชฌเซเชฒเซเช
- 02h: WriteBlock
- 03 เชเชฒเชพเช: เชเชฐเซเชเชฌเซเชฒเซเช
- 06h: เชเซเชฌเชฒเชฐเซเชก
- 07 เชเชฒเชพเช: เชเซเชเชธเชฎ
- 08h: เชเซเชฒเชฟเชฌเซเชฐเซเช0
- 09h: เชเซเชฒเชฟเชฌเซเชฐเซเช1
เชตเซเชเซเชเชฐ เชจเชพเชฎเซเชจเซ SROM เชซเชเชเซเชถเชจเซเชธ เชธเชพเชฅเซ เชธเชฐเชเชพเชฎเชฃเซ เชเชฐเซเชจเซ, เช เชฎเซ เช เชชเซเชฐเซเชเซเชเซเชฒ เชฆเซเชตเชพเชฐเชพ เชธเชฎเชฐเซเชฅเชฟเชค เชตเชฟเชตเชฟเชง เชเชพเชฎเชเซเชฐเซเชจเซ เช เชชเซเชเซเชทเชฟเชค SROM เชชเชฐเชฟเชฎเชพเชฃเซ เชธเชพเชฅเซ เชฎเซเชช เชเชฐเซ เชถเชเซเช เชเซเช. เชเชจเซ เชเชญเชพเชฐ, เช เชฎเซ ISSP เชตเซเชเซเชเชฐเชจเชพ เชชเซเชฐเชฅเชฎ เชคเซเชฐเชฃ เชฌเชฟเชเซเชธเชจเซ เชกเซเชเซเชก เชเชฐเซ เชถเชเซเช เชเซเช:
- 100 => "เชตเชฐเซเชฎ"
- 101 => "rdmem"
- 110 => "เชฐเชนเซเช"
- 111 => "rdreg"
เชเซ เชเซ, เชเชจ-เชเชฟเชช เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชเชจเซ เชธเชเชชเซเชฐเซเชฃ เชธเชฎเช เชฎเชพเชคเซเชฐ PSoC เชธเชพเชฅเซ เชธเซเชงเชพ เชธเชเชเชพเชฐ เชฆเซเชตเชพเชฐเชพ เชฎเซเชณเชตเซ เชถเชเชพเชฏ เชเซ.
5.3. PSoC เชธเชพเชฅเซ เชธเชเชเชพเชฐ
เชกเชฐเซเช Petrautsky เชชเชนเซเชฒเซเชฅเซ เช เชเซ
เชฎเชนเซเชฐเชฌเชพเชจเซ เชเชฐเซเชจเซ เชจเซเชเชง เชเชฐเซ เชเซ เชฎเชพเชฐเชพ เชธเชเชถเซเชงเชจ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เชฎเซเช เชกเชฐเซเชเชจเชพ เชเซเชกเชฎเชพเช เชฅเซเชกเซ เชซเซเชฐเชซเชพเชฐ เชเชฐเซเชฏเซ เชเซ. เชคเชฎเซ GitHub เชชเชฐ เชฎเชพเชฐเชพ เชซเซเชฐเชซเชพเชฐ เชถเซเชงเซ เชถเชเซ เชเซ:
เชคเซเชฅเซ, Arduino เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ, เชฎเซเช เชชเซเชฐเชฅเชฎ "เชธเชเชเชพเชฐ" เชฎเชพเชเซ เชซเชเซเชค "เชธเชคเซเชคเชพเชตเชพเชฐ" เชตเซเชเซเชเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ. เชฎเซเช VERIFY เชเชฆเซเชถเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชเชคเชฐเชฟเช ROM เชตเชพเชเชเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเชฏเซ. เช เชชเซเชเซเชทเชพ เชฎเซเชเชฌ, เชนเซเช เช เชเชฐเชตเชพ เชฎเชพเชเซ เช เชธเชฎเชฐเซเชฅ เชนเชคเซ. เชเชฆเชพเช เช เชนเชเซเชเชคเชจเซ เชเชพเชฐเชฃเซ เชเซ เชฐเซเชก เชชเซเชฐเซเชเซเชเซเชถเชจ เชฌเชฟเชเซเชธ เชซเซเชฒเซเชถ เชกเซเชฐเชพเชเชตเชจเซ เช เชเชฆเชฐ เชธเชเซเชฐเชฟเชฏ เชฅเชพเชฏ เชเซ.
เชชเชเซ เชฎเซเช เชฎเซเชฎเชฐเซ/เชฐเชเซเชธเซเชเชฐ เชฒเชเชตเชพ เช เชจเซ เชตเชพเชเชเชตเชพ เชฎเชพเชเซ เชฎเชพเชฐเชพ เชชเซเชคเชพเชจเชพ เชเซเชเชฒเชพเช เชธเชฐเชณ เชตเซเชเซเชเชฐ เชฌเชจเชพเชตเซเชฏเชพ. เชฎเชนเซเชฐเชฌเชพเชจเซ เชเชฐเซเชจเซ เชจเซเชเชง เชเชฐเซ เชเซ เชซเซเชฒเซเชถ เชกเซเชฐเชพเชเชต เชธเซเชฐเชเซเชทเชฟเชค เชนเซเชตเชพ เชเชคเชพเช เช เชฎเซ เชเชเซเช SROM เชตเชพเชเชเซ เชถเชเซเช เชเซเช!
5.4. เชเชจ-เชเซเชช เชฐเชเซเชธเซเชเชฐเชจเซ เชเชณเช
"เชกเชฟเชธเซเชฎเซเชฌเชฒ" เชตเซเชเซเชเชฐเซเชธเชจเซ เชเซเชฏเชพ เชชเชเซ, เชฎเซเช เชถเซเชงเซเชฏเซเช เชเซ เชเชชเชเชฐเชฃ M0C เชเชชเชเซเชกเซเชธเชจเซ เชเชฒเซเชฒเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชฌเชฟเชจเชฆเชธเซเชคเชพเชตเซเชเซเชเซเชค เชฐเชเชฟเชธเซเชเชฐ (8xF0-8xFA) เชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ, เชเซ เชธเซเชฐเชเซเชทเชพเชจเซ เชฌเชพเชฏเชชเชพเชธ เชเชฐเซเชจเซ เชธเซเชงเชพ เช เชเชเซเชเชฟเชเซเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชเชจเชพเชฅเซ เชฎเชจเซ "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 เชธเชพเชฅเซ เชตเชพเชคเชเซเชค เชเชฐเซ เชถเชเซเช เชเซเช, เชชเชฐเชเชคเซ เชฎเชพเชฐเซ เชชเชพเชธเซ เชนเชเซ เชชเชฃ เชซเซเชฒเซเชถ เชกเซเชฐเชพเชเชตเชจเชพ เชธเซเชฐเชเซเชทเชพ เชฌเชฟเชเซเชธ เชตเชฟเชถเซ เชตเชฟเชถเซเชตเชธเชจเซเชฏ เชฎเชพเชนเชฟเชคเซ เชจเชฅเซ. เชฎเชจเซ เช เชนเชเซเชเชคเชฅเซ เชเซเชฌ เช เชเชถเซเชเชฐเซเชฏ เชฅเชฏเซเช เชเซ เชธเชพเชฏเชชเซเชฐเชธ เชเชชเชเชฐเชฃเชจเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเซ เชธเซเชฐเชเซเชทเชพ เชธเชเซเชฐเชฟเชฏ เชเซ เชเซ เชเซเชฎ เชคเซ เชคเชชเชพเชธเชตเชพ เชฎเชพเชเซ เชเซเชเชชเชฃ เชฎเชพเชงเซเชฏเชฎ เชชเซเชฐเชฆเชพเชจ เชเชฐเชคเซเช เชจเชฅเซ. เชเชเชฐเซ เชธเชฎเชเชตเชพ เชฎเชพเชเซ เชฎเซเช Google เชฎเชพเช เชเชเชกเชพเชฃเชชเซเชฐเซเชตเช เชถเซเชงเซเชฏเซเช เชเซ เชธเชพเชฏเชชเซเชฐเชธ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชฆเชพเชจ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฒ 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
เช เชตเซเชเซเชเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ (psoc.py เชฎเชพเช read_security_data เชเซเช), เช เชฎเชจเซ SRAM เชฎเชพเช 0x80 เชชเชฐ เชคเชฎเชพเชฎ เชธเซเชฐเชเซเชทเชพ เชฌเชฟเชเซเชธ เชฎเชณเซ เชเซ, เชเซเชฏเชพเช เชธเชเชฐเชเซเชทเชฟเชค เชฌเซเชฒเซเช เชฆเซเช เชฌเซ เชฌเชฟเชเซเชธ เชเซ.
เชชเชฐเชฟเชฃเชพเชฎ เชจเชฟเชฐเชพเชถเชพเชเชจเช เชเซ: เชฌเชงเซเช "เชฌเชพเชนเซเชฏ เชตเชพเชเชเชจ เช เชจเซ เชฒเซเชเชจ เช เชเซเชทเชฎ เชเชฐเซ" เชฎเซเชกเชฎเชพเช เชธเซเชฐเชเซเชทเชฟเชค เชเซ. เชคเซเชฅเซ, เชเชชเชฃเซ เชซเชเซเชค เชซเซเชฒเซเชถ เชกเซเชฐเชพเชเชตเชฎเชพเชเชฅเซ เชเชเชเชชเชฃ เชตเชพเชเชเซ เชถเชเชคเชพ เชจเชฅเซ, เชชเชฐเชเชคเซ เชเชชเชฃเซ เชเชเชเชชเชฃ เชฒเชเซ เชถเชเชคเชพ เชจเชฅเซ (เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชคเซเชฏเชพเช ROM เชกเชฎเซเชชเชฐ เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ). เช เชจเซ เชธเชเชฐเชเซเชทเชฃเชจเซ เช เชเซเชทเชฎ เชเชฐเชตเชพเชจเซ เชเชเชฎเชพเชคเซเชฐ เชฐเชธเซเชคเซ เช เชเซ เชเซ เชธเชฎเชเซเชฐ เชเชฟเชชเชจเซ เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เชญเซเชเชธเซ เชจเชพเชเชตเซ. ๐
6. เชชเซเชฐเชฅเชฎ (เชจเชฟเชทเซเชซเชณ) เชนเซเชฎเชฒเซ: ROMX
เชเซ เชเซ, เช เชฎเซ เชจเซเชเซเชจเซ เชฏเซเชเซเชคเชฟ เช เชเชฎเชพเชตเซ เชถเชเซเช เชเซเช: เช เชฎเชพเชฐเซ เชชเชพเชธเซ เชฎเชจเชธเซเชตเซ เชเชชเชเซเชก เชเชฒเชพเชตเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ เชนเซเชตเชพเชฅเซ, เชถเชพ เชฎเชพเชเซ ROMX เชจเซ เชเชเซเชเชฟเชเซเชฏเซเช เชจ เชเชฐเซเช, เชเซเชจเซ เชเชชเชฏเซเช เชซเซเชฒเซเชถ เชฎเซเชฎเชฐเซ เชตเชพเชเชเชตเชพ เชฎเชพเชเซ เชฅเชพเชฏ เชเซ? เช เช เชญเชฟเชเชฎเชฎเชพเช เชธเชซเชณเชคเชพเชจเซ เชธเชพเชฐเซ เชคเช เชเซ. เชเชพเชฐเชฃ เชเซ เชฐเซเชกเชฌเซเชฒเซเช เชซเชเชเซเชถเชจ เชเซ เชเซ SROM (เชเซ เชตเซเชเซเชเชฐ เชฆเซเชตเชพเชฐเชพ เชเชชเชฏเซเชเชฎเชพเช เชฒเซเชตเชพเชฏ เชเซ) เชฎเชพเชเชฅเซ เชกเซเชเชพ เชตเชพเชเชเซ เชเซ เชคเซ เชคเชชเชพเชธเซ เชเซ เชเซ เชคเซเชจเซ ISSP เชฎเชพเชเชฅเซ เชฌเซเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชเซ เชเซ เชเซเชฎ. เชเซ เชเซ, ROMX เชเชชเชเซเชกเชฎเชพเช เชเชฆเชพเช เชเชตเซ เชคเชชเชพเชธ เชจ เชชเชฃ เชนเซเชฏ. เชคเซ เช เชนเซเช Python เชเซเชก เชเซ (Arduino เชเซเชกเชฎเชพเช เชฅเซเชกเชพ เชธเชนเชพเชฏเช เชตเชฐเซเชเซ เชเชฎเซเชฐเซเชฏเชพ เชชเชเซ):
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)! เชฎเชจเซ เชจเชฅเซ เชฒเชพเชเชคเซเช เชเซ เชเชชเชเชฐเชฃเชจเซ เช เชจเซเชฐเซเชช เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพ เช เชฐเซเชก เชชเซเชฐเซเชเซเชเซเชถเชจเชจเซเช เชเช เชคเชคเซเชต เชเซ. เช เชเช เชเชจเซเชเชฟเชจเชฟเชฏเชฐเชฟเชเช เชฏเซเชเซเชคเชฟ เชเซเชตเซเช เชเซ: เชเซเชฏเชพเชฐเซ เชฌเชพเชนเซเชฏ opcodes เชเชเซเชเชฟเชเซเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซเชฏเชพเชฐเซ ROM เชฌเชธเชจเซ เชเชพเชฎเชเชฒเชพเช เชฌเชซเชฐ เชชเชฐ เชฐเซเชกเชพเชฏเชฐเซเชเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
7. เชฌเซเชเซ เชนเซเชฎเชฒเซ: เชเซเชฒเซเชก เชฌเซเช เชเซเชฐเซเชธเชฟเชเช
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 quirks เชจเชฅเซ. เชตเชงเซเชฎเชพเช, เช เชเชพเชฃเซเชจเซ เชเซ M8C เชเซเชฐเชฎเชพเช เชฐเชเชฟเชธเซเชเชฐเซเชธเชจเซ เชเซเชฌ เช เชจเชพเชจเซ เชธเชฎเซเชน เชเซ, เชฎเซเช เชงเชพเชฐเซเชฏเซเช เชเซ เชเซเชเชธเชฎเชจเซ เชเชฃเชคเชฐเซ เชเชฐเชคเซ เชตเชเชคเซ, เชฎเชงเซเชฏเชตเชฐเซเชคเซ เชฎเซเชฒเซเชฏเซ เชธเชฎเชพเชจ เชเชฒเซเชฎเชพเช เชฐเซเชเซเชฐเซเชก เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ เชเซ เชเชเชฐเซ เชเชเชเชชเซเช เชชเชฐ เชเชถเซ: KEY1 (0xF8) / KEY2 ( 0xF9).
เชคเซเชฅเซ เชธเชฟเชฆเซเชงเชพเชเชคเชฎเชพเช เชฎเชพเชฐเซ เชนเซเชฎเชฒเซ เชเชจเชพ เชเซเชตเซ เชฆเซเชเชพเชฏ เชเซ:
- เช เชฎเซ ISSP เชฆเซเชตเชพเชฐเชพ เชเชจเซเชเซเช เชเชฐเซเช เชเซเช.
- เช เชฎเซ CHECKSUM-SETUP เชตเซเชเซเชเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเซเชเชธเชฎ เชเชฃเชคเชฐเซ เชถเชฐเซ เชเชฐเซเช เชเซเช.
- เช เชฎเซ เชจเชฟเชฐเซเชฆเชฟเชทเซเช เชธเชฎเชฏ T เชชเชเซ เชชเซเชฐเซเชธเซเชธเชฐเชจเซ เชฐเซเชฌเซเช เชเชฐเซเช เชเซเช.
- เชตเชฐเซเชคเชฎเชพเชจ เชเซเชเชธเชฎ C เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ เช เชฎเซ RAM เชตเชพเชเชเซเช เชเซเช.
- เชฆเชฐ เชตเชเชคเซ T เชจเซ เชฅเซเชกเซ เชตเชงเชพเชฐเชคเชพ เชชเชเชฒเชพเช 3 เช เชจเซ 4 เชจเซเช เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจ เชเชฐเซ.
- เช เชฎเซ เช เชเชพเชเชจเชพ เชเซเชเชธเชฎ 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
เช เชเซเชก เชเซเชฒเชฟเชฌเซเชฐเซเช1 (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();
- เชเซเชเชฎ_เชตเชฟเชฒเชเชฌ เชตเชพเชเชเซ.
- เชเซเชเชธเชฎ เชเชฃเชคเชฐเซ เชเชฒเชพเชตเซ (send_checksum_v).
- เชเซเชเซเชเชธ เชธเชฎเชฏเชเชพเชณเชพ เชฎเชพเชเซ เชฐเชพเชน เชเซเช; เชจเซเชเซเชจเชพ เชเซเชทเชคเชฟเชเชจเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซเชคเชพ:
- เชเซเชฏเชพเช เชธเซเชงเซ เชฎเชจเซ เชเชฌเชฐ เชจ เชชเชกเซ เชเซ เชคเซ เชถเซเช เชฅเชพเชฏ เชเซ เชคเซเชฏเชพเช เชธเซเชงเซ เชฎเซเช เชเชฃเซ เชธเชฎเชฏ เชฌเชเชพเชกเซเชฏเซ
เชฎเชพเชเชเซเชฐเซเชธเซเชเชจเซเชกเชจเซ เชตเชฟเชฒเชเชฌ 16383 ฮผs เชเชฐเชคเชพเช เชตเชงเซ เชจ เชนเซเชฏ เชคเซเชตเชพ เชตเชฟเชฒเชเชฌ เชธเชพเชฅเซ เช เชฏเซเชเซเชฏ เชฐเซเชคเซ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ; - เช เชจเซ เชชเชเซ เชซเชฐเซเชฅเซ เชเชเชฒเซ เช เชธเชฎเชฏ เชเชพเชขเซ เชจเชพเชเซเชฏเซ เชเซเชฏเชพเช เชธเซเชงเซ เชฎเชจเซ เชเชฌเชฐ เชจ เชชเชกเซ เชเซ เชฎเชพเชเชเซเชฐเซเชธเซเชเชจเซเชกเชฎเชพเช เชตเชฟเชฒเชเชฌ เชฅเชพเชฏ เชเซ, เชเซ 0 เชเชจเชชเซเช เชคเชฐเซเชเซ เชคเซเชจเซ เชชเชธเชพเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซ เชคเซ เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เชเซเชเซ เชฐเซเชคเซ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ!
- เชเซเชฏเชพเช เชธเซเชงเซ เชฎเชจเซ เชเชฌเชฐ เชจ เชชเชกเซ เชเซ เชคเซ เชถเซเช เชฅเชพเชฏ เชเซ เชคเซเชฏเชพเช เชธเซเชงเซ เชฎเซเช เชเชฃเซ เชธเชฎเชฏ เชฌเชเชพเชกเซเชฏเซ
- 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))
เชเซเชเชเชฎเชพเช, เช เชเซเชก เชถเซเช เชเชฐเซ เชเซ:
- PSoC เชฐเซเชฌเซเช เชเชฐเซ เชเซ (เช เชจเซ เชคเซเชจเซ เชเชพเชฆเซเช เชจเชเชฌเชฐ เชฎเซเชเชฒเซ เชเซ).
- เชธเชเชชเซเชฐเซเชฃ เชชเซเชฐเชพเชฐเชเชญเชฟเช เชตเซเชเซเชเชฐ เชฎเซเชเชฒเซ เชเซ.
- Arduino เชซเชเชเซเชถเชจเชจเซ Cmnd_STK_START_CSUM (0x85) เชเซเชฒ เชเชฐเซ เชเซ, เชเซเชฏเชพเช เชฎเชพเชเชเซเชฐเซเชธเซเชเชจเซเชกเชฎเชพเช เชตเชฟเชฒเชเชฌ เชชเซเชฐเชพเชฎเซเชเชฐ เชคเชฐเซเชเซ เชชเชธเชพเชฐ เชฅเชพเชฏ เชเซ.
- เชเซเชเชธเชฎ (0xF8 เช เชจเซ 0xF9) เช เชจเซ เชฌเชฟเชจเชฆเชธเซเชคเชพเชตเซเชเซเชเซเชค เชฐเชเซเชธเซเชเชฐ 0xF1 เชตเชพเชเชเซ เชเซ.
เช เชเซเชก 10 เชฎเชพเชเชเซเชฐเซเชธเซเชเชจเซเชกเชฎเชพเช 1 เชตเชเชค เชเชเซเชเชฟเชเซเชฏเซเช เชฅเชพเชฏ เชเซ. 0xF1 เช เชนเซเช เชธเชฎเชพเชตเชตเชพเชฎเชพเช เชเชตเซเชฒ เชเซ เชเชพเชฐเชฃ เชเซ เชคเซ เชเชเชฎเชพเชคเซเชฐ เชฐเชเซเชธเซเชเชฐ เชนเชคเซเช เชเซ เชเซเชเชธเชฎเชจเซ เชเชฃเชคเชฐเซ เชเชฐเชคเซ เชตเชเชคเซ เชฌเชฆเชฒเชพเชฏเซเช เชนเชคเซเช. เชเชฆเชพเช เชคเซ เช เชเชเชเชฃเชฟเชค เชคเชฐเซเช เชเชเชฎ เชฆเซเชตเชพเชฐเชพ เชเชชเชฏเซเชเชฎเชพเช เชฒเซเชตเชพเชคเซเช เช เชฎเซเช เชชเซเชฐเชเชพเชฐเชจเซเช เชเชพเชฎเชเชฒเชพเช เชเชฒ เชเซ. เชเซเชฏเชพเชฐเซ Arduino เชเซเชตเชจเชจเชพ เชเชฟเชนเซเชจเซ เชฆเชฐเซเชถเชพเชตเชตเชพเชจเซเช เชฌเชเชง เชเชฐเซ เชคเซเชฏเชพเชฐเซ เชชเชฟเชเซเชเซเชฎเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชนเซเช 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 เชตเชฟเชฒเชเชฌ เชตเชเซเชเซ เชเซเชฏเชพเชเช เชฌเชฆเชฒเชพเช เชเชฏเซเช เชเซ. เชชเชฐเชเชคเซ เชฎเซเช เชคเซเชฏเชพเช เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชเชฐเซเชฒเซ "เชชเชฟเชจเชเซเชก" เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เชเซเชเซ เชนเชคเซ - เชตเชฟเชฒเชเชฌเชฟเชค เชฎเชพเชเชเซเชฐเซเชธเซเชเชจเซเชก เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเชพ เชเชฐเซเชเชฟเชซเซเชเซเชเชจเซ เชเชพเชฐเชฃเซ, เชเซ เชเซเชฏเชพเชฐเซ 0 เชชเชธเชพเชฐ เชฅเชพเชฏ เชเซ เชคเซเชฏเชพเชฐเซ เชตเชฟเชเชฟเชคเซเชฐ เชตเชธเซเชคเซเช เชเชฐเซ เชเซ.
เชชเชเซ, เชฒเชเชญเช 3 เชเชฒเชพเช เชชเชธเชพเชฐ เชเชฐเซเชฏเชพ เชชเชเซ, เชฎเชจเซ เชฏเชพเชฆ เชเชตเซเชฏเซเช เชเซ SROM เชธเชฟเชธเซเชเชฎ เชเซเชฒ เชเซเชเชธเชฎ เชเชจเชชเซเช เชคเชฐเซเชเซ เชเช เชฆเชฒเซเชฒ เชฎเซเชณเชตเซ เชเซ เชเซ เชเซเชเชธเชฎ เชฎเชพเชเซ เชฌเซเชฒเซเชเซเชธเชจเซ เชธเชเชเซเชฏเชพ เชธเซเชชเชทเซเช เชเชฐเซ เชเซ! เชคเซ. เช เชฎเซ 64-เชฌเชพเชเช เชฌเซเชฒเซเช เชธเซเชงเซเชจเซ เชเซเชเชธเชพเช เชธเชพเชฅเซ PIN เชเซเชก เช เชจเซ "เชเซเชเชพ เชชเซเชฐเชฏเชคเซเชจเซ" เชเชพเชเชจเซเชเชฐเชจเซเช เชธเชเชเซเชฐเชน เชธเชฐเชจเชพเชฎเซเช เชธเชฐเชณเชคเชพเชฅเซ เชธเซเชฅเชพเชจเชฟเชเซเชเชฐเชฃ เชเชฐเซ เชถเชเซเช เชเซเช.
เชฎเชพเชฐเชพ เชชเซเชฐเชพเชฐเชเชญเชฟเช เชฐเชจเซเช เชจเซเชเซเชจเชพ เชชเชฐเชฟเชฃเชพเชฎ เชเชชเซเชฏเชพ:
เชชเชเซ เชฎเซเช เชชเชฟเชจ เชเซเชก "123456" เชฅเซ "1234567" เชฎเชพเช เชฌเชฆเชฒเซเชฏเซ เช เชจเซ เชฎเซเชณเชตเซเชฏเซเช:
เชเชฎ, เชชเชฟเชจ เชเซเชก เช เชจเซ เชเซเชเชพ เชชเซเชฐเชฏเชพเชธเซเชจเซเช เชเชพเชเชจเซเชเชฐ เชฌเซเชฒเซเช เชจเชเชฌเชฐ 126เชฎเชพเช เชธเชเชเซเชฐเชนเชฟเชค เชนเซเชฏ เชคเซเชตเซเช เชฒเชพเชเซ เชเซ.
7.5. เชฌเซเชฒเซเช เชจเชเชฌเชฐ 126เชจเซ เชกเชฎเซเชช เชฒเซเชตเซ
เชฌเซเชฒเซเช #126 เชเซเชเชธเชฎ เชเชฃเชคเชฐเซเชจเซ เชถเชฐเซเชเชคเชฅเซ, เชฎเชพเชฐเชพ เชธเชเชชเซเชฐเซเชฃ เชกเชฎเซเชชเชฎเชพเช, 125x64x18 = 144000ฮผs เชจเซ เชเชธเชชเชพเชธ เชเซเชฏเชพเชเช เชธเซเชฅเชฟเชค เชนเซเชตเซเช เชเซเชเช, เช เชจเซ เชคเซ เชคเชฆเซเชฆเชจ เชฌเซเชฆเซเชงเชฟเชเชฎเซเชฏ เชฒเชพเชเซ เชเซ. เชคเซ เชชเชเซ, เช เชธเชเชเซเชฏ เช เชฎเชพเชจเซเชฏ เชกเชฎเซเชชเซเชธเชจเซ เชฎเซเชจเซเชฏเซเช เชฒเซ เชฌเชนเชพเชฐ เชเชพเชขเซเชฏเชพ เชชเชเซ ("เชจเชพเชจเชพ เชธเชฎเชฏเชจเชพ เชตเชฟเชเชฒเชจเซ" เชจเชพ เชธเชเชเชฏเชจเซ เชเชพเชฐเชฃเซ), เชฎเชจเซ เช เชฌเชพเชเชเซเชธ (145527 ฮผs เชจเซ เชตเชฟเชฒเชเชฌเชฟเชคเชคเชพ เชชเชฐ) เชฎเชณเชตเชพเชจเซเช เชธเชฎเชพเชชเซเชค เชฅเชฏเซเช:
เชคเซ เชคเชฆเซเชฆเชจ เชธเซเชชเชทเซเช เชเซ เชเซ PIN เชเซเชก เชเชจเชเซเชฐเชฟเชชเซเชเซเชก เชธเซเชตเชฐเซเชชเชฎเชพเช เชธเชเชเซเชฐเชนเชฟเชค เชเซ! เช เชฎเซเชฒเซเชฏเซ, เช เชฒเชฌเชคเซเชค, ASCII เชเซเชกเซเชธเชฎเชพเช เชฒเชเซเชฒเชพ เชจเชฅเซ, เชชเชฐเชเชคเซ เชคเซ เชฌเชนเชพเชฐ เชเชตเซเชฏเซเช เชคเซเชฎ, เชคเซเช เชเซเชชเซเชธเชฟเชเซเชต เชเซเชฌเซเชฐเซเชกเชฎเชพเชเชฅเซ เชฒเซเชงเซเชฒเชพ เชฐเซเชกเชฟเชเชเซเชธเชจเซ เชชเซเชฐเชคเชฟเชฌเชฟเชเชฌเชฟเชค เชเชฐเซ เชเซ.
เชเซเชฒเซเชฒเซ, เชเชฐเชพเชฌ เชชเซเชฐเชฏเชพเชธ เชเชพเชเชจเซเชเชฐ เชเซเชฏเชพเช เชธเชเชเซเชฐเชนเชฟเชค เชเซ เชคเซ เชถเซเชงเชตเชพ เชฎเชพเชเซ เชฎเซเช เชเซเชเชฒเชพเช เชตเชงเซ เชชเชฐเซเชเซเชทเชฃเซ เชเชฐเซเชฏเชพ. เช เชนเซเช เชชเชฐเชฟเชฃเชพเชฎ เชเซ:
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 เชตเชพเชเชเซ เชถเชเซเช เชเซเช, เชชเชเซ เชญเชฒเซ เชคเซ เชตเชพเชเชเชจ เชธเซเชฐเชเซเชทเชฟเชค เชนเซเชฏ;
- เช เชฎเซ เชเซเชฒเซเชก เชฌเซเช เชเซเชฐเซเชธ เชเชเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เช เชจเซ เชชเซเชจ เชเซเชกเชจเซ เชธเซเชงเซ เชตเชพเชเชเซเชจเซ เชเชจเซเชเชฟ-เชธเซเชตเชพเชเชช เชธเซเชฐเชเซเชทเชพเชจเซ เชฌเชพเชฏเชชเชพเชธ เชเชฐเซ เชถเชเซเช เชเซเช.
เชเซ เชเซ, เชธเชฟเชเชเซเชฐเชจเชพเชเชเซเชถเชจ เชธเชฎเชธเซเชฏเชพเชเชจเซ เชเชพเชฐเชฃเซ เช เชฎเชพเชฐเชพ เชนเซเชฎเชฒเชพเชฎเชพเช เชเซเชเชฒเซเช เชเชพเชฎเซเช เชเซ. เชคเซ เชจเซเชเซ เชชเซเชฐเชฎเชพเชฃเซ เชธเซเชงเชพเชฐเซ เชถเชเชพเชฏ เชเซ:
- "เชเซเชฒเซเชก เชฌเซเช เชเซเชฐเซเชธ" เชนเซเชฎเชฒเชพเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ เชฎเซเชณเชตเซเชฒเชพ เชเชเชเชชเซเช เชกเซเชเชพเชจเซ เชฏเซเชเซเชฏ เชฐเซเชคเซ เชกเซเชเซเชก เชเชฐเชตเชพ เชฎเชพเชเซ เชเชชเชฏเซเชเชฟเชคเชพ เชฒเชเซ;
- เชตเชงเซ เชเซเชเซเชเชธ เชธเชฎเชฏ เชตเชฟเชฒเชเชฌ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ FPGA เชเซเชเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซ (เช เชฅเชตเชพ Arduino เชนเชพเชฐเซเชกเชตเซเชฐ เชเชพเชเชฎเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเซ);
- เชฌเซเชเซ เชนเซเชฎเชฒเซ เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซ: เชเชพเชฃเซ เชเซเชเชจเซ เชเซเชเซ PIN เชเซเชก เชฆเชพเชเชฒ เชเชฐเซ, RAM เชฐเซเชฌเซเช เชเชฐเซ เช เชจเซ เชกเชฎเซเชช เชเชฐเซ, เชเชถเชพ เชฐเชพเชเซเช เชเซ เชธเชพเชเซ PIN เชเซเชก เชธเชฐเชเชพเชฎเชฃเซ เชฎเชพเชเซ RAM เชฎเชพเช เชธเชพเชเชตเชตเชพเชฎเชพเช เชเชตเชถเซ. เชเซ เชเซ, Arduino เชชเชฐ เช เชเชฐเชตเซเช เชเชเชฒเซเช เชธเชฐเชณ เชจเชฅเซ, เชเชพเชฐเชฃ เชเซ Arduino เชธเชฟเชเซเชจเชฒ เชฒเซเชตเชฒ 5 เชตเซเชฒเซเช เชเซ, เชเซเชฏเชพเชฐเซ เช เชฎเซ เชเซ เชฌเซเชฐเซเชกเชจเซ เชคเชชเชพเชธ เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช เชคเซ 3,3 เชตเซเชฒเซเช เชธเชฟเชเซเชจเชฒ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเซ เชเซ.
เชเช เชฐเชธเชชเซเชฐเชฆ เชตเชธเซเชคเซ เชเซ เช เชเชฎเชพเชตเซ เชถเชเชพเชฏ เชเซ เชคเซ เชตเชพเชเชเชตเชพเชจเซ เชธเซเชฐเชเซเชทเชพเชจเซ เชฌเชพเชฏเชชเชพเชธ เชเชฐเชตเชพ เชฎเชพเชเซ เชตเซเชฒเซเชเซเช เชธเซเชคเชฐ เชธเชพเชฅเซ เชฐเชฎเชตเชพเชจเซเช เชเซ. เชเซ เช เช เชญเชฟเชเชฎ เชเชพเชฎ เชเชฐเซ เชเซ, เชคเซ เช เชฎเซ เช เชเซเชเซเชเชธ เชธเชฎเชฏ เชตเชฟเชฒเชเชฌ เชธเชพเชฅเซ เชเซเชเชธเชฎ เชตเชพเชเชเชตเชพ เชชเชฐ เชเชงเชพเชฐ เชฐเชพเชเชตเชพเชจเซ เชฌเชฆเชฒเซ - เชซเซเชฒเซเชถ เชกเซเชฐเชพเชเชตเชฎเชพเชเชฅเซ เชเชเชฆเชฎ เชธเชเซเช เชกเซเชเชพ เชฎเซเชณเชตเซ เชถเชเซเชถเซเช.
เชเชพเชฐเชฃ เชเซ SROM เชเชฆเชพเช เชฐเซเชกเชฌเซเชฒเซเช เชธเชฟเชธเซเชเชฎ เชเซเชฒ เชฆเซเชตเชพเชฐเชพ เชเชพเชฐเซเชก เชฌเชฟเชเซเชธ เชตเชพเชเชเซ เชเซ, เช
เชฎเซ เชคเซ เช เชเชฐเซ เชถเชเซเช เชเซเช
เชฌเซเชเซ เชเช เชฎเชจเซเชฐเชเชเช เชตเชธเซเชคเซ เชเซ เชเชฐเซ เชถเชเชพเชฏ เชเซ เชคเซ เชเซเชชเชฎเชพเชเชฅเซ เชเซเชธเชจเซ เชเซเชฐเชพเชเชจเซเชก เชเชฐเชตเชพเชจเซ เชเซ: SRAM เชกเชฎเซเชช เชฒเซเชตเชพ เชฎเชพเชเซ, เชฌเชฟเชจเชฆเชธเซเชคเชพเชตเซเชเซเชเซเชค เชธเชฟเชธเซเชเชฎ เชเซเชฒเซเชธ เช เชจเซ เชจเชฌเชณเชพเชเชเชจเซ เชเชณเชเซ.
9. เชจเชฟเชทเซเชเชฐเซเชท
เชคเซเชฅเซ, เช เชกเซเชฐเชพเชเชตเชจเซเช เชฐเชเซเชทเชฃ เชเชเซเชเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชเชฃเซเช เชฌเชงเซเช เชเซเชกเซ เชฆเซ เชเซ, เชเชพเชฐเชฃ เชเซ เชคเซ เชชเชฟเชจ เชเซเชกเชจเซ เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชจเชฟเชฏเชฎเชฟเชค ("เชเช เชฃ" เชจเชฅเซ) เชฎเชพเชเชเซเชฐเซเชเชจเซเชเซเชฐเซเชฒเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ... เชเชชเชฐเชพเชเชค, เชกเซเชเชพ เชธเชพเชฅเซ เชตเชธเซเชคเซเช เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฒเซ เชฐเชนเซ เชเซ เชคเซเชจเชพ เชชเชฐ เชฎเซเช (เชนเชเซ เชธเซเชงเซ) เชเซเชฏเซเช เชจเชฅเซ. เช เชเชชเชเชฐเชฃ เชชเชฐ เชเชจเซเชเซเชฐเชฟเชชเซเชถเชจ!
Aigo เชฎเชพเชเซ เชคเชฎเซ เชถเซเช เชญเชฒเชพเชฎเชฃ เชเชฐเซ เชถเชเซ เชเซ? เชเชจเซเชเซเชฐเชฟเชชเซเชเซเชก เชเชเชกเซเชกเซ เชกเซเชฐเชพเชเชตเซเชธเชจเชพ เชเซเชเชฒเชพเช เชฎเซเชกเชฒเซเชธเชจเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเซเชฏเชพ เชชเชเซ, 2015 เชฎเชพเช เชฎเซเช เชฌเชจเชพเชตเซเชฏเซเช
เชฎเซเช เช เชธเชเชถเซเชงเชจ เชเชฐเชตเชพเชฎเชพเช เชฌเซ เชธเชชเซเชคเชพเชนเชพเชเชค เช เชจเซ เชเชฃเซ เชธเชพเชเช เชตเชฟเชคเชพเชตเซ. เชเซเชฒ เชฒเชเชญเช 40 เชเชฒเชพเช. เชถเชฐเซเชเชคเชฅเซ (เชเซเชฏเชพเชฐเซ เชฎเซเช เชกเชฟเชธเซเช เชเซเชฒเซ) เชฅเซ เช เชเชค เชธเซเชงเซ (PIN เชเซเชก เชกเชฎเซเชช) เชเชฃเชคเชฐเซ. เช เช 40 เชเชฒเชพเชเชฎเชพเช เชฎเซเช เช เชฒเซเช เชฒเชเชตเชพเชฎเชพเช เชตเชฟเชคเชพเชตเซเชฒเซ เชธเชฎเชฏ เชถเชพเชฎเซเชฒ เชเซ. เชคเซ เชเซเชฌ เช เชฐเซเชฎเชพเชเชเช เชธเชซเชฐ เชนเชคเซ.
เชธเซเชฐเซเชธ: www.habr.com