Sign in
Join now
pumpkin-os
pds.dad
/
Star
Starred
Star
Something went wrong. Try again.
Fork
0
Eye filled
Watch
Watching
Watch
A fork of pulp-os for the xteink4 adding custom apps
Star
Starred
Star
Something went wrong. Try again.
Fork
Eye filled
Watch
Watching
Watch
Overview
Overview
Issues
Issues
Pulls
Pulls
Pipelines
Pipelines
pumpkin-os
/
src
/
fonts
2 files
at
main
hansmrtn
·
perf: comprehensive speed, memory, and power optimizations Speed: - Swap blit_1bpp_270 loop order (x-outer/y-inner) for sequential strip buffer writes; batch source byte reads (strip.rs) - Batch ASCII advance in wrap_proportional with direct glyph array indexing, bypassing per-byte function call chain (paging.rs) - Skip prescan_image_heights for text-only pages via fast MARKER byte scan before expensive ZIP/SD setup (images.rs) - Remove redundant 4KB replay buffer copy in phase 3 RED RAM write; send strip data directly (ssd1677.rs) - Skip phase 3 sync when a deferred transition is queued, avoiding ~15ms of rendering that will be immediately overdrawn (scheduler.rs) Memory (~35KB static savings): - Heap-alloc EpubToc on demand via Option<Box<EpubToc>> (~13KB) - Heap-alloc prefetch buffer as Vec<u8> instead of [u8; 8192] (~8KB) - Reduce TITLE_CAP 96→64 across DirEntry/BmListEntry/EpubMeta (~4.6KB) - Reduce ZipIndex MAX_ENTRIES 512→256 (~4.5KB) - Free BootConsole after boot via heap Box instead of static (~3KB) - Reduce MAX_PAGES 1024→512 (~2KB) - Shrink title_len/max_lines/qa_count from usize to u8 Power: - Adaptive input polling: 10ms during active input, 50ms when idle after 1 second, reducing ADC wakeups by ~80% during reading
·
7mo ago
6f325258
bitmap.rs
refactor: code review cleanup, bug fixes, and RTC session persistence rtc session persistence: - add rtc_session module for deep sleep state preservation - save/restore nav stack, reader position, files scroll, home state - cache settings in RTC memory to skip SD reads on wake - keep RTC FAST memory powered during sleep (~1-2µA extra) - add collect_session/apply_session to AppLayer trait - add session state accessors to home, files, reader apps bugs: - fix typos in timing.rs (dookmark -> bookmark, dffset -> offset) - add spine bounds check in images.rs scan_chapter_for_image - add chapter validation after spine load in reader - log errors on pulp dir creation failure in main.rs - fix misleading comment in bitmap.rs (fallback is '?' not space) consolidation: - remove redundant extern crate alloc from files.rs, reader/mod.rs, images.rs - extract hint() helper in build.rs - extract is_power_event() helper in scheduler.rs - extract enter_error() helper in reader/mod.rs - add CONTENT_REGION constant in home.rs - trim unused layout constants clarity: - add rotation comment for SCREEN_W/H swap in board/mod.rs - add window bounds comment in strip.rs - rename cryptic vars in paging.rs (lc->line_count, ls->line_start, etc) - add state machine comment in reader/mod.rs simplification: - use if let instead of empty match in storage.rs - use map_or in app.rs render_ready - use .expect() for spawn failures in main.rs style: - convert /// doc comments to // in rtc_session.rs, layout.rs, utf8.rs
7mo ago
mod.rs
perf: comprehensive speed, memory, and power optimizations Speed: - Swap blit_1bpp_270 loop order (x-outer/y-inner) for sequential strip buffer writes; batch source byte reads (strip.rs) - Batch ASCII advance in wrap_proportional with direct glyph array indexing, bypassing per-byte function call chain (paging.rs) - Skip prescan_image_heights for text-only pages via fast MARKER byte scan before expensive ZIP/SD setup (images.rs) - Remove redundant 4KB replay buffer copy in phase 3 RED RAM write; send strip data directly (ssd1677.rs) - Skip phase 3 sync when a deferred transition is queued, avoiding ~15ms of rendering that will be immediately overdrawn (scheduler.rs) Memory (~35KB static savings): - Heap-alloc EpubToc on demand via Option<Box<EpubToc>> (~13KB) - Heap-alloc prefetch buffer as Vec<u8> instead of [u8; 8192] (~8KB) - Reduce TITLE_CAP 96→64 across DirEntry/BmListEntry/EpubMeta (~4.6KB) - Reduce ZipIndex MAX_ENTRIES 512→256 (~4.5KB) - Free BootConsole after boot via heap Box instead of static (~3KB) - Reduce MAX_PAGES 1024→512 (~2KB) - Shrink title_len/max_lines/qa_count from usize to u8 Power: - Adaptive input polling: 10ms during active input, 50ms when idle after 1 second, reducing ADC wakeups by ~80% during reading
7mo ago