Skip to content
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

added support for Cortex-M33 (nRF5340 app core) #44

Closed
wants to merge 3 commits into from

Conversation

sprhawk
Copy link
Contributor

@sprhawk sprhawk commented Mar 6, 2024

No description provided.

if(CONFIG_FPU)
set(rust_target thumbv8m.main-zephyr-eabihf)
set(clang_target thumbv8m.main-unknown-none-eabihf)
set(clang_cflags "-mcpu=cortex-m33 -mthumb -mabi=aapcs -mfpu=fpv5-sp-d16 -mfloat-abi=hard")
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these cpu-specific CFLAGS necessary? Clang should be only used here for bindgen, so it should not be generating binaries with these flags.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For me, when there is no clang_cflags, it reported they (the lib generated by zephyr and the one generated by rust) have different VFP usage.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you see if #49 works for you?

Using the target-json generated from Rust for the hf variant, I get "features": "+fp-armv8,-fp64,-d32", in the json, and that generates and elf with the correct vfp usage.

I'm building with west build -p auto -b nrf5340dk_nrf5340_cpuapp samples/rust-app/ and manually enabling CONFIG_FPU in ninja menuconfig.

readelf -A ./modules/zephyr-rust/app/thumbv8m.main-zephyr-eabihf/release/librust_app.a
File: ./modules/zephyr-rust/app/thumbv8m.main-zephyr-eabihf/release/librust_app.a(compiler_builtins-190bfd2d1f14c110.compiler_builtins.5742c880-cgu.9.rcgu.o)
Attribute Section: aeabi
File Attributes
  Tag_conformance: "2.09"
  Tag_CPU_arch: v8-M.mainline
  Tag_CPU_arch_profile: Microcontroller
  Tag_ARM_ISA_use: No
  Tag_THUMB_ISA_use: Yes
  Tag_FP_arch: FPv5/FP-D16 for ARMv8

CMakeLists.txt Show resolved Hide resolved
CMakeLists.txt Show resolved Hide resolved
rust/thumbv8m.main-zephyr-eabihf.json Outdated Show resolved Hide resolved
@tylerwhall
Copy link
Owner

tylerwhall commented Jun 30, 2024

Superseded by #49

@tylerwhall tylerwhall closed this Jun 30, 2024
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