Exemplo n.º 1
0
 public void Hexldr_DataRecordTest()
 { 
     var rec = IntelHexParser.ParseRecord(":060008000CEF18F01200DD");
     Assert.AreEqual(IntelHexRecordType.Data, rec.RecordType, $"Expecting data record, but was: {rec.RecordType}");
     Assert.AreEqual(8, rec.Address, $"Invalid data record address. Was 0x{rec.Address:X}");
     Assert.AreEqual(6, rec.ByteCount, $"Wrong data count. Was {rec.ByteCount}");
     Assert.AreEqual(new List<byte>() { 0xC, 0xEF, 0x18, 0xF0, 0x12, 0x00 }, rec.Data, $"Invalid data content for data record");
 }
Exemplo n.º 2
0
 public void Hexldr_ExtdLinearAddrTest()
 { 
     var rec = IntelHexParser.ParseRecord(":020000040030CA");
     Assert.AreEqual(IntelHexRecordType.ExtendedLinearAddress, rec.RecordType, $"Expecting extended linear address, but was: {rec.RecordType}");
     Assert.AreEqual(0, rec.Address, $"Invalid extended linear address. Was 0x{rec.Address:X}");
     Assert.AreEqual(2, rec.ByteCount, $"Wrong data count. Was {rec.ByteCount}");
     Assert.AreEqual(new List<byte>() { 0, 0x30 }, rec.Data, $"Invalid data content for extended linear address");
 }
Exemplo n.º 3
0
 public void Hexldr_ThrowOnInvalidRecordType()
 {
     Assert.Throws <IntelHexException>(() => IntelHexParser.ParseRecord(":00000007F9"));
 }
Exemplo n.º 4
0
 public void Hexldr_ThrowOnInvalidChecksum()
 {
     Assert.Throws <IntelHexException>(() => IntelHexParser.ParseRecord(":00000002FF"));
 }
Exemplo n.º 5
0
 public void Hexldr_ThrowOnInvalidhexChars()
 {
     Assert.Throws <IntelHexException>(() => IntelHexParser.ParseRecord(":00XX0001FF"));
 }
Exemplo n.º 6
0
 public void Hexldr_ThrowOnTooShortRecord()
 {
     Assert.Throws <IntelHexException>(() => IntelHexParser.ParseRecord(":00000001F"));
 }
Exemplo n.º 7
0
 public void Hexldr_ThrowOnEmptyRecord()
 {
     Assert.Throws <IntelHexException>(() => IntelHexParser.ParseRecord(":"));
 }
Exemplo n.º 8
0
 public void Hexldr_ThrowOnInvalidRecordMarker()
 {
     Assert.Throws <IntelHexException>(() => IntelHexParser.ParseRecord("?"));
 }
Exemplo n.º 9
0
 public void Hexldr_ThrowOnNullLine()
 {
     Assert.Throws <IntelHexException>(() => IntelHexParser.ParseRecord(null));
 }
Exemplo n.º 10
0
        public void Hexldr_EOFRecordTest()
        {
            var rec = IntelHexParser.ParseRecord(":00000001FF");

            Assert.AreEqual(IntelHexRecordType.EndOfFile, rec.RecordType, $"Not an EOF record: {rec.RecordType}");
        }
        public bool Program(string FileName, TextBox myTxtBox)
        {
            IntelHexParser myHexParse = new IntelHexParser(FileName);

            byte [] DataFromHexFile = myHexParse.PrepareHexDataToArray(50000);

            byte []       Data = new byte[64];
            StringBuilder sb   = new StringBuilder();

            for (int ctr = 0; (ctr * 64) < 0x3F90; ctr++)
            {
                try
                {
                    Array.Copy(DataFromHexFile, ctr * 64, Data, 0, 64);
                }
                catch
                {
                    return(true);
                }

                for (int m = 0; m < Data.Length; m++) // foreach should do it :)
                {
                    if (Data[m] != 0xFF)
                    {
                        sb = new StringBuilder(null);
                        WriteToProgramMemory((uint)(ctr * 64), Data, 64);
                        sb.AppendFormat("\r\nAddress 0x{0:x} \r\nData:", (ctr * 64));
                        for (int i = 0; i < 64; i++)
                        {
                            sb.AppendFormat("{0:x2} ", Data[i]);
                        }
                        myTxtBox.AppendText(sb.ToString());
                        break;
                    }
                }
            }

            //Write Config Word
            for (int ctr = 0; ctr < Data.Length; ctr++)
            {
                Data[ctr] = 0xFF;
            }

            Data[56] = DataFromHexFile[0x3FF8];
            Data[57] = DataFromHexFile[0x3FF9];

            Data[58] = DataFromHexFile[0x3FFA];
            Data[59] = DataFromHexFile[0x3FFB];

            Data[60] = DataFromHexFile[0x3FFC];
            Data[61] = DataFromHexFile[0x3FFD];

            Data[62] = DataFromHexFile[0x3FFE];
            Data[63] = DataFromHexFile[0x3FFF];


            WriteToProgramMemory(0x3FC0, Data, 64);

            sb = new StringBuilder(null);
            sb.AppendFormat("\r\nAddress 0x{0:x} \r\nData:", 0x3FC0);
            for (int i = 0; i < 64; i++)
            {
                sb.AppendFormat("{0:x2} ", Data[i]);
            }
            myTxtBox.AppendText(sb.ToString());
            return(true);
        }