forked from M-Labs/artiq
runtime: support 64-bit RTIO timestamps
This commit is contained in:
parent
f8e9f1f7ac
commit
7d8dc4ef30
@ -8,16 +8,24 @@ lt.initialize_all()
|
||||
_syscalls = {
|
||||
"rpc": "i+:i",
|
||||
"gpio_set": "ii:n",
|
||||
"rtio_set": "iii:n",
|
||||
"rtio_set": "Iii:n",
|
||||
"rtio_sync": "i:n",
|
||||
"dds_program": "ii:n",
|
||||
}
|
||||
|
||||
_chr_to_type = {
|
||||
"n": lambda: lc.Type.void(),
|
||||
"i": lambda: lc.Type.int(32),
|
||||
"I": lambda: lc.Type.int(64)
|
||||
}
|
||||
|
||||
_chr_to_value = {
|
||||
"n": lambda: ir_values.VNone(),
|
||||
"i": lambda: ir_values.VInt(),
|
||||
"I": lambda: ir_values.VInt(64)
|
||||
}
|
||||
|
||||
def _str_to_functype(s):
|
||||
_chr_to_type = {
|
||||
"n": lc.Type.void,
|
||||
"i": lc.Type.int
|
||||
}
|
||||
assert(s[-2] == ":")
|
||||
type_ret = _chr_to_type[s[-1]]()
|
||||
|
||||
@ -42,10 +50,6 @@ class LinkInterface:
|
||||
self.module.add_function(func_type, "__syscall_"+func_name)
|
||||
|
||||
def syscall(self, syscall_name, args, builder):
|
||||
_chr_to_value = {
|
||||
"n": ir_values.VNone,
|
||||
"i": ir_values.VInt
|
||||
}
|
||||
r = _chr_to_value[_syscalls[syscall_name][-1]]()
|
||||
if builder is not None:
|
||||
args = [arg.llvm_value for arg in args]
|
||||
|
@ -140,7 +140,7 @@ static void gpio_set(int channel, int value)
|
||||
leds_out_write(csr_value);
|
||||
}
|
||||
|
||||
static void rtio_set(int timestamp, int channel, int value)
|
||||
static void rtio_set(long long int timestamp, int channel, int value)
|
||||
{
|
||||
rtio_chan_sel_write(channel);
|
||||
rtio_o_timestamp_write(timestamp);
|
||||
|
Loading…
Reference in New Issue
Block a user