Funzionalità del kernel necessarie per C ++

0

Sto lavorando su un kernel per un sistema embeded proprietario. Non ho avuto problemi, ma mi piacerebbe espandere le sue capacità direttamente. L'ho fatto girare C. Ho fatto così tanto dando uno stack al mio kernel.

La mia domanda è C richiede solo uno stack per essere in grado di eseguire codice cross-compilato. Cosa oltre lo stack dovrei fornire a livello di kernel per l'esecuzione di codice C ++ cross-compilato. Cioè, ha bisogno di un mucchio, di tipi di dati e strutture più complessi, e altri?

Per me è diventato un problema al pollo o all'uovo come qualsiasi cosa di cui penso che C ++ potrebbe essere necessario è facilmente scritta in C ++.

NB: Mi sono sforzato di ricercare questa domanda qui e altrove e non ho trovato una risposta a questo specifico problema. Ho cercato di rendere questa una domanda molto specifica in conformità con le regole qui, per favore aiutami se le revisioni sono necessarie.

    
posta Mikeologist 10.03.2016 - 15:17
fonte

1 risposta

4

Non è strettamente necessario un heap per eseguire programmi C o C ++ compilati per la piattaforma, ma se si desidera utilizzare oggetti allocati su heap o blocchi di memoria, sarà necessario un heap.

C ++ usa heap più del codice C (cioè di routine sotto le copertine nelle librerie). In particolare, la maggior parte dell'uso di STL richiederà un heap, e il codice C ++ utilizza una quantità ragionevole di STL. Puoi richiedere un allocatore diverso per i contenitori STL, ma penso che forzarli a utilizzare lo stack potrebbe essere un passo troppo lungo per la maggior parte delle persone, se è addirittura possibile.

Oltre a questo, credo dipenda dal codice che il compilatore emette.

    
risposta data 10.03.2016 - 16:12
fonte

Leggi altre domande sui tag