public void WritingTest()
        {
            const int programSize = 1234 * 16;
            const int majorVersion = 137;
            const int serialNumber = 40012;
            const int modification = 0x3f;
            var assemblyDate = new DateTime(1993, 12, 12);
            var fuses = new AvrFuses(0xab, 0xcd, 0xef);

            var header = new LegacyHeader(programSize, majorVersion, assemblyDate, modification, serialNumber, fuses);
            var sectionContent = new LegacyHeaderDataSectionContent(header);

            var mw = new MemoryWriter();
            sectionContent.WriteTo(mw);
            byte[] data = mw.Data;

            Assert.That(BitConverter.ToUInt16(data, 0x00), Is.EqualTo(programSize / 16), "Не правильно записался размер программы");
            Assert.That(BitConverter.ToUInt16(data, 0x02), Is.EqualTo(0x0000), "Контрольная сумма -- не 0000");
            Assert.That(data[0x04], Is.EqualTo(0x01), "Не правильно записался размер заголовка");
            Assert.That(data[0x05], Is.EqualTo(majorVersion), "Не правильно записался номер версии");
            Assert.That(data[0x06], Is.EqualTo(assemblyDate.Year - 1980), "Не правильно записался год сборки");
            Assert.That(data[0x07], Is.EqualTo(modification), "Не правильно код модификации ячейки");
            Assert.That(data[0x08], Is.EqualTo(assemblyDate.Month), "Не правильно записался месяц сборки");
            Assert.That(InverseUint16(data, 0x09), Is.EqualTo(serialNumber), "Не правильно записался серийный номер");
            Assert.That(data[0x0d], Is.EqualTo(fuses.FuseL), "Не правильно записался Low Fuse");
            Assert.That(data[0x0e], Is.EqualTo(fuses.FuseH), "Не правильно записался High Fuse");
            Assert.That(data[0x0f], Is.EqualTo(fuses.FuseX), "Не правильно записался Ext Fuse");

            Assert.That(InverseUint16(data, 0x0b),
                        Is.EqualTo((UInt16)data.Skip(5).Take(6).Sum(i => i)),
                        "Не правильно записалась сумма байт заголовка");
        }
Ejemplo n.º 2
0
 public LegacyHeader(int ProgramSize, int MajorVersion, DateTime AssemblyDate, int Modification, int SerialNumber, AvrFuses Fuses)
 {
     this.Modification = Modification;
     this.ProgramSize = ProgramSize;
     this.MajorVersion = MajorVersion;
     this.AssemblyDate = AssemblyDate;
     this.SerialNumber = SerialNumber;
     this.Fuses = Fuses;
 }
Ejemplo n.º 3
0
 /// <summary>Инициализирует новый экземпляр класса <see cref="T:System.Object" />.</summary>
 public AvrImage(AvrFuses Fuses, IBuffer FlashBuffer, IBuffer EepromBuffer)
 {
     this.Fuses = Fuses;
     this.FlashBuffer = FlashBuffer;
     this.EepromBuffer = EepromBuffer;
 }