Esempio n. 1
0
        public AssemblerResult Assemble(Instruction[] program)
        {
            MemoryWord[]  data     = new MemoryWord[program.Length];
            List <string> errors   = new List <string>();
            List <string> warnings = new List <string>();

            for (int address = 0; address < program.Length; address++)
            {
                Instruction currentInstruction = program[address];
                data[address] = new MemoryWord((byte)currentInstruction.OpCode, currentInstruction.Operand);
            }
            return(new AssemblerResult(data, errors, warnings));
        }
 private void OnCommand_Program()
 {
     if (device.IsConnected)
     {
         isBusy = true;
         ClearLog();
         WriteLog("Iniciando programação da memória SRAM");
         WriteLog(string.Format("Tamanho total: {0} palavras", FpgaBoard.MEMORY_LENGTH));
         Task.Factory.StartNew(() => {
             // write each memory address to the board
             WriteLog("Espaço de programa:");
             for (int address = 0; address < program.Length; address++)
             {
                 MemoryWord word = program[address];
                 device.WaitQuery(new Device.SerialCommands.TxWriteMemory((byte)address, word.MSB, word.LSB));
                 WriteLog(string.Format("Gravando {0} no endereço {1:X2}", word, address)); // report progress
             }
         }).ContinueWith((t) => {
             WriteLog("Finalizado.");
             isBusy = false;
         });
     }
 }