Commit Graph

850 Commits

Author SHA1 Message Date
whitequark 27d2390fed Add zero-cost exception support to runtime and host. 2015-08-08 16:01:31 +03:00
whitequark ecdebc0b8a session.c: refactor. 2015-08-08 13:21:43 +03:00
whitequark d6ab567242 coredevice.comm_*: refactor. 2015-08-07 16:44:16 +03:00
Sebastien Bourdeauducq be55487d2d comm_generic: cleanup 2015-08-07 21:12:00 +08:00
whitequark 353f454a29 Add basic support for embedded functions with new compiler. 2015-08-07 11:44:49 +03:00
whitequark b5cf1e395d runtime: avoid race condition when running kernel.
Also, don't bother passing kernel name: entry point is already
recorded in DT_INIT when the kernel is linked.
2015-08-07 08:51:33 +03:00
whitequark 4a8e397a77 Fold llvmlite patches into m-labs/llvmlite repository. 2015-08-05 03:49:01 +03:00
whitequark 62fdc75d2d Integrate libdyld and libunwind.
It is currently possible to run the idle experiment, and it
can raise and catch exceptions, but exceptions are not yet
propagated across RPC boundaries.
2015-08-02 15:43:03 +03:00
Sebastien Bourdeauducq 1d34c06d79 rtio: detect collision errors 2015-07-29 19:43:35 +08:00
Sebastien Bourdeauducq 90368415a6 ttl: remove timestamp function
The general idea is that functions that work with absolute timestamps exist only in machine units versions, to help prevent floating point losses of precision. Time differences should be computed in machine units and then converted, e.g. mu_to_seconds(t2-t1).

This function would have had problems after ~50 days of running the device.
2015-07-29 11:11:16 +08:00
Robert Jördens 5f5227f01f ttl: add timestamp() 2015-07-28 16:20:05 -06:00
Robert Jördens e95b66f114 ttl: remove spurious _mu 2015-07-28 16:20:05 -06:00
Sebastien Bourdeauducq f836465585 coredevice: environment -> runtime 2015-07-15 11:20:41 +02:00
Yann Sionneau 90ba9f7bbf llvmlite: rename our package to be llvmlite_or1k to avoid collision with llvmlite package needed for numba 2015-07-14 01:01:56 +02:00
Sebastien Bourdeauducq 56fc7a484c TTLInOut: timestamp -> timestamp_mu 2015-07-13 23:21:29 +02:00
Sebastien Bourdeauducq 32d141f5ac refactor ddb/pdb/rdb 2015-07-13 22:21:32 +02:00
Sebastien Bourdeauducq 34aacd3c5f complete AD9914 support (no programmable modulus, untested) 2015-07-08 17:22:43 +02:00
Sebastien Bourdeauducq 8a33d8c868 never stop RTIO counter 2015-07-07 15:29:38 +02:00
Sebastien Bourdeauducq 58c0150822 ttl: improve clockgen doc 2015-07-05 19:07:13 +02:00
Sebastien Bourdeauducq 65ec6c28f4 ttl/clockgen: expose acc_width 2015-07-04 19:21:25 +02:00
Sebastien Bourdeauducq 753d61b38f complete support for TTL clock generator 2015-07-04 18:36:01 +02:00
Sebastien Bourdeauducq 9d6287a6a3 expose machine units to user 2015-07-01 22:22:53 +02:00
Sebastien Bourdeauducq c71fe29792 simplify unit system and use floats by default 2015-06-26 16:34:37 +02:00
Sebastien Bourdeauducq e6a4c2fb36 dds: make it easier to specify phase 2015-06-26 12:05:11 +02:00
Sebastien Bourdeauducq 87ea1433d3 dds: all working 2015-06-20 18:42:39 -06:00
Sebastien Bourdeauducq 5a9bdb2e33 DDS monitoring 2015-06-19 15:30:17 -06:00
Yann Sionneau 575dfade38 flash_storage comm: use OK/ERROR replies instead of specific FLASH_WRITE_REPLY 2015-05-29 11:10:40 +02:00
Yann Sionneau 4bf7875b87 flash_storage: refactor + unit tests + artiq_coreconfig.py CLI + doc 2015-05-27 18:06:12 +08:00
Sebastien Bourdeauducq ce4b5739ed runtime: reset all DDSes upon startup 2015-05-09 17:12:38 +08:00
Sebastien Bourdeauducq 1ceb06fb16 dds: use context manager for batches 2015-05-09 14:47:40 +08:00
Sebastien Bourdeauducq 5c08423b29 dds: support batches in driver 2015-05-08 22:17:06 +08:00
Sebastien Bourdeauducq 55f2fef576 runtime: support DDS batches 2015-05-08 16:51:54 +08:00
Sebastien Bourdeauducq 53c6339307 runtime: break ttl-specific functions from rtio 2015-05-08 16:20:12 +08:00
Sebastien Bourdeauducq a36c51eb83 DDS over RTIO (batch mode not supported yet) 2015-05-08 14:44:39 +08:00
Sebastien Bourdeauducq 2adf9d91df recover_underflow -> break_realtime 2015-05-03 20:45:28 +08:00
Sebastien Bourdeauducq 4048568d8e support kernel handover with coherent time 2015-05-02 23:41:49 +08:00
Sebastien Bourdeauducq 65b4b7bb12 coredevice: rename rtio to ttl, integrated in+out driver, loopback on the same pin in tests 2015-05-02 10:35:21 +08:00
Sebastien Bourdeauducq 967145f2dc watchdog support on core device (broken by bug similar to issue #19) 2015-04-29 12:58:37 +08:00
Sebastien Bourdeauducq e5f7fcc339 coredevice/comm_tcp: raise exception on connection closed 2015-04-29 11:18:51 +08:00
Sebastien Bourdeauducq 9b62e7e77b runtime,coredevice: support session reset for serial 2015-04-28 02:11:58 +08:00
Sebastien Bourdeauducq 8a19766278 runtime,comm_generic: improve and fix list encoding 2015-04-28 01:31:55 +08:00
Sebastien Bourdeauducq 934a6b0495 runtime,coredevice: Ethernet support (buggy) 2015-04-23 23:22:40 +08:00
Sebastien Bourdeauducq 18106cc014 comm: refactor to support lwip event model 2015-04-22 01:31:31 +08:00
Sebastien Bourdeauducq 9f52277245 coredevice/core: set default for ref_period 2015-04-22 01:12:01 +08:00
Sebastien Bourdeauducq 0c1d256fef comm_dummy: remove unneeded import 2015-04-19 11:41:20 +08:00
Sebastien Bourdeauducq c98e08fe36 fix transforms unittest 2015-04-19 11:40:49 +08:00
Sebastien Bourdeauducq 546996f896 coredevice,runtime: put ref_period into the ddb 2015-04-16 15:15:38 +08:00
Sebastien Bourdeauducq ecf6b29279 coredevice/rtio: minor docstring cleanup 2015-04-15 13:53:00 +08:00
Sebastien Bourdeauducq 4c10182c9f rtio: refactor, use rtlink 2015-04-14 19:44:45 +08:00
Sebastien Bourdeauducq 88e0aae16d coredevice: add comm_tcp 2015-04-10 01:22:03 +08:00
Sebastien Bourdeauducq f427041ae9 coredevice/comm_serial: minor cleanup 2015-04-10 01:21:47 +08:00
Sebastien Bourdeauducq cb2596bd81 coredevice/comm: split protocol to allow reuse for Ethernet 2015-04-10 00:59:35 +08:00
Sebastien Bourdeauducq fda4ee1a83 coredevice: add compile method 2015-04-07 15:40:25 +08:00
Sebastien Bourdeauducq 72f9f7ed79 runtime: implement mailbox, use it for kernel startup, exceptions and termination 2015-04-05 22:07:34 +08:00
Sebastien Bourdeauducq 833178462d remove gpio driver 2015-04-04 22:06:54 +08:00
Sebastien Bourdeauducq 3108ffeef6 coredevice/comm_serial: use lazy formatting in logging 2015-03-27 18:54:19 +01:00
Robert Jördens f4cb97b709 comm_serial: fix baud rate change logging 2015-03-25 17:57:53 -06:00
Sebastien Bourdeauducq 7a1d60ee15 coredevice,runtime,language: add parameters to runtime exceptions, include information with RTIO errors 2015-03-13 14:55:18 +01:00
Sebastien Bourdeauducq 84732a469d coredevice/gpio: fix indentation 2015-03-13 14:31:50 +01:00
Sebastien Bourdeauducq 0f007cb1a7 language/db: remove implicit_core 2015-03-08 11:37:53 +01:00
Sebastien Bourdeauducq e10390d142 coredevice: add get_rtio_time 2015-02-18 09:56:30 -07:00
Sebastien Bourdeauducq 37feaf1cea comm_serial: use serial.serial_for_url 2015-01-30 11:47:20 +08:00
Sebastien Bourdeauducq 891c0d12f2 refactor device/parameter management, immediate parameter updates, start introducing results 2015-01-12 18:51:23 +08:00
Sebastien Bourdeauducq f7232fd3d1 support exceptions raised by RPCs 2014-12-20 21:33:22 +08:00
Yann Sionneau e4897132ad comm_serial.py: Use cross-platform pyserial 2014-12-20 10:19:06 +08:00
Sebastien Bourdeauducq 0d10ae7580 rpc: support all data types as parameters 2014-12-19 12:46:24 +08:00
Sebastien Bourdeauducq 059608d1fd dds: fix phase modes 2014-12-09 13:50:33 +08:00
Sebastien Bourdeauducq cb48dba29c coredevice: fix external clock ref_period computation 2014-12-09 11:22:55 +08:00
Sebastien Bourdeauducq bfe980d458 py2llvm: distinguish between llvmlite Module and ModuleRef 2014-12-06 15:14:39 +08:00
Sebastien Bourdeauducq 159f632a65 switch to llvmlite 2014-12-05 17:05:43 +08:00
Sebastien Bourdeauducq 2a95d27770 device and parameter database 2014-12-03 18:20:30 +08:00
Sebastien Bourdeauducq a41009f92a coredevice/comm_dummy: support clock-switching functions 2014-12-03 18:16:18 +08:00
Sebastien Bourdeauducq 2a843ea436 language: replace AutoContext 'parameter' string with abstract attributes
This allows specifying default values for parameters, and other data.
2014-12-02 17:19:05 +08:00
Sebastien Bourdeauducq 83d3b97b23 coredevice/comm_serial: give up on garbage received after baudrate change 2014-12-02 16:04:41 +08:00
Sebastien Bourdeauducq 649fedd656 coredevice/core: fix recover_underflow 2014-12-02 15:31:09 +08:00
Sebastien Bourdeauducq fc690ead75 runtime: support clock switching 2014-12-02 14:06:32 +08:00
Sebastien Bourdeauducq 94218f785e comm_serial: cleanup 2014-12-02 11:09:02 +08:00
Yann Sionneau 20adb57140 comm_serial: allow to use dynamic baudrate 2014-12-02 10:42:14 +08:00
Sebastien Bourdeauducq 57d633f48e rtio: remove unnecessary attributes 2014-12-01 17:47:24 +08:00
Sebastien Bourdeauducq cd587e4f12 rtio: do housekeeping in gateware 2014-12-01 17:32:36 +08:00
Sebastien Bourdeauducq d50dbc0e73 coredevice/runtime_exceptions: update RTIO exception behaviour doc 2014-12-01 13:57:25 +08:00
Sebastien Bourdeauducq 901073acf3 asynchronous RTIO 2014-11-30 00:13:54 +08:00
Sebastien Bourdeauducq 914bdd95d5 runtime: use booleans in syscalls 2014-11-20 12:49:09 -08:00
Sebastien Bourdeauducq dfd779c7c5 core: add underflow recovery function 2014-11-20 12:38:52 -08:00
Sebastien Bourdeauducq 1780759327 dds: phase control (mostly untested) 2014-11-20 12:32:56 -08:00
Sebastien Bourdeauducq b736c30cdb coredevice/core: core_com -> comm 2014-11-19 17:44:06 -08:00
Sebastien Bourdeauducq 75df0ae94a coredevice/gpio: replace set() with on()/off() to make API consistent 2014-11-19 12:33:33 -08:00
Sebastien Bourdeauducq abae5c6728 coredevice/dds: round FTW instead of flooring 2014-11-17 18:36:00 -07:00
Sebastien Bourdeauducq e02ca0b404 transforms: quantize time before interleaving 2014-11-15 15:26:35 -07:00
Sebastien Bourdeauducq b163c9f7ea test: add optimization transform stack 2014-11-03 18:44:30 +08:00
Sebastien Bourdeauducq 9b93b0cedf unparse: string-based API 2014-11-03 18:14:33 +08:00
Sebastien Bourdeauducq f54a2f93d2 remove kernel_attr (inline transform is now smart enough to autodetect) 2014-11-03 14:38:04 +08:00
Sebastien Bourdeauducq 217fe8251b coredevice/core: optimize further 2014-10-31 23:44:07 +08:00
Sebastien Bourdeauducq 1e8c9837ac transforms: add dead code removal 2014-10-29 20:23:58 +08:00
Sebastien Bourdeauducq 70cc0d1766 transform: add intermediate assignment removal 2014-10-29 17:09:45 +08:00
Sebastien Bourdeauducq b96249339d doc: more precisions on RTIO error handling 2014-10-21 23:56:12 +08:00
Sebastien Bourdeauducq 97f9c9c34f doc: add precisions on RTIO error handling 2014-10-21 23:46:14 +08:00
Sebastien Bourdeauducq 5105b88302 rtio: raise input overflow exception 2014-10-21 23:41:02 +08:00
Sebastien Bourdeauducq 9a14081031 rtio: add pileup count reporting 2014-10-21 23:14:01 +08:00
Sebastien Bourdeauducq 61a50ee53c reorganize for devices/controllers 2014-10-19 23:51:49 +08:00