예제 #1
0
 public BlackButtons(IOPorts ioPorts, InteruptController interuptController, ARMSim.Plugins.UIControls.BlackButtons blackButtons)
 {
     mIOPorts              = ioPorts;
     mInteruptController   = interuptController;
     mBlackButtons         = blackButtons;
     mBlackButtons.Notify += ButtonPressPortNotify;
 }
예제 #2
0
        public WatchDogTimer(IARMHost ihost, InteruptController interuptController)
        {
            mIhost = ihost;
            _interuptController = interuptController;

            //request to be notified when our area of the memory map is written or read
            mIhost.RequestMemoryBlock(0x01d30000, 0xfffffff0, onMemoryAccessRead, onMemoryAccessWrite);
            mIhost.Cycles += onClock;
            this.Restart();
        }
예제 #3
0
        public BlueButtons(IARMHost ihost, IOPorts ioPorts, InteruptController interuptController, ARMSim.Plugins.UIControls.BlueButtons blueButtons)
        {
            mIhost               = ihost;
            mIOPorts             = ioPorts;
            mInteruptController  = interuptController;
            mBlueButtons         = blueButtons;
            mBlueButtons.Notify += ButtonPressPortNotify;

            //request to be notified when our area of the memory map is written or read
            mIhost.RequestMemoryBlock(keyboard_base, 0xffffff00, onMemoryAccessRead, onMemoryAccessWrite);
        }
예제 #4
0
        public Uarts(IARMHost ihost, InteruptController interuptController)
        {
            mIhost = ihost;
            mInteruptController = interuptController;
            mIhost.RequestMemoryBlock(mLowerAddress, 0xffff0000, onMemoryAccessRead, onMemoryAccessWrite);

            mUart0.Create("COM1");
            mUart1.Create("COM2");

            this.Restart();
        }
        }//init

        /// <summary>
        /// The onLoad function is called after all the plugins have been loaded and their
        /// init methods called.
        /// </summary>
        private void onLoad(object sender, EventArgs e)
        {
            ARMSim.Plugins.UIControls.EmbestBoard embestBoardControl         = new ARMSim.Plugins.UIControls.EmbestBoard();
            InterruptControllerDisplay            interruptControllerDisplay = new InterruptControllerDisplay(mInteruptController);

            mInteruptController = new InteruptController(mIHost, interruptControllerDisplay);
            mWatchDogTimer      = new WatchDogTimer(mIHost, mInteruptController);
            mPWMTimer           = new PWMTimer(mIHost, mInteruptController);
            mIOPorts            = new IOPorts(mIHost);
            mLeds                = new Leds(mIHost, mIOPorts, embestBoardControl.Leds);
            mBlackButtons        = new BlackButtons(mIOPorts, mInteruptController, embestBoardControl.BlackButtons);
            mBlueButtons         = new BlueButtons(mIHost, mIOPorts, mInteruptController, embestBoardControl.BlueButtons);
            mLcdDisplay          = new LcdDisplay(mIHost, embestBoardControl.Lcd);
            mEightSegmentDisplay = new EightSegmentDisplay(mIHost, embestBoardControl.EightSegmentDisplay);
            mUarts               = new Uarts(mIHost, mInteruptController);

            mIHost.RequestPanel(this.PluginName).Controls.Add(embestBoardControl);
            mIHost.RequestPanel("InterruptControllerDisplay").Controls.Add(interruptControllerDisplay);

            mIHost.Restart += onRestart;
        }//onLoad
예제 #6
0
 public InterruptControllerDisplay(InteruptController interuptController)
 {
     this.InteruptController = interuptController;
     InitializeComponent();
     this.init();
 }