Commit graph

593 commits

Author SHA1 Message Date
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
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