ST发送文件的算法 找俄文高手帮忙.
找个懂俄文的高手帮我翻译一下.谢谢. ST发送文件的算法.ну раз в свободном, значит можно сделать дополнение еще одним камментом.
====
Более доступным языком...
В общих чертах, алгоритм следующий:
Передача данных начинается с первого блока (нулевой передается самым последним).
1. Синхронизация.
2. Синхронизация
3. Передача номера блока
4. Передача самого блока
5. Синхронизация
6. Передача старшего байта контрольной суммы блока
7. Передача младшего байта контрольной суммы блока
8. Чтение байта подтверждения (0х6 – если накопитель принял корректно данные и КС их совпадает, 0х15 – если ошибка)
9. Если конец файла не достигнут – передается следующий блок -> пункт 2
10. Передача номера блока (0)
11. Передача самого блока.
12. Синхронизация
13. Передача старшего байта КС блока
14. Передача младшего байта КС блока
15. Чтение байта подтверждения (0х6 – если накопитель принял корректно данные и КС их совпадает, 0х15 – если ошибка)
16. Передача старшего байта контрольной суммы всего передаваемого файла
17. Передача младшего байта контрольной суммы всего передаваемого файла
Принцип подсчета КС блока:
sCRC=sCRC+((sCRC AND 0xAA) XOR cByteForSend);
Плюс в конце после подсчета по всем байтам блока добавляем и номер блока
sCRC=sCRC+((sCRC AND 0xAA) XOR iNumberBlock);
Принцип подсчета КС файла:
sCRCCommon=sCRCCommon+((sCRCCommon AND 0xAA) XOR cByteForSend);
Общую КС начинать считать от начала файла!
Синхронизация: 不找个翻译软件试试??? 你这个是MEM的脚本用法,OK ? 这是自己写ST维修软件的核心算法.
解决了这个,就可以自己写ST的维修软件了.
现在的软件,对于不同的盘,返回信息也是不同的.如果不解决这个问题,我们会误杀很多的盘. 其他都搞明白了,还有CRC的检验没研究明白.正在分析中
页:
[1]