nuttx/boards/arm/cxd56xx/spresense
Pavel Pisa 6c2c70c61e Make: fix use of gcc as LD for modules and ELF executables builds
The patch

  Make: use gcc as LD

introduced use of GCC wrapper as linker. LD variable references GCC
executable now. But when GCC wrapper s used to build relocatable
loadable objects (ELF executables and modules) then it causes
linking of toolchain default libc and other libraries even when -r
is usd. Another problem is that incorrect multiarch variant is selected
for libraries search and possibly even for LTO or C++ templates
instantiating and other glue code which causes fails during linking
if CFLAGS selects non/default miltiarch variant.

Corresponding CFLAGS are passed to LDMODULEFLAGS and LDELFFLAGS
as well as -nostartfiles -nodefaultlibs options.

Separate line is used to easily find and adjust lines if link
process is changed in future.

Signed-off-by: Pavel Pisa <ppisa@pikron.com>
2021-07-19 08:41:25 -03:00
..
configs fs: Simplify sendfile implementation 2021-07-17 07:39:15 -03:00
include boards: spresense: Add CONFIG_ARCH_LEDS_CPU_ACTIVITY to board.h and cxd56_leds.c 2021-03-11 15:30:38 +01:00
scripts Make: fix use of gcc as LD for modules and ELF executables builds 2021-07-19 08:41:25 -03:00
src boards: cxd56xx: Fix some printf format warnings 2021-07-03 23:33:40 -05:00
Kconfig Support different hardware version of Wi-Fi add-on board (iS110B) 2021-04-14 16:10:51 +09:00
README.txt boards: spresense: Introduce ramconfig-new.ld for the system bus 2021-06-02 22:13:10 -05:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

README
======

Spresense is a compact development board based on Sonys power-efficient
multicore microcontroller CXD5602. It allows developers to create IoT
applications in a very short time and is supported by the Arduino IDE as well
as the more advanced NuttX based SDK.

- Integrated GPS
  The embedded GNSS with support for GPS, QZSS and GLONASS enables applications
  where tracking is required.
- Hi-res audio output and multi mic inputs
  Advanced 192kHz/24 bit audio codec and amplifier for audio output, and
  support for up to 8 mic input channels.
- Multicore microcontroller
  Spresense is powered by Sony's CXD5602 microcontroller (ARM® Cortex®-M4F × 6
  cores), with a clock speed of 156 MHz.

Refer to https://developer.sony.com/develop/spresense/ for further information
about this board.

NOTICE:

To run the nuttx, bootloader for Spresense SDK 2.1.0 or later must be installed.

Configuration sub-directories
-----------------------------

  elf

    This is a configuration to test apps/examples/elf.

  module

    This is a configuration to test apps/examples/module.

  posix_spawn

    This is a configuration to test apps/examples/posix_spawn.

  smp

    This is a configuration to run Spresense in SMP mode.

  wifi

    This is a configuration for Spresense + Wi-Fi addon (Telit GS2200M) module.
    With this configuration, (1) you can connect Spresense to an existing Wi-Fi
    access point (2.4GHz 802.11b/g/n are supported) or (2) you can make
    Spresense as a Wi-Fi access point. In both cases, you can login to the
    Spresense with telnet, also access to a webserver (NOTE: this case you need
    an extension board with microSDHC card)

    (1) Station (STA) mode

    To run the module in Station mode (i.e. to connect to an existing Wi-Fi
    access point), You need to specify SSID with passcode.

      nsh> gs2200m ssid-to-connect passcode &

    If the connection succeeded, IP address is statically assigned.

      nsh> ifconfig
      wlan0   Link encap:Ethernet HWaddr 3c:95:09:00:69:92 at UP
      inet    addr:10.0.0.2 DRaddr:10.0.0.1 Mask:255.255.255.0

    Then, you can run DHCP client (renew command) to obtain IP address as well
    as DNS server information. (NOTE: In current configuration, DHCP client on
    GS2200M is disabled. If you enable the internal DHCP client, you can not
    use DNS client on NuttX)

      nsh> renew wlan0 &
      renew [6:100]
      nsh> ifconfig
      wlan0   Link encap:Ethernet HWaddr 3c:95:09:00:69:92 at UP
      inet    addr:192.168.1.101 DRaddr:192.168.1.1 Mask:255.255.255.0

    Now, you can run telnetd and webserver on Spresense.

      nsh> telnetd &
      telnetd [7:100]
      nsh> webserver &
      webserver [9:100]
      nsh> Starting webserver

    Also, you can run NTP client to adjust the RTC on Spresense. (NOTE: we
    assume your network can access to pool.ntp.org, otherwise, you can specify
    CONFIG_NETUTILS_NTPCLIENT_SERVER)

      nsh> date
      Jan 01 00:00:36 1970
      nsh> ntpcstart
      Started the NTP daemon as PID=11
      nsh> date
      Jul 30 06:42:13 2019

    (2) Access Point (AP) mode

    To run the module in AP mode, you need to specify SSID to advertise and
    WPA2-PSK passphrase or WEP-key. (NOTE: in AP mode, you can also specify
    channel number to use. Also, you need to set CONFIG_WL_GS2200M_ENABLE_WEP=y
    if you want to use WEP instead of WPA2-PSK)

      nsh> gs2200m -a ssid-to-advertise 8-to-63-wpa2-psk-passphrase &
      or
      nsh> gs2200m -a ssid-to-advertise 10-hex-digits-wep-key &

    If the module was initialized in AP mode, you can see a new IP address is
    assigned.

      nsh> ifconfig
      wlan0   Link encap:Ethernet HWaddr 3c:95:09:00:69:93 at UP
      inet    addr:192.168.11.1 DRaddr:192.168.11.1 Mask:255.255.255.0

    Now you can connect your PC to the AP with the above SSID and WPA2-PSK
    passphrase or WEP-key which you specified.