Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Abbiamo provato Samsung Galaxy Tab S12 Ultra nella versione 12 GB + 256 GB con tastiera, e il risultato è un tablet che in questa configurazione si comporta come un notebook con la fluidità tipica di Android. Spessore di 5,1 mm, display Dynamic AMOLED 2X da 14,6 pollici, MediaTek Dimensity 9500 e un software senza incertezze compongono un prodotto di vertice, con prezzi da 1.539 euro, frenato solo da un'autonomia nella parte bassa del confronto
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Abbiamo provato per dieci giorni la Hyundai IONIQ 5 N, con 650 CV, 770 Nm e uno 0-100 km/h in 3,4 secondi. Il suo punto forte è N e-Shift, che simula un cambio a otto rapporti con suoni da motore termico e perfino un bang supersonico
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-05-2005, 09: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, 09: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, 10: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, 10: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, 17: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 15-05-2005, 00: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, 12: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


DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
Cowboy Space Corp. presenta il suo razzo...
Per NetSuite il vantaggio nell'IA sta ne...
Scoperta la zona d'origine del segnale W...
La Stazione Spaziale Internazionale cont...
La Difesa statunitense ha pubblicato la ...
vivo X500 Pro e Pro Max ufficiali: tanta...
iOS 27.2: l'iPhone chiede ai numeri scon...
Final Cut Pro integra MotionVFX e Apple ...
iMac M6 da 1.829 euro, MacBook Pro 14 M6...
RayNeo GT a 313,65€ su Amazon: occhiali ...
NVIDIA e Meta: 3 miliardi di dollari e p...
PHP2Shell: sfruttate attivamente le due ...
Raffreddamento passivo senza elettricità...
La deforestazione in Amazzonia crolla a ...
La luce del sole a mezzanotte, ecco come...
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: 03:21.


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