- apal blogja
- A hozzászóláshoz be kell jelentkezni
Hozzászólások
git-svn to the rescue
- A hozzászóláshoz be kell jelentkezni
Csak egy sima tgz-t kellene elhelyeznem ottan... annyira aktivan nem akarom hasznalni, mondjuk ugy. Az svn tud symlink-eket kezelni?
- A hozzászóláshoz be kell jelentkezni
Mit figyelsz vele?
- A hozzászóláshoz be kell jelentkezni
Egyelore meg semmit ;) De rajta van a listan az eles alkalmazas is...!
- A hozzászóláshoz be kell jelentkezni
Nagyon izgalmasnak látszik, de pár szóban el tudod mondani, hogy mi ez, és hogy enni vagy inni kell? És jövök egy pár piával, nem felejtettem el.
- A hozzászóláshoz be kell jelentkezni
A cel az volt hogy legyen egy olyan AVR proci amit a szokasos toolchainekkel (avr-gcc, ...) lehet 1:1ben, mindenfele megkotes nelkul C-ben programozgatnunk es ezzel parhuzamosan a periferiait is ugy valogathassuk ossze ahogy eppen szukseges. FPGA mar kell ehhez, meg meg van par megoldando dolog (leginkabb a self-programming, ugy hogy a teljes architekturat es a periferiakat is lehessen frissiteni tavolrol), de alakul. Meg persze jo sokat is lehet ebbol tanulni :)
- A hozzászóláshoz be kell jelentkezni
Ügyes projekt. Írjál róla időnként.
Egyébként ha most valamivel foglalkoznék, az nem az AVR lenne, hanem a RISC-V. Nagyon igéretes, jövőbemutató architektúra, az utasításkészlete pedig díjat nyert.
Az utasításkészlete nem monolitikus, hanem opciók mentén bővíthető, függően attól milyen célfeladatra szánják a legyártandó eszközt.
Az alábbi doksiból az RV32I integeres utasításkészletű alap és az RV32E érdekes. Utóbbit embedded-célokra ajánlják. Itt leginkább regiszterszám felezéssel "olcsósítottak". Ezekre a GCC fordít.
Lásd még: https://github.com/riscv/riscv-isa-manual/releases/download/draft-20200…
Ábrás ízelítő az utasításfelépítéséből: http://www.maxvytech.com/images/RV32I-11-2018.pdf
- A hozzászóláshoz be kell jelentkezni
Igenigen, a RISC-V-t neztem en is mar hogy azt is erdemes lehet megnezni. Ugy latom a projekt honlaprol hogy ehhez nincs "referencia implementacio", de valamelyik opencores-os es/vagy egyeb nyilt verzional lattam utalast arra hogy olyan 2-2.5k LC-bol megoldhato az is. Ami mar elegge impressziv.
Most majd a 4-stage pipeline-os implementaciot nezem meg ennel az AVR architekturanal egy kicsit jobban. Akkor mar elegge borulni fog ez a klasszikus "egy utasitas hany oraciklus" dolog, viszont osszessegeben 2x-3x gyorsabb is lehet becsleseim szerint. Illetve igen, tovabbi periferiakat is kell irni :)
- A hozzászóláshoz be kell jelentkezni
Esetleg ez még segít: https://riscv.org/risc-v-cores/
Különböző implementációk a gyorstól a kaputakarékosig.
- A hozzászóláshoz be kell jelentkezni
Koszi, ezek tenyleg jok!
Kozben forditok riscv32e-gcc-t is. Hatha sikerul 3ik nekifutasra. No igen, amig ezek nincsenek igy csomagban, egyszeruen kezelheto modon... addig nem lesz egyszeru az elet. Az AVR-nek ez az elonye hogy tenyleg elterjedt, alapbol tudja a toolchain az osszes architekturat, es nagyon jol ossze lehet parositani a rtl/synth-et a gcc-hasznalattal.
- A hozzászóláshoz be kell jelentkezni
https://wiki.debian.org/RISC-V
ubuntu 20.04:~$ apt-cache search riscv | grep gcc-10 | grep cross
gcc-10-riscv64-linux-gnu - GNU C compiler (cross compiler for riscv64 architecture)
libgcc-10-dev-riscv64-cross - GCC support library (development files)
debian-buster:~$ apt-cache search riscv | grep gcc | grep cross
libgcc-8-dev-riscv64-cross - GCC support library (development files)
libgcc1-riscv64-cross - GCC support library
Kérdés, hogy ez a gcc képes-e 32 bites ISA-ra fordítani?
Úgy nézem hogy nem.
./configure --prefix=/opt/riscv --with-arch=rv32i Viszont arra jó, hogy a disztróból lerántsd a forráskódot $ apt-get source ... és a debian/rules -ben módosítani hogy rv32i-re fordítson, továbbá csomagnév váltás és már fordulhat is az új debian csomag gcc-riscv32-... néven.
- A hozzászóláshoz be kell jelentkezni
Igen, erre jutottam kozben debian/buster alatt is... szoval mindjart kiderul hogy a git-bol klonozott verzio megeszi-e a riscv32e + ilp32-t arch/abi kombinaciot.
- A hozzászóláshoz be kell jelentkezni
Kozben lefordult a gcc, tudok is forditani, de a linkeles elakad:
$ riscv32-unknown-linux-gnu-gcc -march=rv32i -mabi=ilp32 -c x.c
$ riscv32-unknown-linux-gnu-gcc -march=rv32i -mabi=ilp32 -o x.elf x.o
/usr/local/lib/gcc/riscv32-unknown-linux-gnu/9.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: /usr/local/lib/gcc/riscv32-unknown-linux-gnu/9.2.0/crti.o: can't link RVE with other target
/usr/local/lib/gcc/riscv32-unknown-linux-gnu/9.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: failed to merge target specific data of file /usr/local/lib/gcc/riscv32-unknown-linux-gnu/9.2.0/crti.o
/usr/local/lib/gcc/riscv32-unknown-linux-gnu/9.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: /usr/local/lib/gcc/riscv32-unknown-linux-gnu/9.2.0/crtbegin.o: can't link RVE with other target
/usr/local/lib/gcc/riscv32-unknown-linux-gnu/9.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: failed to merge target specific data of file /usr/local/lib/gcc/riscv32-unknown-linux-gnu/9.2.0/crtbegin.o
/usr/local/lib/gcc/riscv32-unknown-linux-gnu/9.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: /usr/local/lib/gcc/riscv32-unknown-linux-gnu/9.2.0/crtend.o: can't link RVE with other target
/usr/local/lib/gcc/riscv32-unknown-linux-gnu/9.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: failed to merge target specific data of file /usr/local/lib/gcc/riscv32-unknown-linux-gnu/9.2.0/crtend.o
/usr/local/lib/gcc/riscv32-unknown-linux-gnu/9.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: /usr/local/lib/gcc/riscv32-unknown-linux-gnu/9.2.0/crtn.o: can't link RVE with other target
/usr/local/lib/gcc/riscv32-unknown-linux-gnu/9.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: failed to merge target specific data of file /usr/local/lib/gcc/riscv32-unknown-linux-gnu/9.2.0/crtn.o
collect2: error: ld returned 1 exit status
Ahol:
#include <stdint.h>
#define PORT0 *(volatile uint32_t *)(0x1000000)
#define PORT1 *(volatile uint32_t *)(0x1000004)
int main(void)
{
uint32_t a,b;
a=PORT0;
PORT1=a+100;
return(0);
}
Keres hogy mi hianyzik neki. Memoriaterkep? Elvileg vannak alapertelmezett linker szkriptek, meg akkor inkabb definialatlan szimbolumokra panaszkodik...
- A hozzászóláshoz be kell jelentkezni