Commit graph

1657 commits

Author SHA1 Message Date
Gwilym Kuiper c59f063b2b Rename crate with an _ to be consistent with the image converter 2021-08-07 16:33:17 +01:00
Gwilym Kuiper e6447cb08f Add a simple entrypoint macro 2021-08-07 16:33:17 +01:00
Corwin b1516a07ab
Merge pull request #83 from agbrs/interrupt-handler
Fancy Interrupt handler with Closures
2021-08-07 15:41:48 +01:00
Corwin Kuiper ff51341679 print in interrupt 2021-08-07 14:16:41 +01:00
Corwin Kuiper 477b0465fb add docs for vblank interrupt 2021-08-07 14:14:06 +01:00
Corwin Kuiper fa250cee60 remove allow warning 2021-08-07 14:14:06 +01:00
Corwin Kuiper b559b0eb54 add some docs 2021-08-07 14:14:06 +01:00
Corwin Kuiper c60eaaaff0 doesn't need to be public 2021-08-07 14:14:06 +01:00
Corwin Kuiper 5093884612 move enable and disable to impl 2021-08-07 14:14:06 +01:00
Corwin Kuiper 476b030b41 rename wait for vblank functions 2021-08-07 14:14:06 +01:00
Corwin Kuiper 99f992353a fix wave example 2021-08-07 14:14:06 +01:00
Corwin Kuiper da6ff40a32 add docs 2021-08-07 14:14:06 +01:00
Corwin Kuiper 1b971b8993 add lock with key 2021-08-07 14:14:06 +01:00
Corwin Kuiper 2e670c5d4e template consistency 2021-08-07 14:14:06 +01:00
Corwin Kuiper 00a5b2487c change to using extern in linker 2021-08-07 14:14:06 +01:00
Corwin Kuiper 013522f642 setting lto to thin works? 2021-08-07 14:14:06 +01:00
Corwin Kuiper 4467d0cf18 fix incorrect label from rebase 2021-08-07 14:14:06 +01:00
Corwin Kuiper 3b26c0b262 acknowledge requests after handling them 2021-08-07 14:14:06 +01:00
Corwin Kuiper 7b46bc9703 change name to "get" 2021-08-07 14:14:04 +01:00
Corwin Kuiper 37c29b7ec3 should enable interrupts by writing a 1 2021-08-07 14:13:23 +01:00
Corwin Kuiper 47f8ee5b70 satisfy linter 2021-08-07 14:13:20 +01:00
Corwin Kuiper f8fb6ba7b4 change implementation of vblank to use new interrupt handler
also fixes all examples
2021-08-07 14:12:00 +01:00
Corwin Kuiper 7b05da4783 change name of interrupt handler
it is no longer simple
2021-08-07 14:12:00 +01:00
Corwin Kuiper 007d4d3ff8 handler does not need to be public to be exposed 2021-08-07 14:12:00 +01:00
Corwin Kuiper f1a2b76d28 arm is callee save 2021-08-07 14:12:00 +01:00
Corwin Kuiper e22564a29c disable interrupts during handler 2021-08-07 14:12:00 +01:00
Corwin Kuiper 9bab2a75d0 add macro for much easier interrupt handler adding 2021-08-07 14:12:00 +01:00
Corwin Kuiper 8b8b2b17a2 change to using iter 2021-08-07 14:12:00 +01:00
Corwin Kuiper 1ac33bfbc8 put interrupt handler in iwram, 32 bit bus 2021-08-07 14:12:00 +01:00
Corwin Kuiper bd1f5f6a5a store gbatek recommended registers 2021-08-07 14:12:00 +01:00
Corwin Kuiper ac5fd06106 add test for length of interrupt table 2021-08-07 14:12:00 +01:00
Corwin Kuiper d607f892e3 change to array for efficient lookup table 2021-08-07 14:12:00 +01:00
Corwin Kuiper a959e8e06b don't use register 4 2021-08-07 14:12:00 +01:00
Corwin Kuiper 47b02d29cf correct which way round locked and unlocked is 2021-08-07 14:12:00 +01:00
Corwin Kuiper 1318e7eca4 ensure mutex is unlocked before locking 2021-08-07 14:12:00 +01:00
Corwin Kuiper a9aad11dd7 make interrupt system interrupt safe(r)
FnMut is not something that can be used in a interrupt safe manner.
Instead use Fn with a Mutex that disables interrupts with a lock.
2021-08-07 14:12:00 +01:00
Corwin Kuiper a5488fab56 review of documentation suggests that this does nothing 2021-08-07 14:12:00 +01:00
Corwin Kuiper f54a539296 use better calling convention 2021-08-07 14:12:00 +01:00
Corwin Kuiper 086a4385be correct comments to accurately reflect what is going on 2021-08-07 14:12:00 +01:00
Corwin Kuiper 466d0844c5 push all registers, as rust may be using them 2021-08-07 14:12:00 +01:00
Corwin Kuiper 597b9370fc don't disable and reenable interrupts 2021-08-07 14:12:00 +01:00
Corwin Kuiper b98e6cbb02 add all other interrupts 2021-08-07 14:12:00 +01:00
Corwin Kuiper 30c5a0eea9 export interrupt module 2021-08-07 14:12:00 +01:00
Corwin Kuiper c2d4c99f66 correct exportation of functions 2021-08-07 14:12:00 +01:00
Corwin Kuiper 2ff9644310 disable interrupts during the interrupt handler 2021-08-07 14:12:00 +01:00
Corwin Kuiper dacdf51dca remove unused debug counter 2021-08-07 14:12:00 +01:00
Corwin Kuiper ebfd637300 satisfy linter by removing elidable lifetime 2021-08-07 14:12:00 +01:00
Corwin Kuiper 2cc0bee7c3 example first version of an interrupt handler implemented with closures 2021-08-07 14:12:00 +01:00
Corwin 8cd5055e80
Merge pull request #99 from agbrs/println-macro
add println macro for mgba
2021-08-07 14:10:50 +01:00
Corwin Kuiper 42647b7373 add println macro for mgba 2021-08-07 13:21:54 +01:00