Exemplo n.º 1
0
        public void PIC16arch_WrongPICMode()
        {
            var picModel = PICProcessorModel.GetModel("PICUnknown");

            Assert.IsNull(picModel);
            picModel = PICProcessorModel.GetModel("");
            Assert.IsNotNull(picModel);
            Assert.AreEqual(PICProcessorModel.DefaultPICName, picModel.PICName);
        }
Exemplo n.º 2
0
        public void PIC16MemoryMapper_EnhancedV1Tests()
        {
            PICProcessorModel.GetModel(PIC16FullFeaturedName).CreateMemoryDescriptor();
            Assert.AreEqual(PICExecMode.Traditional, PICMemoryDescriptor.ExecMode);
            Assert.AreEqual(InstructionSetID.PIC16_FULLFEATURED, PICMemoryDescriptor.InstructionSetID);

            CheckProgMap();
            CheckDataMap();
        }
Exemplo n.º 3
0
        public void PIC16MemoryMapper_TraditionalTests()
        {
            PICProcessorModel.GetModel(PIC16BasicName).CreateMemoryDescriptor();
            Assert.AreEqual(PICExecMode.Traditional, PICMemoryDescriptor.ExecMode);
            Assert.AreEqual(InstructionSetID.PIC16, PICMemoryDescriptor.InstructionSetID);

            CheckProgMap();
            CheckDataMap();
        }
Exemplo n.º 4
0
 public void PIC16arch_GetEnhancedCoreRegisterTests()
 {
     PICProcessorModel.GetModel(PIC16EnhancedName).CreateRegisters();
     Assert.AreSame(PICRegisters.WREG, PICRegisters.GetRegister("WREG"));
     Assert.AreSame(PICRegisters.STATUS, PICRegisters.GetRegister("STATUS"));
     Assert.AreSame(PICRegisters.PCL, PICRegisters.GetRegister("PCL"));
     Assert.AreSame(PICRegisters.BSR, PICRegisters.GetRegister("BSR"));
     Assert.AreSame(PIC16EnhancedRegisters.INDF0, PICRegisters.GetRegister("INDF0"));
 }
Exemplo n.º 5
0
 public void PIC16arch_GetBasicCoreRegisterTests()
 {
     PICProcessorModel.GetModel(PIC16BasicName).CreateRegisters();
     Assert.AreSame(PICRegisters.WREG, PICRegisters.GetRegister("WREG"));
     Assert.AreSame(PICRegisters.STATUS, PICRegisters.GetRegister("STATUS"));
     Assert.AreSame(PICRegisters.PCL, PICRegisters.GetRegister("PCL"));
     Assert.AreSame(PIC16BasicRegisters.INDF, PICRegisters.GetRegister("INDF"));
     Assert.AreSame(PIC16BasicRegisters.RP0, PICRegisters.GetBitField("RP0"));
     Assert.AreSame(PIC16BasicRegisters.RP1, PICRegisters.GetBitField("RP1"));
 }
Exemplo n.º 6
0
        public void PIC16arch_FailGetRegisterFromNameTests()
        {
            PICProcessorModel.GetModel(PIC16BasicName).CreateRegisters();
            Assert.Throws <ArgumentException>(() => PICRegisters.GetRegister("invalidregistername"));

            PICProcessorModel.GetModel(PIC16EnhancedName).CreateRegisters();
            Assert.Throws <ArgumentException>(() => PICRegisters.GetRegister("invalidregistername"));

            PICProcessorModel.GetModel(PIC16FullFeaturedName).CreateRegisters();
            Assert.Throws <ArgumentException>(() => PICRegisters.GetRegister("invalidregistername"));
        }
Exemplo n.º 7
0
        public void PIC16arch_FailGetRegisterFromNameTests()
        {
            PICProcessorModel.GetModel(PIC16BasicName).CreateRegisters();
            Assert.IsNull(PICRegisters.GetRegister("invalidregistername"));

            PICProcessorModel.GetModel(PIC16EnhancedName).CreateRegisters();
            Assert.IsNull(PICRegisters.GetRegister("invalidregistername"));

            PICProcessorModel.GetModel(PIC16FullFeaturedName).CreateRegisters();
            Assert.IsNull(PICRegisters.GetRegister("invalidregistername"));
        }
Exemplo n.º 8
0
        public void PIC18EnhdMemoryMapper_TraditionalTests()
        {
            PICProcessorModel.GetModel(PIC18EnhancedName).CreateMemoryDescriptor();
            Assert.AreEqual(PICExecMode.Traditional, PICMemoryDescriptor.ExecMode);
            Assert.AreEqual(InstructionSetID.PIC18_ENHANCED, PICMemoryDescriptor.InstructionSetID);

            CheckProgMap();
            CheckDataMap();
            Assert.IsNotNull(PICMemoryDescriptor.GetDataRegionByName("accessram"), "Missing 'accessram' data memory region for PIC18.");
            Assert.IsNotNull(PICMemoryDescriptor.GetDataRegionByName("accesssfr"), "Missing 'accesssfr' data memory region for PIC18.");
            Assert.IsNull(PICMemoryDescriptor.GetDataRegionByName("gpre"), "Unexpected 'gpre' data memory region for PIC18 traditional.");
        }
Exemplo n.º 9
0
        public void PIC18ExtdMemoryMapper_ExtendedTests()
        {
            PICProcessorModel.GetModel(PIC18EggName).CreateMemoryDescriptor();
            PICMemoryDescriptor.ExecMode = PICExecMode.Extended;
            Assert.AreEqual(PICExecMode.Extended, PICMemoryDescriptor.ExecMode);
            Assert.AreEqual(InstructionSetID.PIC18_EXTENDED, PICMemoryDescriptor.InstructionSetID);

            CheckProgMap();
            CheckDataMap();
            Assert.IsNotNull(PICMemoryDescriptor.GetDataRegionByName("gpre"), "Missing 'gpre' data memory region for PIC18.");
            Assert.IsNotNull(PICMemoryDescriptor.GetDataRegionByName("accesssfr"), "Missing 'accesssfr' data memory region for PIC18.");
        }
Exemplo n.º 10
0
 public void PIC16arch_GetBasicRegisterFromNameTests()
 {
     PICProcessorModel.GetModel(PIC16BasicName).CreateRegisters();
     Assert.AreEqual("STATUS", PICRegisters.GetRegister("STATUS").Name);
     Assert.AreEqual("FSR", PICRegisters.GetRegister("FSR").Name);
     Assert.AreEqual("INDF", PICRegisters.GetRegister("INDF").Name);
     Assert.AreEqual("INTCON", PICRegisters.GetRegister("INTCON").Name);
     Assert.AreEqual("WREG", PICRegisters.GetRegister("WREG").Name);
     Assert.AreEqual("PCL", PICRegisters.GetRegister("PCL").Name);
     Assert.AreEqual("PCLATH", PICRegisters.GetRegister("PCLATH").Name);
     Assert.AreEqual("RP", PICRegisters.GetBitField("RP").Name);
 }
Exemplo n.º 11
0
 public void PIC16Registers_Full_All_Tests()
 {
     foreach (var pic in GetSelectedPIC(InstructionSetID.PIC16_FULLFEATURED))
     {
         try
         {
             PICProcessorModel.GetModel(pic.PICName).CreateRegisters();
             Assert.IsNotNull(PICRegisters.STATUS, $"Null status register for '{pic.PICName}'");
             Assert.IsNotNull(PICRegisters.BSR, $"Null status register for '{pic.PICName}'");
         }
         catch (Exception ex)
         {
             throw new InvalidOperationException($"'{pic.PICName}': wrong registers creation.", ex);
         }
     }
 }
Exemplo n.º 12
0
 public void PIC16arch_GetFullFeaturedRegisterFromNameTests()
 {
     PICProcessorModel.GetModel(PIC16FullFeaturedName).CreateRegisters();
     Assert.AreEqual("STATUS", PICRegisters.GetRegister("STATUS").Name);
     Assert.AreEqual("FSR1L", PICRegisters.GetRegister("FSR1L").Name);
     Assert.AreEqual("FSR1H", PICRegisters.GetRegister("FSR1H").Name);
     Assert.AreEqual("FSR0L", PICRegisters.GetRegister("FSR0L").Name);
     Assert.AreEqual("FSR0H", PICRegisters.GetRegister("FSR0H").Name);
     Assert.AreEqual("FSR0", PICRegisters.GetRegister("FSR0").Name);
     Assert.AreEqual("FSR1", PICRegisters.GetRegister("FSR1").Name);
     Assert.AreEqual("INDF0", PICRegisters.GetRegister("INDF0").Name);
     Assert.AreEqual("INDF1", PICRegisters.GetRegister("INDF1").Name);
     Assert.AreEqual("BSR", PICRegisters.GetRegister("BSR").Name);
     Assert.AreEqual("WREG", PICRegisters.GetRegister("WREG").Name);
     Assert.AreEqual("PCL", PICRegisters.GetRegister("PCL").Name);
     Assert.AreEqual("PCLATH", PICRegisters.GetRegister("PCLATH").Name);
 }
Exemplo n.º 13
0
        public void PIC16arch_CheckEnhancedPICFromDBTests()
        {
            var picModel = PICProcessorModel.GetModel(PIC16EnhancedName);

            Assert.NotNull(picModel);
            Assert.NotNull(picModel.PICDescriptor);
            var pic = picModel.PICDescriptor;

            Assert.AreEqual(InstructionSetID.PIC16_ENHANCED, pic.GetInstructionSetID);
            Assert.AreEqual(PIC16EnhancedName, pic.PICName);

            var arch = GetArch(PIC16EnhancedName);

            Assert.NotNull(arch.PICDescriptor);
            Assert.AreEqual(picModel.PICDescriptor, arch.PICDescriptor);
            Assert.IsTrue(PICMemoryDescriptor.IsValid);
        }
Exemplo n.º 14
0
        public void PIC16DevConf_Tests()
        {
            PICProcessorModel.GetModel(PIC16BasicName).CreateMemoryDescriptor();
            var dcr = PICMemoryDescriptor.GetDCR("CONFIG");

            Assert.IsNotNull(dcr);
            Assert.AreEqual(Address.Ptr32(0x2007), dcr.Address);

            var s = PICMemoryDescriptor.RenderDeviceConfigRegister(dcr, 0xFFFF);

            Assert.AreEqual("FOSC=EXTRC, WDTE=ON, PWRTE=OFF, CP=OFF", s);

            var dcf = PICMemoryDescriptor.GetDCRField("WDTE");

            Assert.AreEqual("WDTE", dcf.Name);
            Assert.IsNotNull(dcf);
            Assert.AreSame(dcr.Address, dcf.RegAddress);
        }
Exemplo n.º 15
0
        public void PIC16EnhDevConf_Tests()
        {
            PICProcessorModel.GetModel(PIC16EnhancedName).CreateMemoryDescriptor();
            var dcr = PICMemoryDescriptor.GetDCR("CONFIG1");

            Assert.IsNotNull(dcr);
            Assert.AreEqual(Address.Ptr32(0x8007), dcr.Address);

            var s = PICMemoryDescriptor.RenderDeviceConfigRegister(dcr, 0xFFFF);

            Assert.AreEqual("FOSC=ECH, WDTE=ON, PWRTE=OFF, MCLRE=ON, CP=OFF, BOREN=ON, CLKOUTEN=OFF, IESO=ON, FCMEN=ON", s);

            var dcf = PICMemoryDescriptor.GetDCRField("WDTE");

            Assert.AreEqual("WDTE", dcf.Name);
            Assert.IsNotNull(dcf);
            Assert.AreSame(dcr.Address, dcf.RegAddress);
        }
Exemplo n.º 16
0
        public void PIC16FullDevConf_Tests()
        {
            PICProcessorModel.GetModel(PIC16FullFeaturedName).CreateMemoryDescriptor();
            var dcr = PICMemoryDescriptor.GetDCR("CONFIG4");

            Assert.IsNotNull(dcr);
            Assert.AreEqual(Address.Ptr32(0x800A), dcr.Address);

            var s = PICMemoryDescriptor.RenderDeviceConfigRegister(dcr, 0xFFFF);

            Assert.AreEqual("BBSIZE=BB512, BBEN=OFF, SAFEN=OFF, WRTAPP=OFF, WRTB=OFF, WRTC=OFF, WRTSAF=OFF, LVP=ON", s);

            var dcf = PICMemoryDescriptor.GetDCRField("WDTE");

            Assert.IsNotNull(dcf);
            Assert.AreEqual("WDTE", dcf.Name);
            Assert.AreEqual(Address.Ptr32(0x8009), dcf.RegAddress);
            Assert.AreEqual(5, dcf.BitPos);
            Assert.AreEqual(2, dcf.BitWidth);
        }
Exemplo n.º 17
0
        public void PIC18EggDevConf_Tests()
        {
            PICProcessorModel.GetModel(PIC18EggName).CreateMemoryDescriptor();
            var dcr = PICMemoryDescriptor.GetDCR("CONFIG2L");

            Assert.IsNotNull(dcr);
            Assert.AreEqual(Address.Ptr32(0x300002), dcr.Address);

            var s = PICMemoryDescriptor.RenderDeviceConfigRegister(dcr, 0xFF);

            Assert.AreEqual("PWRT=OFF, BOR=BOHW, BORV=3", s);

            var dcf = PICMemoryDescriptor.GetDCRField("WDT");

            Assert.IsNotNull(dcf);
            Assert.AreEqual("WDT", dcf.Name);
            Assert.AreEqual(Address.Ptr32(0x300003), dcf.RegAddress);
            Assert.AreEqual(0, dcf.BitPos);
            Assert.AreEqual(1, dcf.BitWidth);

            dcf = PICMemoryDescriptor.GetDCRField("XINST");
            Assert.IsNotNull(dcf);
        }
Exemplo n.º 18
0
        public void PIC18EnhdDevConf_Tests()
        {
            PICProcessorModel.GetModel(PIC18EnhancedName).CreateMemoryDescriptor();
            var dcr = PICMemoryDescriptor.GetDCR("CONFIG2L");

            Assert.IsNotNull(dcr);
            Assert.AreEqual(Address.Ptr32(0x300002), dcr.Address);

            var s = PICMemoryDescriptor.RenderDeviceConfigRegister(dcr, 0xFF);

            Assert.AreEqual("MCLRE=EXTMCLR, PWRTS=PWRT_OFF, MVECEN=ON, IVT1WAY=ON, LPBOREN=OFF, BOREN=SBORDIS", s);

            var dcf = PICMemoryDescriptor.GetDCRField("WDTE");

            Assert.IsNotNull(dcf);
            Assert.AreEqual("WDTE", dcf.Name);
            Assert.AreEqual(Address.Ptr32(0x300004), dcf.RegAddress);
            Assert.AreEqual(5, dcf.BitPos);
            Assert.AreEqual(2, dcf.BitWidth);

            dcf = PICMemoryDescriptor.GetDCRField("XINST");
            Assert.IsNotNull(dcf);
        }
Exemplo n.º 19
0
        public void PIC18DevConf_Tests()
        {
            PICProcessorModel.GetModel(PIC18LegacyName).CreateMemoryDescriptor();
            var dcr = PICMemoryDescriptor.GetDCR("CONFIG1H");

            Assert.IsNotNull(dcr);
            Assert.AreEqual(Address.Ptr32(0x300001), dcr.Address);

            var s = PICMemoryDescriptor.RenderDeviceConfigRegister(dcr, 0xFF);

            Assert.AreEqual("OSC=RC, FSCM=ON, IESO=ON", s);

            var dcf = PICMemoryDescriptor.GetDCRField("WDT");

            Assert.IsNotNull(dcf);
            Assert.AreEqual("WDT", dcf.Name);
            Assert.AreEqual(Address.Ptr32(0x300003), dcf.RegAddress);
            Assert.AreEqual(0, dcf.BitPos);
            Assert.AreEqual(1, dcf.BitWidth);

            dcf = PICMemoryDescriptor.GetDCRField("XINST");
            Assert.IsNull(dcf);
        }
Exemplo n.º 20
0
        public void PIC18arch_CheckArchEggFromDBTests()
        {
            var picModel = PICProcessorModel.GetModel(PIC18EggName);

            Assert.NotNull(picModel);
            Assert.NotNull(picModel.PICDescriptor);
            var pic = picModel.PICDescriptor;

            Assert.AreEqual(InstructionSetID.PIC18_EXTENDED, pic.GetInstructionSetID);
            Assert.AreEqual(PIC18EggName, pic.PICName);

            var arch = GetArch(PIC18EggName);

            Assert.NotNull(arch.PICDescriptor);
            Assert.AreEqual(picModel.PICDescriptor, arch.PICDescriptor);
            Assert.IsTrue(PICMemoryDescriptor.IsValid);
            Assert.AreEqual(PICExecMode.Traditional, PICMemoryDescriptor.ExecMode);

            PICMemoryDescriptor.ExecMode = PICExecMode.Extended;
            Assert.AreEqual(PICExecMode.Extended, PICMemoryDescriptor.ExecMode);
            Assert.NotNull(arch.PICDescriptor);
            Assert.IsTrue(PICMemoryDescriptor.IsValid);
        }
Exemplo n.º 21
0
 /// <summary>
 /// Default constructor.
 /// </summary>
 public PIC16Basic_RegistersTests()
 {
     PICProcessorModel.GetModel(PIC16BasicName).CreateRegisters();
 }
Exemplo n.º 22
0
 /// <summary>
 /// Default constructor.
 /// </summary>
 public PIC16Full_RegistersTests()
 {
     PICProcessorModel.GetModel(PIC16FullFeaturedName).CreateRegisters();
 }
Exemplo n.º 23
0
 /// <summary>
 /// Default constructor.
 /// </summary>
 public PIC16Enh_RegistersTests()
 {
     PICProcessorModel.GetModel(PIC16EnhancedName).CreateRegisters();
 }