Компиляция contiki C ++ вызывает переполнение области `FLASH_CCA 'для zoul - PullRequest
0 голосов
/ 18 декабря 2018

Мне нужно скомпилировать библиотеку C ++ для использования с contiki в Zolertia Re-Mote.Сначала я пробую простую программу:

hello-world.c

#include "contiki.h"

#include "misc.h"
/*---------------------------------------------------------------------------*/
PROCESS(hello_world_process, "Hello world process");
AUTOSTART_PROCESSES(&hello_world_process);
/*---------------------------------------------------------------------------*/
PROCESS_THREAD(hello_world_process, ev, data)
{
  PROCESS_BEGIN();

  say_hello();

  PROCESS_END();
}
/*---------------------------------------------------------------------------*/

misc.cpp

/* C++ implementation */
#ifdef CONTIKI_TARGET_ZOUL
void* __dso_handle;
void* __exidx_end;
void* __exidx_start;
#endif

#include <iostream>

using namespace std;
void cpp_say_hello(){
    cout << "Hello world!" << endl;
}

/* C wrapper */
extern "C"{
    #include "misc.h"

    void say_hello(){
        cpp_say_hello();
    }
}

misc.h

#ifndef _MISC_H_
#define _MISC_H_

/**
 * \brief Prints hello to stdout
 */
void say_hello();

#endif /* _MISC_H_ */

Makefile

ifeq ($(TARGET),)
    TARGET = native
endif

CONTIKI_PROJECT = hello-world
all: $(CONTIKI_PROJECT)

PROJECT_LIBRARIES = obj_$(TARGET)/misc.o

include $(CONTIKI)/Makefile.include

obj_$(TARGET)/misc.o: misc.cpp
    @mkdir -p obj_$(TARGET)
    $(TRACE_CXX)
    $(Q)$(CXX) $(CFLAGS) $(CXXFLAGS) -c $^ -o $@

Это (с некоторыми изменениями в make-файлах contiki: here ) позволило мне использовать код C ++ для «родной» цели.Однако, когда я пытаюсь скомпилировать для платформы Zolertia Re-Mote (TARGET = zoul), я получаю следующую ошибку:

/usr/lib/gcc/arm-none-eabi/8.2.0/../../../../arm-none-eabi/bin/ld: hello-world.elf section `.ARM.extab.text._Z13cpp_say_hellov' will not fit in region `FLASH_CCA'
/usr/lib/gcc/arm-none-eabi/8.2.0/../../../../arm-none-eabi/bin/ld: region `FLASH_CCA' overflowed by 788 bytes
collect2: error: ld returned 1 exit status
make: *** [/home/wellsaid/contiki/cpu/cc2538/Makefile.cc2538:103: hello-world.elf] Error 1
rm hello-world.co obj_zoul/startup-gcc.o

Любой способ исправить это?

...