Изменение встроенного серийного номера - PullRequest
2 голосов
/ 26 мая 2011

У меня есть строка с серийным номером «1080910», встроенная в программируемое устройство, которое было загружено в двоичный файл с помощью программатора ALL-100. Это мой мастер-файл как бы. Мне нужно изменить этот серийный номер на серийный номер устройства, которое мне нужно повторно прошить с помощью мастер-файла - программист ALL-100 использует пользовательский интерфейс XACCESS, который имеет функцию редактирования, показывающую расположение адреса, поле данных Hex и поле Ascii. Где-то в этом файле находится строка с серийным номером - кто-нибудь может мне помочь, как найти и отредактировать строку с серийным номером, так как я не смог найти ее с помощью функции поиска и не смог визуально подобрать последовательность чисел. Помогите !!!

Ответы [ 2 ]

2 голосов
/ 27 мая 2011

Если данные имеют символический адрес в исходном коде и не являются локальной переменной, их адрес появится в файле карты, созданном компоновщиком. Если это локальная переменная, инициализированная литеральной константой, тогда данные будут существовать в статических данных инициализации, местоположение которых также должно быть идентифицировано в файле карты.

Другая возможность заключается в том, что образ вашего приложения сжимается, а код запуска расширяет его в ОЗУ во время выполнения. Это будет очевидно в файле карты, если адреса данных и кода находятся в ОЗУ, а не в ПЗУ. Если это так, то то, что вы пытаетесь сделать, будет очень трудным. Вы должны знать используемый алгоритм сжатия, и какая часть изображения является сжатой частью (частью будет код распаковки, который запускается из ПЗУ). Затем вам придется распаковать изображение, изменить строку, а затем повторно сжать ее. Кроме того, если декомпрессия выполняет какую-либо контрольную сумму для сжатых или распакованных данных, вам придется также пересчитать и изменить ее.

Если бы это было требование с самого начала, вам лучше было бы зарезервировать место в скрипте компоновщика или использовать специальные расширения компилятора для абсолютного размещения данных в определенном месте.

1 голос
/ 26 мая 2011

Может быть, оно хранится в Unicod e, поэтому альтернативные символы равны 00.

...