Я пытаюсь создать двоичный файл из файла intelHex. Помимо файла intelHex, у меня есть данные и адрес, по которым я должен записать данные в двоичном файле.
Файл IntelHex выглядит так
:10010000214601360121470136007EFE09D2190140
:100110002146017EB7C20001FF5F16002148011988
:10012000194E79234623965778239EDA3F01B2CAA7
:100130003F0156702B5E712B722B732146013421C7
:00000001FF
Итак, у меня есть 4 строки с данными, так как последняя говорит нам, что это конец файла.
Вот что я делаю для создания файла
while (!streamReader.EndOfStream)
{
string temp = String.Empty;
int address = 0;
line = streamReader.ReadLine();
// Get address for each data
address = Convert.ToInt32(line.Substring(3, 4), 16);
// Get data from each line
temp = line.Substring(7, 2);
if (temp == "01")
break;
else
{
temp = line.Substring(9, line.Length - 11);
string[] array = new string[(temp.Length / 2)];
int j = 0;
for (int i = 0; i < array.Length; ++i)
{
array[i] = temp[j].ToString() + temp[j + 1].ToString();
j = j + 2;
}
temp = String.Empty;
for (int i = 0; i < array.Length; ++i)
{
temp = temp + Convert.ToChar(Convert.ToInt32(array[i], 16));
}
}
binaryWriter.Seek(address, SeekOrigin.Begin);
binaryWriter.Write(temp);
binaryWriter.Flush();
}
Console.WriteLine("Done...\nPress any key to exit...");
Проблема здесь в том, что данные в двоичном файле в некоторых местах не равны данным из файла intelHex. Похоже, в файл добавлены случайные данные, и я не знаю откуда. Впервые увидел, что перед данными из файла intelHex есть дополнительные данные. Например, первая строка данных начинается с 21, но в двоичном файле у меня число 12 перед 21. Я не знаю, что здесь не так. Надеюсь, что кто-то может мне помочь или направить меня, где я могу найти полезную информацию о создании бинарных файлов в C #