Esempio n. 1
0
        protected override void SetCoreRegisters()
        {
            base.SetCoreRegisters();

            INDF0 = GetRegister("INDF0");
            INDF1 = GetRegister("INDF1");

            FSR0L = GetRegister("FSR0L");
            FSR0H = GetRegister("FSR0H");
            FSR1L = GetRegister("FSR1L");
            FSR1H = GetRegister("FSR1H");
            FSR0  = GetRegister("FSR0");
            FSR1  = GetRegister("FSR1");

            BSR = GetRegister("BSR");

            AddIndirectParents(true,
                               (INDF0, (FSRIndexedMode.INDF, FSR0)),
                               (INDF1, (FSRIndexedMode.INDF, FSR1))
                               );

            AddAlwaysAccessibleRegisters(true, INDF0, INDF1, PCL, STATUS, FSR0L, FSR0H, FSR1L, FSR1H, BSR, WREG, PCLATH, INTCON);

            SetRegistersValuesAtPOR();
        }
Esempio n. 2
0
        /// <summary>
        /// This method sets each of the standard "core" registers of the Basic PIC16.
        /// They are retrieved from the registers symbol table which has been previously populated by loading the PIC definition as provided by Microchip.
        /// </summary>
        /// <remarks>
        /// This permits to still get a direct reference to standard registers and keeps having some flexibility on definitions.
        /// </remarks>
        /// <exception cref="InvalidOperationException">Thrown if a register cannot be found in the symbol table.</exception>
        protected override void SetCoreRegisters()
        {
            base.SetCoreRegisters();

            RP0 = GetBitField("RP0");
            RP1 = GetBitField("RP1");

            INDF = GetRegister("INDF");
            FSR  = GetRegister("FSR");

            AddPseudoBSR();

            BSR = GetRegister("BSR");

            AddIndirectParents(true,
                               (INDF, (FSRIndexedMode.INDF, FSR))
                               );

            AddAlwaysAccessibleRegisters(true, INDF, PCL, STATUS, FSR, PCLATH, INTCON);
        }
Esempio n. 3
0
        private void AddPseudoBSR()
        {
            ISFRRegister bsr = new PseudoSFR()
            {
                Name        = "BSR",
                Description = "Pseudo-register BSR",
                NMMRID      = "0xb",
                Addr        = 0,
                MCLR        = "------00",
                POR         = "------00",
                AccessBits  = "------nn",
                BitWidth    = 8
            };

            var reg = new PICRegisterStorage(bsr, 0);

            reg.BitFields.Add(new PICRegisterBitFieldSortKey(0, 8), RP0);
            reg.BitFields.Add(new PICRegisterBitFieldSortKey(1, 8), RP1);

            AddRegister(reg);
        }