Do a static buffer allocation for the Canvas

This commit is contained in:
Savanni D'Gerinel 2025-03-03 23:18:28 -05:00
parent 85e5d0bb5e
commit aea858dd17
2 changed files with 12 additions and 7 deletions

View File

@ -10,16 +10,18 @@
use alloc::{boxed::Box, vec::Vec};
pub struct Canvas<'a> {
pub buf: &'a mut [u8],
static mut BUF: [u8; 163200] = [0; 163200];
pub struct Canvas {
pub buf: &'static mut [u8; 163200],
pub width: usize,
}
impl<'a> Canvas<'a> {
pub fn new(buf: &'a mut [u8], columns: usize) -> Self {
impl Canvas {
pub fn new() -> Self {
Self {
buf,
width: columns,
buf: unsafe { &mut BUF },
width: 170,
}
}

View File

@ -119,15 +119,18 @@ unsafe fn main() -> ! {
timer.delay_ms(1000);
/*
let mut framebuf = [0; FRAMEBUF];
let mut canvas = Canvas::new(&mut framebuf, COLUMNS);
*/
let mut canvas = Canvas::new();
loop {
{
let display = display.acquire();
let _ = led.set_high();
timer.delay_ms(100);
display.send_buf(&canvas.buf);
display.send_buf(canvas.buf);
let _ = led.set_low();
}