PelionIoT / nanostack-border-router

Nanostack Border Router implementation
Apache License 2.0
51 stars 48 forks source link

[mbed-os-5.9-oob] Failed link #107

Closed soramame21 closed 6 years ago

soramame21 commented 6 years ago

A link error happens when running following 2 building commands. Please refer the attached file 6lowpan_Atmel_RF.json and

Building Command:

C:\ioT\workspace\oob-mbed-5.x\nanostack-border-router>mbed compile -m K64F -t ARM -c --app-config configs\6lowpan_Atmel_RF.json -vv and C:\ioT\workspace\oob-mbed-5.x\nanostack-border-router>mbed compile -m K64F -t ARM -c --app-config configs\Thread_Atmel_RF.json -vv

Error message:

Link: nanostack-border-router
Link: C:\Keil_v5\ARM\ARMCC\bin\armlink --via .\BUILD\K64F\ARM\.link_files.txt
[DEBUG] Return: 1
[DEBUG] Errors: "C:\Users\botren01\AppData\Local\Temp\p528c-3", line 124 (column 3): Warning: L6312W: Empty Execution region description for region RW_IRAM1
[DEBUG] Errors: Error: L6218E: Undefined symbol OnboardNetworkStack::get_default_instance() (referred from BUILD/K64F/ARM/mbed-os/features/netsocket/EthernetInterface.o).
[DEBUG] Errors: Finished: 0 information, 1 warning and 1 error messages.
Traceback (most recent call last):
  File "C:\ioT\workspace\oob-mbed-5.x\nanostack-border-router\mbed-os\tools\make.py", line 290, in <module>
    ignore=options.ignore)
  File "C:\ioT\workspace\oob-mbed-5.x\nanostack-border-router\mbed-os\tools\build_api.py", line 599, in build_project
    res, _ = toolchain.link_program(resources, build_path, name)
  File "C:\ioT\workspace\oob-mbed-5.x\nanostack-border-router\mbed-os\tools\toolchains\__init__.py", line 1126, in link_program
    self.link(elf, r.objects, r.libraries, r.lib_dirs, r.linker_script)
  File "C:\ioT\workspace\oob-mbed-5.x\nanostack-border-router\mbed-os\tools\hooks.py", line 34, in wrapper
    res = function(t_self, *args, **kwargs)
  File "C:\ioT\workspace\oob-mbed-5.x\nanostack-border-router\mbed-os\tools\toolchains\arm.py", line 244, in link
    self.default_cmd(cmd)
  File "C:\ioT\workspace\oob-mbed-5.x\nanostack-border-router\mbed-os\tools\toolchains\__init__.py", line 1155, in default_cmd
    raise ToolException(_stderr)
ToolException: "C:\Users\botren01\AppData\Local\Temp\p528c-3", line 124 (column 3): Warning: L6312W: Empty Execution region description for region RW_IRAM1
Error: L6218E: Undefined symbol OnboardNetworkStack::get_default_instance() (referred from BUILD/K64F/ARM/mbed-os/features/netsocket/EthernetInterface.o).
Finished: 0 information, 1 warning and 1 error messages.

configuration file: 6lowpan_Atmel_RF.zip Thread_Atmel_RF.zip

ciarmcom commented 6 years ago

ARM Internal Ref: IOTTHD-2588

artokin commented 6 years ago

EMAC changes from master branch merged to mbed-os-5.9.0-oob branch to solve this problem.

As a side-effect Thread Border Router can not be build with IAR toolchain: https://github.com/ARMmbed/nanostack-border-router/issues/109

SeppoTakalo commented 6 years ago

@artokin Please study whether mbed-mesh-api.use-malloc-for-heap can be used to workaround IAR issue.

IAR uses statically defined heap size, which is mostly unused in this application. https://os-doc-builder.test.mbed.com/docs/development/reference/configuration-mesh.html

SeppoTakalo commented 6 years ago

Also, close this, if already fixed.

artokin commented 6 years ago

This issue is fixed in mbed-os-5.9.0-oob branch by commit https://github.com/ARMmbed/nanostack-border-router/commit/ff8d36e6ae1dcd618baaf6dfcdadb3c37e9bbc68 . Closing issue.