コード例 #1
0
ファイル: UDMA.cs プロジェクト: rte-se/emul8
 public UDMA(Machine machine)
 {
     engine = new DmaEngine(machine);
     SystemBus = machine.SystemBus;
     channels = new Channel[32];
     IRQ = new GPIO();
     Reset();
 }
コード例 #2
0
ファイル: UDMA.cs プロジェクト: AntonKrug/emul8-modded
 public UDMA(Machine machine)
 {
     engine    = new DmaEngine(machine);
     SystemBus = machine.SystemBus;
     channels  = new Channel[32];
     IRQ       = new GPIO();
     Reset();
 }
コード例 #3
0
 public STM32LDMA(Machine machine)
 {
     engine   = new DmaEngine(machine);
     channels = new Channel[8];
     for (var i = 0; i < channels.Length; i++)
     {
         channels[i] = new Channel(this, i);
     }
 }
コード例 #4
0
ファイル: STM32LDMA.cs プロジェクト: rte-se/emul8
 public STM32LDMA(Machine machine)
 {
     engine = new DmaEngine(machine);
     channels = new Channel[8];
     for(var i = 0; i < channels.Length; i++)
     {
         channels[i] = new Channel(this, i);
     }
 }
コード例 #5
0
ファイル: STM32DMA.cs プロジェクト: rte-se/emul8
 public STM32DMA(Machine machine)
 {
     streamFinished = new bool[NumberOfStreams];
     streams = new Stream[NumberOfStreams];
     for(var i = 0; i < streams.Length; i++)
     {
         streams[i] = new Stream(this, i);
     }
     this.machine = machine;
     engine = new DmaEngine(machine);
     Reset();
 }
コード例 #6
0
ファイル: STM32DMA.cs プロジェクト: tralivali1234/emul8
 public STM32DMA(Machine machine)
 {
     streamFinished = new bool[NumberOfStreams];
     streams        = new Stream[NumberOfStreams];
     for (var i = 0; i < streams.Length; i++)
     {
         streams[i] = new Stream(this, i);
     }
     this.machine = machine;
     engine       = new DmaEngine(machine);
     Reset();
 }
コード例 #7
0
ファイル: VybridDma.cs プロジェクト: rte-se/emul8
        public VybridDma(Machine mach)
        {
            machine = mach;
            engine = new DmaEngine(machine);

            channels = new Channel[32];
            for (var i = 0; i < 32; i++) 
            {
               channels[i] = new Channel(this, i);
            }

            IRQ = new GPIO();
        }
コード例 #8
0
        public VybridDma(Machine mach)
        {
            machine = mach;
            engine  = new DmaEngine(machine);

            channels = new Channel[32];
            for (var i = 0; i < 32; i++)
            {
                channels[i] = new Channel(this, i);
            }

            IRQ = new GPIO();
        }
コード例 #9
0
ファイル: TegraDma.cs プロジェクト: rte-se/emul8
        public TegraDma(Machine machine)
        {
            dmaEngine = new DmaEngine(machine);
            channels = new Channel[ChannelNo];

            var innerConnections = new Dictionary<int, IGPIO>();
            for(var i = 0; i < channels.Length; i++)
            {
                channels[i] = new Channel(this, i);
                innerConnections[i] = channels[i].IRQ;
            }

            Connections = new ReadOnlyDictionary<int, IGPIO>(innerConnections);
            Reset();
        }
コード例 #10
0
ファイル: TegraDma.cs プロジェクト: AntonKrug/emul8-modded
        public TegraDma(Machine machine)
        {
            dmaEngine = new DmaEngine(machine);
            channels  = new Channel[ChannelNo];

            var innerConnections = new Dictionary <int, IGPIO>();

            for (var i = 0; i < channels.Length; i++)
            {
                channels[i]         = new Channel(this, i);
                innerConnections[i] = channels[i].IRQ;
            }

            Connections = new ReadOnlyDictionary <int, IGPIO>(innerConnections);
            Reset();
        }
コード例 #11
0
 public TegraDmaHost1X(Machine machine)
 {
     dmaEngine = new DmaEngine(machine);
     sysbus    = machine.SystemBus;
 }
コード例 #12
0
ファイル: SunxiMMC.cs プロジェクト: bhuvanchandra/emul8
            public SunxiDMADescriptor(uint address, DmaEngine dmaEngine)
            {
                Address = address;

                byte[] descriptorData = new byte[16];
                Request getDescriptorData = new Request((long)Address, new Place(descriptorData, 0), 16, 
                    TransferType.DoubleWord, TransferType.DoubleWord);

                dmaEngine.IssueCopy(getDescriptorData);
                Status = BitConverter.ToUInt32(descriptorData, 0);
                BufferSize = BitConverter.ToUInt32(descriptorData, 4);
                BufferAddress = BitConverter.ToUInt32(descriptorData, 8);
                NextDescriptor = BitConverter.ToUInt32(descriptorData, 12);

                if(BufferSize == 0) // the driver assumes 0-sized blocks to be 64kB, which is inconsistent with the Allwinner user manual.
                {
                    BufferSize = 0x10000;
                }
            }
コード例 #13
0
ファイル: SunxiMMC.cs プロジェクト: bhuvanchandra/emul8
 public SunxiMMC(Machine machine) : base(machine)
 {
     SetupRegisters();
     IRQ = new GPIO();
     dmaEngine = new DmaEngine(machine);
 }
コード例 #14
0
ファイル: TegraDmaHost1X.cs プロジェクト: rte-se/emul8
 public TegraDmaHost1X(Machine machine)
 {
     dmaEngine = new DmaEngine(machine);
     sysbus = machine.SystemBus;
 }