| ||||||||
| ||||||||
Серийный номерПрограммное обеспечение позволяет непосредственно перед записью микросхемы изменить в исходном файле, в EEPROM или в параметрах микросхемы один или несколько байт, по заданному алгоритму. Это может быть увеличение или уменьшение заданного номера на какую-то величину, произвольная функция, описанная в файле калькулятора или набор значений, считанный из текстового файла. Когда разрешена запись серийных номеров, состояние этого флага показывается в строке состояния. Для предотвращения случайной записи это режим отключается при выборе новой микросхемы. Параметры серийного номера и флаг разрешения записи сохраняются только вместе с проектом или при установленном флаге "Восстанавливать установки при запуске программы". Серийный номер загружается в буфер непосредственно перед записью микросхемы, и меняется только при успешном завершении всего цикла. Если в процессе записи микросхемы возникли ошибки, то при записи следующей микросхемы серийный номер не изменится. Такой механизм позволяет между операциями записи выполнять любые другие команды, например, дополнительную верификацию. Запись серийных номеров в автономном режиме не поддерживается.
В программе реализовано три алгоритма установки серийных номеров: "INC", "FILE" и "CALK", которые могут менять данные в одном из трех дампов: в основной прошивке (Main programm), в области EEPROM data или в параметрах микросхемы (Chip Parametrs). Алгоритм INC – серийный номер имеет фиксированную длину (от одного до четырех байт) и увеличивается на конкретное значение. Начальный адрес – может иметь любое значение. Если установленный адрес превышает размер буфера, то последний будет увеличен до нужного размера и заполнен кодом FF. Исключение составляет буфер с параметрами микросхемы. Там адрес не должен превышать $17F. Величина инкремента – может иметь любое значение. Если значение инкремента будет равно $FFFFFFFF, то начнется обратный отсчет. Начальное значение – устанавливает начальное значение серийного номера. Длина серийного номера (количество байт) определяется исходя из длины начального значения (по числу знаков). Если начальное значение равно 1 или 01 (один или два знака), то длина серийного номера будет равна 1 байту, если 001 или 0001 (три или четыре знака), то 2 байтам и т.д. Например, адрес равен $00FFF0, начальное значение равно $01003С, инкремент равен 01. В первую микросхему, начиная с адреса $00FFF0, будут записаны три байта $3C, $00, $01. Во вторую – $3D, $00, $01. В третью – $3E, $00, $01 и т.д. Если значение инкремента будет равно $FFFFFF, то начнется обратный отсчет ($3C, $3B, $3A…). Алгоритм FILE – перед каждой записью значение серийного номера считывается из файла. Длина каждого номера вычисляется исходя из длины считанной строки. Комментарии и пустые строки игнорируются. При достижении конца файла запись будет остановлена и выведено сообщение: "Серийный номер. Достигнут конец файла". Пример файла серийных номеров. В файле допускаются заглавные и строчные буквы, длина строки – до 8 знаков (4 байта). Строка комментариев должна начинаться с ";". ;====================== ; Файл серийных номеров ;====================== 00 1 2 1e ;это комментарий, следующая – пустая строка. 1f 6754 55 56 ffEE6857 59 5A 5B ;====================== В этом примере в ячейку $00FFF0, начиная с 7 строки, будут последовательно загружены значения: 1E, 1F, 54 (в $00FFF1 – 67), далее в $00FFF0 – 55, 56, 57 (в $00FFF1 – 68, в $00FFF2 – EE, в $00FFF3 – FF), и снова в $00FFF0 – 59, 5A, 5B. При очередной записи содержимое ячеек не изменится, а будет выведено сообщение о конце файла. Алгоритм CALK – перед каждой записью значение серийного номера вычисляется по алгоритму, заданному в файле калькулятора. Программа может показать диалоговое окно, в котором пользователь может ввести нужные значения или выполнить находящийся в файле скрипт в фоновом режиме. | ||||||||
ООО «ТЦ ТРИТОН» (495) 500-7890 |