diff --git a/neorv32/sw/common/crt0.S.o b/neorv32/sw/common/crt0.S.o index 933035eb2..35b71517c 100644 Binary files a/neorv32/sw/common/crt0.S.o and b/neorv32/sw/common/crt0.S.o differ diff --git a/neorv32/sw/example/demo_blink_led/neorv32_exe.bin b/neorv32/sw/example/demo_blink_led/neorv32_exe.bin new file mode 100644 index 000000000..7527fa73a Binary files /dev/null and b/neorv32/sw/example/demo_blink_led/neorv32_exe.bin differ diff --git a/neorv32/sw/example/demo_gptmr/main.bin b/neorv32/sw/example/demo_gptmr/main.bin new file mode 100644 index 000000000..1f1fc2a5b Binary files /dev/null and b/neorv32/sw/example/demo_gptmr/main.bin differ diff --git a/neorv32/sw/example/demo_gptmr/main.c.o b/neorv32/sw/example/demo_gptmr/main.c.o new file mode 100644 index 000000000..5ba3c02db Binary files /dev/null and b/neorv32/sw/example/demo_gptmr/main.c.o differ diff --git a/neorv32/sw/example/demo_gptmr/main.elf b/neorv32/sw/example/demo_gptmr/main.elf new file mode 100755 index 000000000..f3d948763 Binary files /dev/null and b/neorv32/sw/example/demo_gptmr/main.elf differ diff --git a/neorv32/sw/example/demo_gptmr/neorv32_exe.bin b/neorv32/sw/example/demo_gptmr/neorv32_exe.bin new file mode 100644 index 000000000..4f4f1b4d6 Binary files /dev/null and b/neorv32/sw/example/demo_gptmr/neorv32_exe.bin differ diff --git a/neorv32/sw/example/dhrystone/dhry_1.c.o b/neorv32/sw/example/dhrystone/dhry_1.c.o new file mode 100644 index 000000000..c1db33718 Binary files /dev/null and b/neorv32/sw/example/dhrystone/dhry_1.c.o differ diff --git a/neorv32/sw/example/dhrystone/dhry_2.c.o b/neorv32/sw/example/dhrystone/dhry_2.c.o new file mode 100644 index 000000000..4d11bb66c Binary files /dev/null and b/neorv32/sw/example/dhrystone/dhry_2.c.o differ diff --git a/neorv32/sw/example/dhrystone/main.bin b/neorv32/sw/example/dhrystone/main.bin new file mode 100644 index 000000000..a9c986456 Binary files /dev/null and b/neorv32/sw/example/dhrystone/main.bin differ diff --git a/neorv32/sw/example/dhrystone/main.elf b/neorv32/sw/example/dhrystone/main.elf new file mode 100755 index 000000000..e74ece083 Binary files /dev/null and b/neorv32/sw/example/dhrystone/main.elf differ diff --git a/neorv32/sw/example/dhrystone/neorv32_exe.bin b/neorv32/sw/example/dhrystone/neorv32_exe.bin new file mode 100644 index 000000000..86d85b6e7 Binary files /dev/null and b/neorv32/sw/example/dhrystone/neorv32_exe.bin differ diff --git a/neorv32/sw/example/hardware_info/main.bin b/neorv32/sw/example/hardware_info/main.bin new file mode 100644 index 000000000..ff71bdd50 Binary files /dev/null and b/neorv32/sw/example/hardware_info/main.bin differ diff --git a/neorv32/sw/example/hardware_info/main.c.o b/neorv32/sw/example/hardware_info/main.c.o new file mode 100644 index 000000000..0e6f5a295 Binary files /dev/null and b/neorv32/sw/example/hardware_info/main.c.o differ diff --git a/neorv32/sw/example/hardware_info/main.elf b/neorv32/sw/example/hardware_info/main.elf new file mode 100755 index 000000000..b8396fd1e Binary files /dev/null and b/neorv32/sw/example/hardware_info/main.elf differ diff --git a/neorv32/sw/example/hardware_info/neorv32_exe.bin b/neorv32/sw/example/hardware_info/neorv32_exe.bin new file mode 100644 index 000000000..566b6db64 Binary files /dev/null and b/neorv32/sw/example/hardware_info/neorv32_exe.bin differ diff --git a/neorv32/sw/example/hello_world/main.bin b/neorv32/sw/example/hello_world/main.bin new file mode 100644 index 000000000..2e6ccccef Binary files /dev/null and b/neorv32/sw/example/hello_world/main.bin differ diff --git a/neorv32/sw/example/hello_world/main.c.o b/neorv32/sw/example/hello_world/main.c.o new file mode 100644 index 000000000..1ad8bfc2f Binary files /dev/null and b/neorv32/sw/example/hello_world/main.c.o differ diff --git a/neorv32/sw/example/hello_world/main.elf b/neorv32/sw/example/hello_world/main.elf new file mode 100755 index 000000000..39d0178ca Binary files /dev/null and b/neorv32/sw/example/hello_world/main.elf differ diff --git a/neorv32/sw/example/hello_world/neorv32_exe.bin b/neorv32/sw/example/hello_world/neorv32_exe.bin new file mode 100644 index 000000000..64c762c7b Binary files /dev/null and b/neorv32/sw/example/hello_world/neorv32_exe.bin differ diff --git a/neorv32/sw/image_gen/image_gen b/neorv32/sw/image_gen/image_gen index 6abcd9bf3..6387d77e0 100755 Binary files a/neorv32/sw/image_gen/image_gen and b/neorv32/sw/image_gen/image_gen differ diff --git a/neorv32/sw/lib/source/neorv32_cfs.c.o b/neorv32/sw/lib/source/neorv32_cfs.c.o index a248829ef..617d7e3a9 100644 Binary files a/neorv32/sw/lib/source/neorv32_cfs.c.o and b/neorv32/sw/lib/source/neorv32_cfs.c.o differ diff --git a/neorv32/sw/lib/source/neorv32_cpu.c.o b/neorv32/sw/lib/source/neorv32_cpu.c.o index d90098bdd..7ab7d44f7 100644 Binary files a/neorv32/sw/lib/source/neorv32_cpu.c.o and b/neorv32/sw/lib/source/neorv32_cpu.c.o differ diff --git a/neorv32/sw/lib/source/neorv32_cpu_cfu.c.o b/neorv32/sw/lib/source/neorv32_cpu_cfu.c.o index 163e2c5d0..f8309f279 100644 Binary files a/neorv32/sw/lib/source/neorv32_cpu_cfu.c.o and b/neorv32/sw/lib/source/neorv32_cpu_cfu.c.o differ diff --git a/neorv32/sw/lib/source/neorv32_gpio.c.o b/neorv32/sw/lib/source/neorv32_gpio.c.o index 7ee44ac13..c47847fa1 100644 Binary files a/neorv32/sw/lib/source/neorv32_gpio.c.o and b/neorv32/sw/lib/source/neorv32_gpio.c.o differ diff --git a/neorv32/sw/lib/source/neorv32_gptmr.c.o b/neorv32/sw/lib/source/neorv32_gptmr.c.o index 2df6a5a17..e968370c6 100644 Binary files a/neorv32/sw/lib/source/neorv32_gptmr.c.o and b/neorv32/sw/lib/source/neorv32_gptmr.c.o differ diff --git a/neorv32/sw/lib/source/neorv32_mtime.c.o b/neorv32/sw/lib/source/neorv32_mtime.c.o index 839551507..d93e97f33 100644 Binary files a/neorv32/sw/lib/source/neorv32_mtime.c.o and b/neorv32/sw/lib/source/neorv32_mtime.c.o differ diff --git a/neorv32/sw/lib/source/neorv32_neoled.c.o b/neorv32/sw/lib/source/neorv32_neoled.c.o index a1935eef6..fe996863d 100644 Binary files a/neorv32/sw/lib/source/neorv32_neoled.c.o and b/neorv32/sw/lib/source/neorv32_neoled.c.o differ diff --git a/neorv32/sw/lib/source/neorv32_onewire.c.o b/neorv32/sw/lib/source/neorv32_onewire.c.o index e95f971e3..f154944fa 100644 Binary files a/neorv32/sw/lib/source/neorv32_onewire.c.o and b/neorv32/sw/lib/source/neorv32_onewire.c.o differ diff --git a/neorv32/sw/lib/source/neorv32_pwm.c.o b/neorv32/sw/lib/source/neorv32_pwm.c.o index 2dafb4811..e7258b28d 100644 Binary files a/neorv32/sw/lib/source/neorv32_pwm.c.o and b/neorv32/sw/lib/source/neorv32_pwm.c.o differ diff --git a/neorv32/sw/lib/source/neorv32_rte.c.o b/neorv32/sw/lib/source/neorv32_rte.c.o index 2252b3261..2bac2ed20 100644 Binary files a/neorv32/sw/lib/source/neorv32_rte.c.o and b/neorv32/sw/lib/source/neorv32_rte.c.o differ diff --git a/neorv32/sw/lib/source/neorv32_slink.c.o b/neorv32/sw/lib/source/neorv32_slink.c.o index c36d95fe1..3569c37c0 100644 Binary files a/neorv32/sw/lib/source/neorv32_slink.c.o and b/neorv32/sw/lib/source/neorv32_slink.c.o differ diff --git a/neorv32/sw/lib/source/neorv32_spi.c.o b/neorv32/sw/lib/source/neorv32_spi.c.o index 9c37dc50d..cdb20b85f 100644 Binary files a/neorv32/sw/lib/source/neorv32_spi.c.o and b/neorv32/sw/lib/source/neorv32_spi.c.o differ diff --git a/neorv32/sw/lib/source/neorv32_trng.c.o b/neorv32/sw/lib/source/neorv32_trng.c.o index b54576928..0d471416b 100644 Binary files a/neorv32/sw/lib/source/neorv32_trng.c.o and b/neorv32/sw/lib/source/neorv32_trng.c.o differ diff --git a/neorv32/sw/lib/source/neorv32_twi.c.o b/neorv32/sw/lib/source/neorv32_twi.c.o index 754375b9b..09a76dfb7 100644 Binary files a/neorv32/sw/lib/source/neorv32_twi.c.o and b/neorv32/sw/lib/source/neorv32_twi.c.o differ diff --git a/neorv32/sw/lib/source/neorv32_uart.c.o b/neorv32/sw/lib/source/neorv32_uart.c.o index 859e46f87..a14e3d545 100644 Binary files a/neorv32/sw/lib/source/neorv32_uart.c.o and b/neorv32/sw/lib/source/neorv32_uart.c.o differ diff --git a/neorv32/sw/lib/source/neorv32_wdt.c.o b/neorv32/sw/lib/source/neorv32_wdt.c.o index e7e81af40..1c2b2c45e 100644 Binary files a/neorv32/sw/lib/source/neorv32_wdt.c.o and b/neorv32/sw/lib/source/neorv32_wdt.c.o differ diff --git a/neorv32/sw/lib/source/neorv32_xip.c.o b/neorv32/sw/lib/source/neorv32_xip.c.o index 455e61410..11510646b 100644 Binary files a/neorv32/sw/lib/source/neorv32_xip.c.o and b/neorv32/sw/lib/source/neorv32_xip.c.o differ diff --git a/neorv32/sw/lib/source/neorv32_xirq.c.o b/neorv32/sw/lib/source/neorv32_xirq.c.o index 7ff8a2e05..2eb234f76 100644 Binary files a/neorv32/sw/lib/source/neorv32_xirq.c.o and b/neorv32/sw/lib/source/neorv32_xirq.c.o differ diff --git a/neorv32/sw/lib/source/syscalls.c.o b/neorv32/sw/lib/source/syscalls.c.o index 325f9515f..219ed5658 100644 Binary files a/neorv32/sw/lib/source/syscalls.c.o and b/neorv32/sw/lib/source/syscalls.c.o differ diff --git a/readme.md b/readme.md index ba5d2454b..4e1a03338 100644 --- a/readme.md +++ b/readme.md @@ -5,4 +5,76 @@ https://hedgedoc.auro.re/x2PBnMb4Q3CQg-DRtt6Kkg# ## Contexte -Les architectures récentes associent, dans la même puce, des FPGA et des processeurs pour constituer des SoC (System on Chip). Elles sont composées d’unités optimisées et précâblées pour l’accélération matérielle de certains traitements de données et permettent d’interfacer plusieurs périphériques selon différentes modalités : utilisation d’un processeur matériel intégré ou d’un processeur logiciel (Soft-Core). \ No newline at end of file +Les architectures récentes associent, dans la même puce, des FPGA et des processeurs pour constituer des SoC (System on Chip). Elles sont composées d’unités optimisées et précâblées pour l’accélération matérielle de certains traitements de données et permettent d’interfacer plusieurs périphériques selon différentes modalités : utilisation d’un processeur matériel intégré ou d’un processeur logiciel (Soft-Core). + +## RISC-V + +On utilise pour ce projet, l'implémentation RISC-V neorv32 + +### Hardware + +<< NEORV32 Processor Configuration >> + +====== Core ====== +Is simulation: no +Clock speed: 50000000 Hz +On-chip debugger: no +Custom ID: 0x00000000 +Hart ID: 0x00000000 +Vendor ID: 0x00000000 +Architecture ID: 0x00000013 +Implementation ID: 0x01080106 (v1.8.1.6) +Architecture: rv32-little +ISA extensions: C I M X Zicsr Zicntr +Tuning options: +Phys. Mem. Prot.: not implemented +HPM Counters: not implemented + +====== Memory ====== +Boot configuration: Boot via Bootloader +Instr. base address: 0x00000000 +Internal IMEM: yes, 16384 bytes +Data base address: 0x80000000 +Internal DMEM: yes, 8192 bytes +Internal i-cache: no +Ext. bus interface: no +Ext. bus endianness: little + +====== Peripherals ====== +[x] GPIO +[x] MTIME +[x] UART0 +[ ] UART1 +[ ] SPI +[ ] TWI +[ ] PWM +[ ] WDT +[ ] TRNG +[ ] CFS +[ ] SLINK +[ ] NEOLED +[ ] XIRQ +[ ] GPTMR +[ ] XIP +[ ] ONEWIRE + + +### Software + +Print sur le série : +``` +neorv32_uart0_puts("Hello world! :)\n"); +``` + +Mesures : +``` +Begin_Time = (long)neorv32_mtime_get_time(); +End_Time = (long)neorv32_mtime_get_time(); +User_Time = End_Time - Begin_Time; +uint32_t dhry_per_sec = (uint32_t)(NEORV32_SYSINFO.CLK / (User_Time / Number_Of_Runs)); + +neorv32_uart0_printf("NEORV32: Total cycles: %u\n", (uint32_t)User_Time); +neorv32_uart0_printf("NEORV32: Cycles per second: %u\n", (uint32_t)NEORV32_SYSINFO.CLK); +neorv32_uart0_printf("NEORV32: DMIPS/s: %u\n", (uint32_t)dhry_per_sec); + +``` \ No newline at end of file