diff --git a/src/lib.rs b/src/lib.rs
index 212f2c992bbda4dbda485af0f96b0f2bf7891f49..86afd9bffe30fc55b338c4be3966f5411be5cb2e 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,9 +1,9 @@
 #![doc = include_str!("../README.md")]
 
-mod new;
 mod link;
-mod symbols;
+mod new;
 mod rel_iter;
+mod symbols;
 
 use anyhow::Result;
 use clap::{Parser, Subcommand};
@@ -17,7 +17,7 @@ pub struct Opts {
 
 #[derive(Subcommand, Debug)]
 pub enum PipToolSubcommand {
-    /// Generate a new pip partition project 
+    /// Generate a new pip partition project
     New(new::Opts),
     /// Link elf files together and generate a binary blob ready to be
     /// flashed/loaded
diff --git a/src/link.rs b/src/link.rs
index c048b6f566ed644d221aab2f7647fa30fbf5a3a9..e8ef44bc15c795d071ee58d63385f113ad12034b 100644
--- a/src/link.rs
+++ b/src/link.rs
@@ -193,7 +193,11 @@ pub fn link(opts: Opts) -> Result<()> {
 
     // Dump .rom section in a vec
     let mut rom_bytes: Vec<u8> = vec![];
-    dump_sections(&user_code_elf, &[".rom"], &mut rom_bytes)?;
+    dump_sections(
+        &user_code_elf,
+        &[".rom", ".ARM.exidx", ".got", ".rom.ram"],
+        &mut rom_bytes,
+    )?;
 
     // Now the patch table for the .rom section (included in the .rel.rom section)
     match get_relocations_from_section(&user_code_elf, ".rel.rom")? {
diff --git a/src/main.rs b/src/main.rs
index ba22daa576eef2e0ad797cf7dbfdeb8f82c77933..751f7325f1ebc78a26a7b21d448315f1eebe7692 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,9 +1,8 @@
 #![doc = include_str!("../README.md")]
 
-use clap::Parser;
-use cargo_pip::{Opts,execute};
 use anyhow::Result;
-
+use cargo_pip::{execute, Opts};
+use clap::Parser;
 
 fn main() -> Result<()> {
     let opts = Opts::parse();
diff --git a/src/new.rs b/src/new.rs
index 5bc60be3082fb14524fb3bec009c1e153d73f2cb..00513f7bf2b0e1f810cc1962a1e8778a0a8a3fb0 100644
--- a/src/new.rs
+++ b/src/new.rs
@@ -29,13 +29,11 @@ pub fn generate(opts: Opts) -> Result<()> {
             .unwrap()
             .to_os_string()
             .into_string()
-            .unwrap()
+            .unwrap(),
     };
 
     let scaffold_opts = cargo_scaffold::Opts::builder(PIP_MPU_TEMPLATE_PATH)
-        .parameters(vec![
-            format!("crate_name={}", crate_name),
-        ])
+        .parameters(vec![format!("crate_name={}", crate_name)])
         .force(true)
         .project_name(crate_name)
         .target_dir(opts.crate_path);