From 2cc6fe6843a0f1191c7020325c58262d34d51ace Mon Sep 17 00:00:00 2001 From: Damien Amara <damien.amara@univ-lille.fr> Date: Fri, 14 Jun 2024 16:31:18 +0200 Subject: [PATCH] Fix user code section export --- src/lib.rs | 6 +++--- src/link.rs | 6 +++++- src/main.rs | 5 ++--- src/new.rs | 6 ++---- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 212f2c9..86afd9b 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 c048b6f..e8ef44b 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 ba22daa..751f732 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 5bc60be..00513f7 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); -- GitLab