diff options
author | Clifford Wolf <clifford@clifford.at> | 2015-07-16 11:10:02 +0200 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2015-07-16 11:11:45 +0200 |
commit | d8c3157bf889f3d57f014805417172d7f227b5fc (patch) | |
tree | 51731c74ac38ddf25f970708a364b22a6ec025da /scripts/vivado | |
parent | 0249d538fa61a5436b0e1f881b21d1c60960a32f (diff) | |
download | picorv32-d8c3157bf889f3d57f014805417172d7f227b5fc.tar.gz picorv32-d8c3157bf889f3d57f014805417172d7f227b5fc.zip |
Improved firmware for vivado "system" example
Diffstat (limited to 'scripts/vivado')
-rw-r--r-- | scripts/vivado/Makefile | 6 | ||||
-rw-r--r-- | scripts/vivado/firmware.c | 31 |
2 files changed, 33 insertions, 4 deletions
diff --git a/scripts/vivado/Makefile b/scripts/vivado/Makefile index 3b46bf3..71de1a9 100644 --- a/scripts/vivado/Makefile +++ b/scripts/vivado/Makefile @@ -38,9 +38,9 @@ sim_system: firmware.hex: firmware.S firmware.c firmware.lds $(TOOLCHAIN_PREFIX)gcc -Os -m32 -ffreestanding -nostdlib -o firmware.elf firmware.S firmware.c \ - -Wl,-Bstatic,-T,firmware.lds,-Map,firmware.map,--strip-debug -lgcc + --std=gnu99 -Wl,-Bstatic,-T,firmware.lds,-Map,firmware.map,--strip-debug -lgcc $(TOOLCHAIN_PREFIX)objcopy -O binary firmware.elf firmware.bin - python3 ../../firmware/makehex.py firmware.bin > firmware.hex + python3 ../../firmware/makehex.py firmware.bin 4096 > firmware.hex tab_%/results.txt: bash tabtest.sh $@ @@ -58,5 +58,5 @@ table.txt: clean: rm -rf .Xil/ firmware.bin firmware.elf firmware.hex firmware.map synth_*.log rm -rf synth_*.mmi synth_*.bit synth_system.v table.txt tab_*/ webtalk.jou - rm -rf webtalk.log webtalk_*.jou webtalk_*.log xelab.* xsim.* xvlog.* + rm -rf webtalk.log webtalk_*.jou webtalk_*.log xelab.* xsim[._]* xvlog.* diff --git a/scripts/vivado/firmware.c b/scripts/vivado/firmware.c index 95aa8de..6c62169 100644 --- a/scripts/vivado/firmware.c +++ b/scripts/vivado/firmware.c @@ -8,7 +8,36 @@ void puts(const char *s) while (*s) putc(*s++); } +void *memcpy(void *dest, const void *src, int n) +{ + while (n) { + n--; + ((char*)dest)[n] = ((char*)src)[n]; + } + return dest; +} + void main() { - puts("Hello World!\n"); + char message[] = "$Uryyb+Jbeyq!+Vs+lbh+pna+ernq+guvf+zrffntr+gura$gur+CvpbEI32+PCH" + "+frrzf+gb+or+jbexvat+whfg+svar.$$++++++++++++++++GRFG+CNFFRQ!$$"; + for (int i = 0; message[i]; i++) + switch (message[i]) + { + case 'a' ... 'm': + case 'A' ... 'M': + message[i] += 13; + break; + case 'n' ... 'z': + case 'N' ... 'Z': + message[i] -= 13; + break; + case '$': + message[i] = '\n'; + break; + case '+': + message[i] = ' '; + break; + } + puts(message); } |