示例#1
0
            /// <summary>
            /// Adds a series of data byte to the memory chunks list as decoded from an IHex32 data record.
            /// </summary>
            /// <remarks>
            /// The current implementation assumes that each IHex32 data record loads unique data block (no overlap).
            /// </remarks>
            /// <param name="address">The address from the decoded IHex32 record.</param>
            /// <param name="data">The binary bytes contained in the IHex32 record.</param>
            public void AddData(Address address, byte[] data)
            {
                if (data == null || data.Length < 1)
                {
                    return;
                }

                if (currAddr == null)
                {
                    currAddr     = address;
                    currMemChunk = new MemoryChunk(currAddr);
                    memChunks.Add(currAddr, currMemChunk);
                }
                else
                {
                    currAddr = address;
                    if (nextAddr != currAddr)
                    {
                        currMemChunk = GetPredChunk(currAddr);
                        if (currMemChunk == null)
                        {
                            currMemChunk = new MemoryChunk(currAddr);
                            memChunks.Add(currAddr, currMemChunk);
                        }
                    }
                }

                currMemChunk !.Datum.AddRange(data);
                nextAddr = currAddr + data.Length;
            }