From 35d9cd092db819e24df40f09de71a74d7d1749eb Mon Sep 17 00:00:00 2001 From: sawyer bristol Date: Wed, 12 Nov 2025 14:11:13 -0700 Subject: [PATCH] overclock --- Cargo.lock | 6 +++--- kernel/Cargo.toml | 1 + kernel/src/main.rs | 12 ++++++++++-- user-apps/gboy/build.rs | 8 +++----- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 71af89c..941d6b6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -137,7 +137,7 @@ version = "0.71.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "cexpr", "clang-sys", "itertools 0.10.5", @@ -148,7 +148,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.104", + "syn 2.0.110", ] [[package]] @@ -2004,7 +2004,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff24dfcda44452b9816fff4cd4227e1bb73ff5a2f1bc1105aa92fb8565ce44d2" dependencies = [ "proc-macro2", - "syn 2.0.104", + "syn 2.0.110", ] [[package]] diff --git a/kernel/Cargo.toml b/kernel/Cargo.toml index abc7926..a7229b6 100644 --- a/kernel/Cargo.toml +++ b/kernel/Cargo.toml @@ -17,6 +17,7 @@ pimoroni2w = ["rp235x", "psram"] rp235x = ["embassy-rp/rp235xb"] trouble = ["dep:bt-hci", "dep:cyw43", "dep:cyw43-pio", "dep:trouble-host"] psram = ["dep:embedded-alloc"] +overclock = [] fps = [] defmt = [ "dep:defmt", diff --git a/kernel/src/main.rs b/kernel/src/main.rs index 9d864fc..5b1fa00 100644 --- a/kernel/src/main.rs +++ b/kernel/src/main.rs @@ -47,6 +47,8 @@ use embassy_executor::{Executor, Spawner}; use embassy_futures::{join::join, select::select}; use embassy_rp::{ Peri, + clocks::ClockConfig, + config::Config, gpio::{Input, Level, Output, Pull}, i2c::{self, I2c}, multicore::{Stack, spawn_core1}, @@ -119,7 +121,13 @@ static UI_CHANGE: Signal = Signal::new(); #[embassy_executor::main] async fn main(_spawner: Spawner) { - let p = embassy_rp::init(Default::default()); + let p = if cfg!(feature = "overclock") { + let clocks = ClockConfig::system_freq(192_000_000).unwrap(); + let config = Config::new(clocks); + embassy_rp::init(config) + } else { + embassy_rp::init(Default::default()) + }; spawn_core1( p.CORE1, @@ -255,7 +263,7 @@ async fn setup_mcu(mcu: Mcu) { async fn setup_display(display: Display, spawner: Spawner) { let mut config = spi::Config::default(); - config.frequency = 64_000_000; + config.frequency = 192_000_000; let spi = Spi::new( display.spi, display.clk, diff --git a/user-apps/gboy/build.rs b/user-apps/gboy/build.rs index 1425720..a8bd29d 100644 --- a/user-apps/gboy/build.rs +++ b/user-apps/gboy/build.rs @@ -48,13 +48,11 @@ fn bindgen() { .file("peanut_gb_stub.c") .include("Peanut-GB") // optimization flags - .flag("-O3") // max optimization - .flag("-ffast-math") // faster floating point, if any - .flag("-funroll-loops") // unroll small loops - // CPU/architecture flags (example for ARM Cortex-M33) + .flag("-Ofast") + .flag("-fdata-sections") + .flag("-ffunction-sections") .flag("-mcpu=cortex-m33") .flag("-mthumb") - // optional: strip debug info .flag("-g0") .compile("peanut_gb");