Skip to content

Add Arduino Portenta H7 platformio setup instructions #848

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from

Conversation

amilcarlucas
Copy link
Contributor

@amilcarlucas amilcarlucas commented Mar 18, 2022

This would have saved me two days work

@pablogs9
Copy link
Member

Just for info: this is an ROS 2 issue because the generate the same symbols if two .msg are named equally. For example, if we search in the .a file for the duplicated symbol this is the situation:

In Galactic:

➜  micro_ros_arduino git:(galactic) nm -A '/home/pgarrido/Arduino/libraries/micro_ros_arduino-0.0.1/src/cortex-m7/fpv5-d16-softfp/libmicroros.a' | grep Empty__rosidl_typesupport_introspection_c__Empty_fini_function
/home/pgarrido/Arduino/libraries/micro_ros_arduino-0.0.1/src/cortex-m7/fpv5-d16-softfp/libmicroros.a:libexample_interfaces__rosidl_typesupport_introspection_c-empty__type_support.c.obj:00000001 T Empty__rosidl_typesupport_introspection_c__Empty_fini_function
/home/pgarrido/Arduino/libraries/micro_ros_arduino-0.0.1/src/cortex-m7/fpv5-d16-softfp/libmicroros.a:libstd_msgs__rosidl_typesupport_introspection_c-empty__type_support.c.obj:00000001 T Empty__rosidl_typesupport_introspection_c__Empty_fini_function

Symbol Empty__rosidl_typesupport_introspection_c__Empty_fini_function is defined both in example_interfaces and in std_msgs, because both have Empty.msg

In Rolling we have fixed it:

➜  micro_ros_arduino git:(main) nm -A '/home/pgarrido/Arduino/libraries/micro_ros_arduino-0.0.1/src/cortex-m7/fpv5-d16-softfp/libmicroros.a' | grep Empty__rosidl_typesupport_introspection_c__Empty_fini_function
/home/pgarrido/Arduino/libraries/micro_ros_arduino-0.0.1/src/cortex-m7/fpv5-d16-softfp/libmicroros.a:libexample_interfaces__rosidl_typesupport_introspection_c-empty__type_support.c.obj:00000001 T example_interfaces__msg__Empty__rosidl_typesupport_introspection_c__Empty_fini_function
/home/pgarrido/Arduino/libraries/micro_ros_arduino-0.0.1/src/cortex-m7/fpv5-d16-softfp/libmicroros.a:libstd_msgs__rosidl_typesupport_introspection_c-empty__type_support.c.obj:00000001 T std_msgs__msg__Empty__rosidl_typesupport_introspection_c__Empty_fini_function

And now symbols are prepended with the packet name. See example_interfaces__msg__Empty__rosidl_typesupport_introspection_c__Empty_fini_function vs std_msgs__msg__Empty__rosidl_typesupport_introspection_c__Empty_fini_function

This means that this PR should not be backported to main (Rolling)

@pablogs9
Copy link
Member

Also @Acuadros95 can we generalize these instructions in order to work in any platform when using Platform.io?

@pablogs9 pablogs9 requested a review from Acuadros95 March 18, 2022 08:48
@Acuadros95
Copy link
Contributor

@pablogs9 I dont think we can archive generic instructions for platformio builds. Depending on the board we need to set a specific compiler version, modify the board platform commit, or add this linker fix

Maybe we can add a platformio known issues section.

@pablogs9
Copy link
Member

What about a generic platformio.ini and different fix_linker.py for each platform?

I agree with including it in known issues instead in general instructions because this will be not needed in future releases

@Acuadros95
Copy link
Contributor

Moved to: #849

@Acuadros95 Acuadros95 closed this Mar 18, 2022
@amilcarlucas amilcarlucas deleted the patch-1 branch March 21, 2022 14:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants