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

NuttX upgrade cmake wrapper #7873

Merged
merged 10 commits into from
Aug 29, 2017

Conversation

dagar
Copy link
Member

@dagar dagar commented Aug 27, 2017

Continuation of #7397, but for updated NuttX.

This is an experiment for wrapping the NuttX build differently, overall making it much faster and allowing better integration with PX4.

  • wraps NuttX per library allowing parallel and incremental builds and tighter integration
  • uses NuttX's mechanism for generating builtins which means we don't need sercon/serdis boilerplate in every single config
  • moves patches into git commits
  • NuttX copy per PX4 build can be done with hard links (where supported) which improves in place editing and debugging
  • treats the px4io as a dedicated build, then imports the binary (significantly cleaner and allows us to start using standard cmake for setting compiler flags)
  • imports NuttX CONFIG flags into PX4 cmake to better handle multiple architectures
  • binaries now placed at top level build dir named ${BUILD}.elf
  • all builds moved to a build/ subdirectory
  • significant cleanup of the build system for PX4 UAVCAN bootloaders
  • split px4fmu-v2 and px4fmu-v3 only handling versioning in v3

@dagar dagar self-assigned this Aug 27, 2017
@dagar dagar requested a review from davids5 August 27, 2017 14:37
@dagar dagar force-pushed the master_new_archs-cmake branch from 54a2ab4 to e1d739b Compare August 27, 2017 17:53
@LorenzMeier
Copy link
Member

Pretty awesome!

@dagar dagar mentioned this pull request Aug 27, 2017
@dagar dagar force-pushed the master_new_archs-cmake branch from e1d739b to b06770f Compare August 28, 2017 00:12
@dagar dagar force-pushed the master_new_archs-cmake branch from b06770f to 63588a4 Compare August 28, 2017 20:23
David Sidrane added 2 commits August 28, 2017 13:54
   CC_ASSERT mapes to the c++ static_assert or provides the same
   funtionality for c via the other macros. The c++ static assert
   takes 2 argumants the prdicate and a message. This fixes the
   lacking second argument.
   This is the latest uptake of upstream nuttx and apps.
@dagar dagar changed the title [WIP] NuttX upgrade cmake wrapper NuttX upgrade cmake wrapper Aug 29, 2017
@davids5
Copy link
Member

davids5 commented Aug 29, 2017

@dagar - I still have more testing to do.

@davids5
Copy link
Member

davids5 commented Aug 29, 2017

@dagar -

Bootloader are working (the ones that will build and fit in flash) - Fantastic job!
FMUv5 - AOK
NXPHlite-V3 - AOK

So once the CI is happy let's merge it!

@dagar dagar force-pushed the master_new_archs-cmake branch from da1aa19 to dca33b1 Compare August 29, 2017 15:00
@dagar dagar force-pushed the master_new_archs-cmake branch from 5ad9d3a to 2e0b89a Compare August 29, 2017 19:59
@dagar dagar force-pushed the master_new_archs-cmake branch from 2e0b89a to a0245e2 Compare August 29, 2017 20:18
@davids5 davids5 merged commit 0fa5da3 into master_new_archs_nuttx_upgrade Aug 29, 2017
davids5 pushed a commit that referenced this pull request Sep 6, 2017
* NuttX cmake

* px4_macros:Pass the stringified predicate as second arg to static assert

   CC_ASSERT mapes to the c++ static_assert or provides the same
   funtionality for c via the other macros. The c++ static assert
   takes 2 argumants the prdicate and a message. This fixes the
   lacking second argument.

* Updated nuttx and apps submodule to upstream nuttx 7.21+==master

   This is the latest uptake of upstream nuttx and apps.

* ROMFS generate with xxd instead of objcopy

* delete nuttx-patches

* NuttX update submodules to latest px4_nuttx-master

* fix nuttx apps and board dependency

* docker_run update to latest container 2017-08-29

* cmake ROMFS portable sed usage

* NuttX update submodules to latest px4_nuttx-master
davids5 pushed a commit that referenced this pull request Sep 13, 2017
* NuttX cmake

* px4_macros:Pass the stringified predicate as second arg to static assert

   CC_ASSERT mapes to the c++ static_assert or provides the same
   funtionality for c via the other macros. The c++ static assert
   takes 2 argumants the prdicate and a message. This fixes the
   lacking second argument.

* Updated nuttx and apps submodule to upstream nuttx 7.21+==master

   This is the latest uptake of upstream nuttx and apps.

* ROMFS generate with xxd instead of objcopy

* delete nuttx-patches

* NuttX update submodules to latest px4_nuttx-master

* fix nuttx apps and board dependency

* docker_run update to latest container 2017-08-29

* cmake ROMFS portable sed usage

* NuttX update submodules to latest px4_nuttx-master
davids5 pushed a commit that referenced this pull request Sep 19, 2017
* NuttX cmake

* px4_macros:Pass the stringified predicate as second arg to static assert

   CC_ASSERT mapes to the c++ static_assert or provides the same
   funtionality for c via the other macros. The c++ static assert
   takes 2 argumants the prdicate and a message. This fixes the
   lacking second argument.

* Updated nuttx and apps submodule to upstream nuttx 7.21+==master

   This is the latest uptake of upstream nuttx and apps.

* ROMFS generate with xxd instead of objcopy

* delete nuttx-patches

* NuttX update submodules to latest px4_nuttx-master

* fix nuttx apps and board dependency

* docker_run update to latest container 2017-08-29

* cmake ROMFS portable sed usage

* NuttX update submodules to latest px4_nuttx-master
davids5 pushed a commit that referenced this pull request Sep 20, 2017
* NuttX cmake

* px4_macros:Pass the stringified predicate as second arg to static assert

   CC_ASSERT mapes to the c++ static_assert or provides the same
   funtionality for c via the other macros. The c++ static assert
   takes 2 argumants the prdicate and a message. This fixes the
   lacking second argument.

* Updated nuttx and apps submodule to upstream nuttx 7.21+==master

   This is the latest uptake of upstream nuttx and apps.

* ROMFS generate with xxd instead of objcopy

* delete nuttx-patches

* NuttX update submodules to latest px4_nuttx-master

* fix nuttx apps and board dependency

* docker_run update to latest container 2017-08-29

* cmake ROMFS portable sed usage

* NuttX update submodules to latest px4_nuttx-master
davids5 pushed a commit that referenced this pull request Sep 27, 2017
* NuttX cmake

* px4_macros:Pass the stringified predicate as second arg to static assert

   CC_ASSERT mapes to the c++ static_assert or provides the same
   funtionality for c via the other macros. The c++ static assert
   takes 2 argumants the prdicate and a message. This fixes the
   lacking second argument.

* Updated nuttx and apps submodule to upstream nuttx 7.21+==master

   This is the latest uptake of upstream nuttx and apps.

* ROMFS generate with xxd instead of objcopy

* delete nuttx-patches

* NuttX update submodules to latest px4_nuttx-master

* fix nuttx apps and board dependency

* docker_run update to latest container 2017-08-29

* cmake ROMFS portable sed usage

* NuttX update submodules to latest px4_nuttx-master
dagar added a commit that referenced this pull request Sep 28, 2017
* NuttX cmake

* px4_macros:Pass the stringified predicate as second arg to static assert

   CC_ASSERT mapes to the c++ static_assert or provides the same
   funtionality for c via the other macros. The c++ static assert
   takes 2 argumants the prdicate and a message. This fixes the
   lacking second argument.

* Updated nuttx and apps submodule to upstream nuttx 7.21+==master

   This is the latest uptake of upstream nuttx and apps.

* ROMFS generate with xxd instead of objcopy

* delete nuttx-patches

* NuttX update submodules to latest px4_nuttx-master

* fix nuttx apps and board dependency

* docker_run update to latest container 2017-08-29

* cmake ROMFS portable sed usage

* NuttX update submodules to latest px4_nuttx-master
dagar added a commit that referenced this pull request Sep 29, 2017
* NuttX cmake

* px4_macros:Pass the stringified predicate as second arg to static assert

   CC_ASSERT mapes to the c++ static_assert or provides the same
   funtionality for c via the other macros. The c++ static assert
   takes 2 argumants the prdicate and a message. This fixes the
   lacking second argument.

* Updated nuttx and apps submodule to upstream nuttx 7.21+==master

   This is the latest uptake of upstream nuttx and apps.

* ROMFS generate with xxd instead of objcopy

* delete nuttx-patches

* NuttX update submodules to latest px4_nuttx-master

* fix nuttx apps and board dependency

* docker_run update to latest container 2017-08-29

* cmake ROMFS portable sed usage

* NuttX update submodules to latest px4_nuttx-master
@davids5 davids5 deleted the master_new_archs-cmake branch September 29, 2017 19:09
jlecoeur added a commit to jlecoeur/Devguide that referenced this pull request Oct 4, 2017
Since PX4/PX4-Autopilot#7873 the build system requires xxd.
On archlinux vim need to be installed, otherwise xxd is absent and the build fails.
dagar pushed a commit to PX4/PX4-Devguide that referenced this pull request Oct 4, 2017
Since PX4/PX4-Autopilot#7873 the build system requires xxd.
On archlinux vim need to be installed, otherwise xxd is absent and the build fails.
@bkueng
Copy link
Member

bkueng commented Oct 4, 2017

@dagar can you please go through the dev-guide and apply the necessary changes?
Build directory build_xy vs build/xy...

@dagar
Copy link
Member Author

dagar commented Oct 4, 2017

Sure, I didn't realize that was even mentioned.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants