Hat, jo kerdesek ezek. A "minimal" nalam abszolute azt jelentene hogy letezik konnyen felroffentheto GCC hozza, amivel egyatalan el tudunk indulni valos alkalmazasok iranyaba, de a CPU maga + interfacing valoban annyira egyszeru hogy konnyen es erthetoen lehet implementalni. Kb 4 iranyt talaltam eddig amin erdemes lehet elindulnunk szerintem (szigoruan szubjektiven);
- LM8, ez a Lattice Mico8 projektje, ami kimondottan Lattice FPGA-khoz van, van hozza GCC, a Lattice Diamond alatt elerheto a CPU forrasa, es elegge kicsi (allitolag parszaz LC-bol osszedrotozhato). Vannak benne furcsasagok, pl 18 bit szeles utasitaskeszlet, gondolom Harvard architektura. Feltettem, tok jol megy, de eleszteni (valos /Lattice/ FPGA-n) meg nem jutottam el
- AVR(2,4,3,5). Ez mar tobbet eszik (2000 LC korul), de meg boven a "minimal" kategora. Elonye hogy romma van dokumentalva, tele van vele az internet (lasd: Arduino es tarsai), nagyon sok library van hozza meg komplex projektek. Az opencores-on is sokfele implementacio van (lasd meg: ez itt a reklam helye).
- ARMv6-M. Ez elegge hasonlit az AVR-hez sok szempontbol, de a Harvard <-> Neumann kulonbsegek miatt azert nehezkesebb az implementacio, plusz itt mar jobban bele kell melyedni az instruction pipelining-be hogy hatekony is legyen a processzor. Meg persze ez megtobbet eszik a relative sok regiszter es a 32-bites muveletek miatt.
- RISC-V: tkp ez is jo lehet, de ez olyan szempontbol kakukktojas hogy itt meg egy normalis gcc-t sem birtam ugy osszeloni hogy pl egy rv32e architekturara optimalizaljon.
Ezeken kivul nem igazan latok mas olyan projektet amin erdemes lehet elindulni ha az ember tenyleg azt tuzi ki hogy magasszintu toolchain-ekkel es letezo libc/libgcc-vel dolgozzunk egyutt. A masik oldalrol megkozelitve viszont a customasm projekt az az ami nagyon jonak tunik ha egy egyszeru minimal CPU-t szeretnenk irni es nem akarunk azzal foglalatoskodni hogy fejlesszunk ra sajat toolchain-t. Ugyan ez csak asm, de abbol viszonylag maximalis. Ami az elonye az a hatranya is egyben: rogton binarissa fordit. Igy ha egy egyszeru kodot akar az ember csinalni, akarcsak assembly-ben is, akkor nem kell vacakolnunk a startup (crt0) rutinokkal, linker szkriptekkel, memoriaterkepezessel, architekturalis baszmanyokkal (azaz egy *.elf formaval hogyan is hozzuk ossze a Harvard-felepitest), stb.