Keskustelut - C/C++ - C-kääntäjä omalle prosessoriarkkitehtuurille


Entropia 20:15 26.1.10 
Suunnittelen insinöörityökseni omaa prosessoriarkkitehtuuria jonka implementoin FPGA-piirillä. Olen suunnitellut alustavan käskykannan tälle pienelle kasibittiselle RISC-ytimelleni. Homma ei ole vielä missään nimessä valmis mutta ajattelin jo ruveta tutkiskelemaan minkälainen savotta olisi muokata C-kääntäjä tälläiselle täysin omalle arkkitehtuurille? Ajattelin itse koodata assemblerin, koska se on yksinkertainen homma. Olemme inssityön ohjaajan kanssa alustavasti suunnitelleet että prosessoria tultaisiin käyttämään opetuskäytössä meillä koululla mutta että siitä saisi jotain hyödyllisempääkin irti kuin LED-vilkuttelua niin sille pitää olla toimiva C-kääntäjä.

Onko olemassa valmiiksi C-kääntäjiä jotka on tehty helposti muutettaviksi uusille arkkitehtuureille? Kokonaan uuden C-kääntäjän ohjelmoiminen ei tule kysymykseen koska se on aivan liian suuri työ. Prosessorini käskykanta on verrattain yksinkertainen, käskyjä on yhteensä noin 30 joista suurin osa hyppy-/haarautumiskäskyjä. Ehkä suurin ero perinteiseen IA-32/x86 kääntäjään on se, että kaikki operaatiot toimivat ainoastaan rekistereistä ja vain kahdella käskyllä on kyky lukea/kirjoittaa muistista tietoa rekistereihin (LD, load ja ST, store).
schedler 12:02 27.1.10 
Kenties lcc saattaisi vastata tarkoitustasi?
Entropia 11:11 29.1.10 
Pitääpä tutkia tuota lcc:tä. Entä onko gcc paha portata uudelle arkkitehtuurille? Olisi mukava saada liukulukutuki mukaan touhuun vaikka se onkin tappavan hidasta ilman käytännön toteutusta. gcc:stä muistaakseni löytyy valmiina joku GNU softfloat-kirjasto?
Torak 18:09 5.2.10 
No tuli mieleen että mikrokontrolleri maailmasta WinAVR on open sourcea. Kyseinen ympäristöhän generoi koodia Atmelin AVR RISC sarjalle. AVR käyttää GCC:tä pohjana. Ei toimi vistassa.
http://winavr.sourceforge.net/

Sitten tulee mieleen SDCC - Small Device C Compiler joka tekee koodia Intel 8051, Maxim 80DS390, Zilog Z80, 68HC08 piireille. Ei kokemusta.
http://sdcc.sourceforge.net/

Kannattaneen lukaista myös aiheita PicoBlaze:n ympäriltä: http://en.wikipedia.org/wiki/PicoBlaze

Valmiita FPGA-ytimiä löytyy tuolta: http://www.opencores.org/


Entropia 17:46 10.2.10 
PicoBlazesta on oma kohtakin inssityössäni, eli sitä on kyllä lueskeltu. Valmista ydintä en halua koska tarkoituksena on nimenomaan tehdä oma. Tanenbaumin The Amsterdam Compiler Kit vaikuttaa myös lupaavalta.
peran 22:48 27.2.10 
Liukulukutukea ajatellen tässä olisi hyvä kirjasto niille. Tosin tehty javalla, mutta kuitenkin. Siitä ei liene mahdotonta ottaa matematiikkaa omaan projektiin.

http://real-java.sourceforge.net/Real.html