2016-12-08 1 views
2

Je travaille actuellement avec la chaîne d'outils Eclipse quartus prime (16.1) et NIOS II. J'ai essayé de compiler simple C++ Bonjour l'application du monde, mais je reçois une erreur comme ceci:La chaîne NIOS II C++ nécessite une mémoire massive dans l'application Hello World

« onchip_memory2_nios2' débordée par 609088 octets »

Ma question est maintenant: Est-ce normal pour la NIOS II cible? Est-ce que l'implémentation de la chaîne (aussi tout le conteneur STL) pour cette cible a réellement besoin de tant de mémoire (j'ai environ 128Ko de mémoire)? Quelqu'un at-il l'expérience du développement de logiciels pour la cible NIOS II en C++ et sait que c'est le cas ou non?

Je suis heureux pour toute aide. Merci!

demande

ressemble à ceci:

#include <string> 
int main() 
{ 
    std::string s = "Hello World!"; 
} 
+0

Qu'en est-il de l'utilisation d'un tableau de caractères (par exemple 'unsigned char s [15]') à la place? J'avais utilisé 'printf' pour les dispositifs à code de caractères avant de quitter NIOS II ... il y a environ 5 ans. Peut-être, et sont pris en charge maintenant - essayer de trouver quelque chose à ce sujet dans les références – VolAnd

+0

quelles bibliothèques avez-vous lier? statiquement? options de l'éditeur de liens? Assurez-vous qu'il s'agit d'une erreur de compilation ou d'exécution? – dlatikay

+0

si l'empreinte mémoire de la STL est votre problème, il existe toujours l'ETL comme alternative, et diverses autres considérations sur les alternatives d'allocation de mémoire ici: http://stackoverflow.com/questions/2226252/embedded-c-to-use -stl-or-not – dlatikay

Répondre

0

Je contacté l'équipe de soutien ALTERA et à la fin on me dit: en raison des limites de leur soutien ++ C pour cet objectif, il est impossible d'utiliser la plupart des fonctionnalités C++ avec moins d'environ 750KByte de mémoire (Ils recommandent d'utiliser de la mémoire externe).

Je vais maintenant utiliser un mélange entre C et C++ et j'espère que cela le fera.