picotool icon indicating copy to clipboard operation
picotool copied to clipboard

The compiler or linker does not enter the information in the binary file.

Open tistructor opened this issue 1 year ago • 3 comments

I use the core: "https://github.com/earlephilhower/arduino-pico" I followed the guide contained in the file: "getting-started-with-pico.pdf" And the compilation takes place without errors. Using picotool the information I entered is not visible, however. I believe the compiler eliminates the two functions. I looked at the file: "ctags_target_for_gcc_minus_e.cpp" which is generated at the end of the compilation and the two functions are not there.

This is the file :

/*
  Fade

  This example shows how to fade an LED on pin 9 using the analogWrite()
  function.

  The analogWrite() function uses PWM, so if you want to change the pin you're
  using, be sure to use another PWM capable pin. On most Arduino, the PWM pins
  are identified with a "~" sign, like ~3, ~5, ~6, ~9, ~10 and ~11.

  This example code is in the public domain.

  https://www.arduino.cc/en/Tutorial/BuiltInExamples/Fade
*/
#include "pico/binary_info.h"



int led = 25;           // the PWM pin the LED is attached to
int brightness = 0;    // how bright the LED is
int fadeAmount = 5;    // how many points to fade the LED by

// the setup routine runs once when you press reset:
void setup() {
  // declare pin 9 to be an output:
  pinMode(led, OUTPUT);
  
}

// the loop routine runs over and over again forever:
void loop() {
  bi_decl(bi_program_description("This is a test binary."));
  bi_decl(bi_1pin_with_name(LED_PIN, "On-board LED"));
  // set the brightness of pin 9:
  analogWrite(led, brightness);

  // change the brightness for next time through the loop:
  brightness = brightness + fadeAmount;

  // reverse the direction of the fading at the ends of the fade:
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }
  // wait for 30 milliseconds to see the dimming effect
  delay(30);

I also put the functions in setup () but the functions are eliminated.

I have not understood what needs to be done to set up the compiler or linker to prevent functions from being eliminated.

I tried to remove from "platform.txt" --gc-sections from the parameters passed to the linker

compiler.ldflags={compiler.wrap} -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--unresolved-symbols=report-all -Wl,--warn-common

but in this way the compilation ends with errors.

tistructor@Lenovo-Y520:~/.arduino15/packages/rp2040/tools/pqt-picotool/1.5.0-b-03f2812$ ./picotool info -a /tmp/arduino_build_852227/Fade.ino.uf2
File /tmp/arduino_build_852227/Fade.ino.uf2:

Program Information
 none

Fixed Pin Information
 none

Build Information
 none
./picotool info -a 
Program Information
 none

Fixed Pin Information
 none

Build Information
 none

Device Information
 flash size:   4096K
 ROM version:  3

tistructor avatar Apr 25 '23 14:04 tistructor