Компиляция contiki C ++ вызывает переполнение области `FLASH_CCA ‘для zoul

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

привет-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: Вот) позволил мне использовать код 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

Есть ли способ это исправить?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …