예제 #1
0
        public Func <List <UInt32> > reg_read_repeat(UInt16 num_repeats, REG_APnDP_A3_A2 reg_id, byte dap_index = 0, bool now = true)
        {
            //Debug.Assert(num_repeats is six.integer_types);
            Debug.Assert(Enum.IsDefined(typeof(REG_APnDP_A3_A2), reg_id));
            //Debug.Assert(dap_index is six.integer_types);
            //Debug.Assert(now is @bool);
            EDapTransferRequestByte request = DebugUnitV2_0_0.DapReadTransferRequestByte(reg_id);
            var transfer = this._write(dap_index, num_repeats, request, null);

            Debug.Assert(transfer != null);
            List <uint> reg_read_repeat_cb()
            {
                List <UInt32> res = transfer.get_result();

                Debug.Assert(res.Count == num_repeats);
                return(res);
            }

            if (now)
            {
                List <UInt32> result = reg_read_repeat_cb();
                return(new Func <List <UInt32> >(() => result));
            }
            else
            {
                return(new Func <List <UInt32> >(() => reg_read_repeat_cb()));
            }
        }
예제 #2
0
        public Func <UInt32> read_reg(REG_APnDP_A3_A2 reg_id, byte dap_index = 0, bool now = true)
        {
            Debug.Assert(Enum.IsDefined(typeof(REG_APnDP_A3_A2), reg_id));
            EDapTransferRequestByte request = DebugUnitV2_0_0.DapReadTransferRequestByte(reg_id);
            var transfer = this._write(dap_index, 1, request, null);

            Debug.Assert(transfer != null);
            uint read_reg_cb()
            {
                List <UInt32> res = transfer.get_result();

                Debug.Assert(res.Count == 1);
                return(res[0]);
            }

            if (now)
            {
                UInt32 result = read_reg_cb();
                return(new Func <UInt32>(() => result));
            }
            else
            {
                return(new Func <UInt32>(() => read_reg_cb()));
            }
        }