Commit graph

1636 commits

Author SHA1 Message Date
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
Gwilym Kuiper c265a95996 Release agb v0.6.0 2021-08-01 21:50:18 +01:00
Gwilym Kuiper 7229e9012d Update agb's agb-image-converter to 0.6.0 2021-08-01 21:46:08 +01:00
Gwilym Kuiper 4bd05718ee Release agb-image-converter v0.6.0 2021-08-01 21:40:49 +01:00
Gwilym Kuiper 85aac9dede
Merge pull request #97 from gwilymk/make-it-clear-you-need-cmake
Add CMake to the test runner instructions
2021-08-01 21:35:31 +01:00
Gwilym Kuiper de360f5dbc
Merge pull request #95 from gwilymk/attempt-speedup-mixer-in-asm
Speed up the mixer by writing the core loops in ASM
2021-08-01 21:35:07 +01:00
Gwilym Kuiper ac8e2dfe9d Go back to the other way of addressing as they aren't equivalent 2021-08-01 21:29:44 +01:00
Gwilym Kuiper ec65b18fd2 Make the str consistent with the ldr 2021-08-01 21:23:31 +01:00
Gwilym Kuiper 6e97bffeae Add CMake to the test runner instructions 2021-08-01 21:16:57 +01:00
Gwilym Kuiper 809d3f52ee update the comment about what's kept between iterations 2021-08-01 21:01:59 +01:00
Gwilym Kuiper cce3ecdde5 Use r9 rather than lr 2021-08-01 21:00:49 +01:00
Gwilym Kuiper 2db696f8bf reuse r4 2021-08-01 20:59:01 +01:00
Gwilym Kuiper 18d96e4349 Update comments now I understand what's happening 2021-08-01 20:50:52 +01:00
Gwilym Kuiper 451f38604d Add an explicit .pool at the end of the mixer 2021-08-01 20:45:57 +01:00
Gwilym Kuiper d1c312ab79 Remove loads of whitespace 2021-08-01 20:44:37 +01:00
Gwilym Kuiper 09ad082f3f Furter rearranging for more sense making 2021-08-01 20:41:56 +01:00
Gwilym Kuiper 80e03073fd Reorder the asm instructions to make better sense 2021-08-01 20:29:45 +01:00
Gwilym Kuiper 1af53aacb4 Done check makes sense to go at the end 2021-08-01 20:23:39 +01:00
Gwilym Kuiper cc99aad4c5 Move the comments to a nicer place in the file 2021-08-01 20:23:05 +01:00
Gwilym Kuiper 5bc3844a14
Merge pull request #92 from gwilymk/proc-macro-for-agb-image-converter
Proc macro for agb image converter
2021-08-01 20:07:17 +01:00
Corwin c5dd1ada6c
Merge pull request #96 from agbrs/test-runner-char
change to use c_char for arm compat
2021-08-01 20:01:23 +01:00
Corwin Kuiper d2f5ab3e12 share deps with image-converter 2021-08-01 18:03:13 +01:00