Bubba Machine

Presupuesto de memoria

RAM (96 KiB de .data/.bss)

Medido con sizeof en el build de PC (punteros de 8 bytes; en el FM-1 son de 4, así que será un poco menos).

BloqueBytesNotas
Patrón activo (bm_pattern)12 792T1 batería y T2 sampler en rejilla TR (16 líneas × 64 pasos, 1 byte por paso + P-Locks) + 4 canales de notas o KIT (unión) + 4 looperas
Arena compartida49 152Delay (32 KiB) + punch-in (16 KiB); mientras graba la GRABADORA, toda la arena es la toma (3 s a 16 kHz)
Caché de patrón sin guardar8 192para cambiar de patrón sonando; también sirve de buffer al reescribir la cabecera de una toma
Portapapeles, undo y redo~6 200un canal cada uno
Cola de comandos UI → audio~2 056128 comandos
Contexto de audio (voces, secuenciador, generador, 3 fuentes del sampler)~4 100
Tomas, fuentes y dibujos por bandas~2 0508 tomas, 3 fuentes estables, el loop A y la toma que se corta
Resto de la app (UI, gestos, teclas, canción)~2 500
Total bm_app86 9840.2 usaba 84 776
Franja de render + tile4 800240×8×2 + 60×8×2
Tabla mu-law, LEDs, MIDI~1 100
Total estático~92 900
Libre para pila e ISR~5 400VERIFICAR con el mapa del linker del port

Si en el FM-1 falta RAM, lo primero que se achica es la arena (BM_ARENA_LEN en core/bm_config.h): menos delay y menos segundos de grabación.

Flash (1 MiB)

ZonaTamañoContenido
ROM de batería170 938 B2 kits × 16 sonidos, mu-law a 22 kHz (presupuesto: 192 KiB)
ROM de ondas65 536 B16 ondas × 8 niveles band-limited × 256 muestras
Logo de arranque~19 KBRLE con paleta de 48 colores
Fuentes~1 KB5×7 y 3×5
Programa (app.bin)hasta 568 KiBFirmware sobre el SDK de JieLi; el de diagnóstico mide 121 KiB. Lo escribe el cargador oficial dentro de 0x000000-0x092FFF junto con el arranque del chip
Patrones160 KiB0x97000: 20 slots de 8 KiB: 16 patrones + canción/escenas + 3 libres para el wear-leveling
Registro de arranques4 KiB0xBF000: cuenta los arranques fallidos (modo seguro y modo del chip)
Tomas116 KiB0xC0000: biblioteca de largo libre: hasta 8 tomas de hasta 3 s, 7.4 s en total, en sectores seguidos con la cabecera al inicio. Se reproducen directo desde la flash
Globales12 KiB0xDD000: 3 sectores en rotación
Cargador en espera20 KiB0xE0000: el cargador de actualización mientras se instala una versión nueva
Ajustes del SDK (VM)32 KiB0xE5000: el almacén del SDK, con su tamaño por defecto; el empaquetador lo mueve ahí
Del aparato—0xED000 en adelante (BTIF, USR, MAC): Bubba Machine no lo toca nunca

Pantalla

Presupuesto de SPI a 12 MHz: ~37 KB por frame a 30 FPS. Medido en las pruebas con la matriz TR sonando: 6.8 KB de promedio por frame y 43 KB de pico al cambiar de pantalla (≈ 29 ms a 12 MHz, todavía dentro del frame de 33 ms), gracias al envío por tiles de 60×8 solo cuando cambian.

Esta página se genera desde docs/MEMORIA.md. ¿Ves un error? Edita el archivo y manda un pull request.