You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

LLVM libc++ for NuttX

From Alan Carvalho de Assis

I was looking for a C+11 lib to integrated on NuttX for a customer's project because uClibc+ doesn't have the C++11 features they need. Then David suggested me to take a look on LLVM's libcxx.

Finally I integrated libcxx on NuttX in the same way uClibc++ was integrated.

Case you have a STM32F4Discovery board and want to test, just follow these steps:

  $ git clone https://bitbucket.org/acassis/libcxx
  Cloning into 'libcxx'...
  ...
  $ git clone https://bitbucket.org/acassis/nuttx_libcxx
  Cloning into 'nuttx_libcxx'...
  ...
  $ git clone https://bitbucket.org/nuttx/apps
  Cloning into 'apps'...
  ...
  $ cd libcxx/
  libcxx$ ./install.sh ../nuttx_libcxx
  Installing LLVM/libcxx in the NuttX source tree
  Installation suceeded
  libcxx$ cd ../nuttx_libcxx/
  nuttx_libcxx$ tools/configure.sh stm32f4discovery:libcxx-hello
  nuttx_libcxx$ make

Flash nuttx.bin in the STM32F4Discovery. Then in the serial console execute:

  NuttShell (NSH)
  nsh>?
  help usage: help [-v] [<cmd>]
  [ cmp free mh sh usleep
  ? dirname help mv sleep xd
  basename dd hexdump mw test
  break echo kill pwd time
  cat exec ls rm true
  cd exit mb rmdir uname
  cp false mkdir set unset
  Builtin Apps:
  helloxx
  nsh>helloxx
  helloxx [2:100]
  nsh>
  CHelloWorld::HelloWorld: Hello, World!!
  helloxx_main: Saying hello from the instance constructed on the stack
  CHelloWorld::HelloWorld: Hello, World!!
  helloxx_main: Saying hello from the statically constructed instance
  CHelloWorld::HelloWorld: Hello, World!!
  • No labels