gint/TODO
Lephe 2fd4238d31
core: finalize TLB management in timer callbacks (STABLE)
This change enables interrupts within timer callbacks, making it
possible to load pages to MMU while handling a timer underflow. The call
to TLB_LoadPTEH() has been moved directly into the VBR handler to avoid
jumping to ILRAM for a short call on SH4.

The TMU and ETMU handlers have been changed to callback through a new
function gint_inth_callback() that saves the user bank and a few
registers, then invokes the callback with interrupts enabled and in user
bank; until now, callbacks were invoked with interrupts disabled and in
kernel bank. Note that IMASK is still set so a callback can only be
interrupted by a high-priority interrupt.

A timer_wait() function has also been added to simplify tests that
involve timers. Finally, the priority level of the TMU0 underflow
interrupt has been set to 13 (as per the comments) instead of 7.

This version is the first stable version that handles TLB misses
transparently for large add-ins. It is suitable for every gint
application.
2020-06-17 11:43:26 +02:00

45 lines
2 KiB
Plaintext

For the 2.1.0 release:
* core: the four basic memory functions (with automated tests)
* bopti: remove the deprecated image_t definition
* project: remove the compat branch
* gray: remove g*() functions
* core: remove the boot log
Issues:
* #3 make drawing functions parameterized
* #8 support fx-CG Manager
* #10 support fx-CG 20
Extensions on existing code:
* bopti: try to display fullscreen images with TLB access + DMA on fxcg50
* gray: add gprint()
* gray: double-buffer gray settings and unify d* with g*
* topti: support unicode fonts
* gray: find good values for more models than the Graph 35+E II
* dma: fx9860g support (need to switch it on and update the Makefile)
* core: try to leave add-in without reset in case of panic
* hardware: fill in the HWMEM_FITTLB flag
* keyboard: think of extended functions
* cpg: spread spectrum on fxcg50
* display: use more of topti's assembler in drect()
* core: use cmp/str for memchr()
* r61524: brightness control and clean the file
* t6k11: check if dupdate() can be done by the DMA
* core: review forgotten globals and MPU addresses not in <gint/mpu/*.h>
* build: make the build system simpler (two targets are enough by default)
* core: run destructors when a task-switch results in leaving the app
* core: invoke main menu instead of returning after main() ends
* prizm: don't hardcode stack address in fxcg50.ld (if possible)
* prizm: detect P1 static RAM (stack) in TLB
* core rtc: use qdiv10 to massively improve division performance
* core: document the SH7305 PFC in <gint/mpu/pfc.h>
Future directions.
* A complete file system abstraction
* Integrate overclock management
* Audio playback using TSWilliamson's libsnd method
* Serial communication
* USB communication, using Yatis' reverse-engineering of the module
* Make fx9860g projects work out of the box on fxcg50
* Use the DSP to enhance parallel computation