Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
Un proiettore economico, che fa della portabilità e immediatezza i suoi punti di forza. Adatto per una camera da letto o per la casa vacanze, è basato su sistema proprietario Linux ma offre piena compatibilità ufficiale a Netflix
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
Un notebook sviluppato in collaborazione con GoPro ma che risponde al meglio alle necessità di tutti coloro che creano contenuti video: robustezza, design, potenza di calcolo e funzionalità si abbinano al meglio tra di loro, pur se a prezzo di un costo elevato per via della tanta memoria onboard
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Ho affidato ai due modelli lo stesso mestiere ma non lo stesso identico prompt: trasformare una storia illustrata in un video usando una RTX 3090 e modelli locali. Ne sono usciti due film, due applicazioni e due idee opposte di efficienza. Fucina, progettata con Fable 5, colpisce di più nei primi secondi. Storyboard Studio, costruito con ChatGPT/Codex, regge meglio sulla distanza e vince il confronto complessivo, ma di stretta misura
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-05-2005, 08:54   #1
Cecilia76
Senior Member
 
L'Avatar di Cecilia76
 
Iscritto dal: Aug 2004
Messaggi: 1399
C++ e processori Sharc

Salve a tutti,

qualcuno sa qualcosa sulla programmazione dei processori Sharc DSP in C++? Sto facendo un progetto ma ho problema nella gestione della memoria: ogni volta che faccio una new ho un errore di out_of_memory.

Qualche anima santa???
__________________
If you eat a live frog in the morning, nothing worse will happen to
either of you for the rest of the day.
Cecilia76 è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2005, 08:48   #2
Cecilia76
Senior Member
 
L'Avatar di Cecilia76
 
Iscritto dal: Aug 2004
Messaggi: 1399
Uppettino.

Nessuno sa nulla?
__________________
If you eat a live frog in the morning, nothing worse will happen to
either of you for the rest of the day.
Cecilia76 è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2005, 09:31   #3
lombardp
Senior Member
 
L'Avatar di lombardp
 
Iscritto dal: Jun 2002
Città: Firenze
Messaggi: 630
Quote:
Originariamente inviato da Cecilia76
Salve a tutti,

qualcuno sa qualcosa sulla programmazione dei processori Sharc DSP in C++? Sto facendo un progetto ma ho problema nella gestione della memoria: ogni volta che faccio una new ho un errore di out_of_memory.

Qualche anima santa???
Ho scritto qualcosina per un DSP della famiglia SHARC, ma erano piccole routine in assembler, ottimizzate per la velocità.

Però posso provare a darti una mano: usi un sistema operativo sul DSP? Lo chiedo perché (da quello che so) per l'allocazione dinamica della memoria probabilmente è necessario o un sistema operativo o comunque qualcosa che gestisca lo spazio di memoria.
__________________
---> Lombardp
CSS Certified Expert (Master Level) at Experts-Exchange
Proud user of LITHIUM forum : CPU technology
Webmaster of SEVEN-SEGMENTS : Elettronica per modellismo
lombardp è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2005, 09:51   #4
Cecilia76
Senior Member
 
L'Avatar di Cecilia76
 
Iscritto dal: Aug 2004
Messaggi: 1399
Intanto grazie mille per la risposta.
Dunque, il processore (un ADSP-21161N) è piazzato su una evaluation board collegata al PC (sotto Windows purtroppo) tramite USB.
Io scrivo il codice con VisualDSP++ 4.00: è un programma in C++ con delle routine in assembler che gestiscono l'I/O delle seriali audio. Ti cerco di descrivere il problema.

Sono partito dall'esempio CTalkthru fornito con EZKit lite (il kit per l'evaluation board). Ho trasformato il progetto in un progetto C++ e dopo un pò di modifiche tutto è andato a posto.
Il problema è che sto usando il file LDF per la gestione della memoria di CTalkthru e non so se vada bene. I file LDF sono dei file del linker in cui si indica in che segmento di memoria allocare porzioni di codice.
Ogni volta che uso l'operatore new del C++ per l'allocazione della memoria (ad esempio per creare un oggetto) ho
un messaggio di out_of_memory nel seg_pmco.
Non so proprio che fare perchè la gestione LDF è piuttosto complicata e a me fondamentalmente non interessa:
sarebbe sufficiente potere allocare qualche oggetto e usarne un metodo nella funzione Process_Samples.
Ad esempio:

LoopOscillator* osc;

Process_Samples () {
double v = osc.tick ();
// parti per mandare v alla seriale d'uscita

}

int main () {
// inizializazione del processore
osc = new LoopOscillator ();

//settaggio flag di interrupt a Process_Samples
for (;; )
asm ("idle");

}

LoopOscillator è la mia classe ma quando nel main chiamo l'operatore new ho out_of_memory.
Non so se ho chiarito un pò il problema. Grazie ancora, Cec
__________________
If you eat a live frog in the morning, nothing worse will happen to
either of you for the rest of the day.
Cecilia76 è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2005, 16:26   #5
lombardp
Senior Member
 
L'Avatar di lombardp
 
Iscritto dal: Jun 2002
Città: Firenze
Messaggi: 630
Purtroppo non ho familiarità con l'ambiente che utilizzi, e la mia esperienza con gli SHARC è molto datata (ADSP-21020) e limitata al solo assembler.

A quanto dici il problema sembra essere l'allocazione dinamica. Avresti problemi ad usare un'allocazione dell'oggetto direttamente come variabile statica senza bisogno del new:

LoopOscillator osc;
__________________
---> Lombardp
CSS Certified Expert (Master Level) at Experts-Exchange
Proud user of LITHIUM forum : CPU technology
Webmaster of SEVEN-SEGMENTS : Elettronica per modellismo
lombardp è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2005, 23:03   #6
Cecilia76
Senior Member
 
L'Avatar di Cecilia76
 
Iscritto dal: Aug 2004
Messaggi: 1399
Ciao,

non posso allocare staticamente gli oggetti perche il costruttore richiede obbligatoriamente dei parametri. Dovrei cambiare l'architettura di tutto il sistema per evitarlo. Sarebbe sicuramente più proficuo capire meglio la gestione della memoria.

Cec
__________________
If you eat a live frog in the morning, nothing worse will happen to
either of you for the rest of the day.
Cecilia76 è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2005, 11:28   #7
lombardp
Senior Member
 
L'Avatar di lombardp
 
Iscritto dal: Jun 2002
Città: Firenze
Messaggi: 630
Quote:
Originariamente inviato da Cecilia76
Ciao,
non posso allocare staticamente gli oggetti perche il costruttore richiede obbligatoriamente dei parametri. Dovrei cambiare l'architettura di tutto il sistema per evitarlo. Sarebbe sicuramente più proficuo capire meglio la gestione della memoria.
Ho capito, dall'esempio che avevi riportato non avevo visto parametri, per cui ti avevo suggerito quella soluzione. Di sicuro capire meglio la gestione della memoria è la via maestra.


Comunque, se utilizzi l'allocazione dinamica "solo" per passare dei parametri al costruttore, non dovrebbe essere troppo problematico passare ad una allocazione statica (da quello che so, l'allocazione dinamica serve obbligatoriamente se non sai a priori "quanti" e "quali" oggetti allocare).


Invece di fare : LoopOscillator* osc;
e poi : osc = new LoopOscillator (par1, par2);

potresti fare : LoopOscillator osc;
e poi : osc.init(par1,par2);
__________________
---> Lombardp
CSS Certified Expert (Master Level) at Experts-Exchange
Proud user of LITHIUM forum : CPU technology
Webmaster of SEVEN-SEGMENTS : Elettronica per modellismo
lombardp è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix HONOR CHOICE Projector Air Pro: piccolo, portati...
ASUS ProArt GoPro Edition è il notebook compatto per chi crea ASUS ProArt GoPro Edition è il notebook c...
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
Nuova rimodulazione da TIM: rincari fino...
Il satellite LINK che dovrebbe salvare i...
DAZN introduce il diritto di ripensament...
Perplexity porta Personal Computer su Wi...
El Paso ospiterà il nuovo hub AI ...
AMD si assicura fino a 2,5 GW di capacit...
WhatsApp porta chiamate e videochiamate ...
I robot aspirapolvere da non perdere ora...
MacBook Ultra con display OLED e un nuov...
Recensione Corsair Harpoon v2 Wireless: ...
Nasce il primo OLED con film cristallino...
Altman smonta una delle più grand...
JVC HA-S59W in prova: le cuffie on-ear l...
Professore nasconde una trappola nel com...
I chip di NVIDIA attuali progettano quel...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:19.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v