aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/vivado
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2015-07-16 11:10:02 +0200
committerClifford Wolf <clifford@clifford.at>2015-07-16 11:11:45 +0200
commitd8c3157bf889f3d57f014805417172d7f227b5fc (patch)
tree51731c74ac38ddf25f970708a364b22a6ec025da /scripts/vivado
parent0249d538fa61a5436b0e1f881b21d1c60960a32f (diff)
downloadpicorv32-d8c3157bf889f3d57f014805417172d7f227b5fc.tar.gz
picorv32-d8c3157bf889f3d57f014805417172d7f227b5fc.zip
Improved firmware for vivado "system" example
Diffstat (limited to 'scripts/vivado')
-rw-r--r--scripts/vivado/Makefile6
-rw-r--r--scripts/vivado/firmware.c31
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);
}