From 005de209c6d5ccd1ef9dc48d2ef8d7c55ff05266 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 1 Sep 2020 22:43:50 +0200 Subject: [PATCH] hello_world: debug print of the gitinfo syscon register MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Dan HorĂ¡k --- hello_world/hello_world.bin | Bin 8328 -> 8328 bytes hello_world/hello_world.c | 12 ++ hello_world/hello_world.elf | Bin 89464 -> 90200 bytes hello_world/hello_world.hex | 218 ++++++++++++++++++------------------ 4 files changed, 121 insertions(+), 109 deletions(-) diff --git a/hello_world/hello_world.bin b/hello_world/hello_world.bin index abd7cd0148087df8dbdb2680663f1630eaab3057..1e7dfcbd83fcf0d14bb1d07d09e9f90f978e1277 100755 GIT binary patch delta 616 zcmY*VF>ljA7=3o5(1sKoQc$8odnp}asfbD}wt|aY6hYmgAXRh?L={4;42hCp6J>BW zT2Dv_I#+-yu`;Ce55SJ9R7`~h2?nDSKE87@lu!En?%ut7-#Z6R;Oq*``$2pChz|Sc z_HNt(RRyS_L5V(7A<|Xc22hFHe_(7XgZ-NXn&1BRJPqBFIQ6wLhLPebp4n@t8bk-B zBMfu}95mEJYJ8!#eRs&!CcWlDvbwsEq_sU@DIPG6>A4<@Qm7bjhr&-p%kylw%g6y_ zDZa`d*w?YWXz;%B+@INy82F23xUJRF{}IK^%Tn}*mQ$E2rqQ;?*}cqewV(T*#V998 zTdvr-HuMBGT*V!rDK}C`MT~ zT4y)TqyD}KSd!bi>9#s(JCau*Opf?M-bwSBPr{UUr1#D((F**Tqjyeb8j(AkCaj#$Ih{Uu#flwznf!T~Xz;^k=YWl?aq@6I z`*@nOBgcK*C;GsM@|c5H>T9KZW~P$mAW;9~|HIz`42(Z6{#X3*m65@Nfq@|bj2n_HVxfFb28eitbbXB-TXKjU z+yC&rP%&Nxd7TIUn;f_p5-e6i#V-8+?+r8q1Q;6_fdqqt4Z{K_3m`wCqe00ML{DgN z0@9jnoeT_|ItG&q1%)RGCJ3O(c23R_oFi%T@4q(}gPaBrLz4q9&>Bae@fDvB*IQ0j z6cXjlssWm2u}(s(7HHCBXCY-t23rLNjzl1?T*Jap^U95(mf?VcEdv|Jj*IWjURSc3HN0Oc4M z)MtX!H~d$y1ew1oT%mSCgVIYd+n)ilN+ z{K<~O67nFIGPuwD|DVHBLO~PgGEImtfTk!gH26&p5E7LDyBrjZDmuU*1cqRzKFBu{ zCNCAvmIlf)fUwP<|NjesG=m$TfuLjEd|*6G))$eLtO1I5fW(170EmG`Fnj=twM #include "console.h" +#include "io.h" +#include "microwatt_soc.h" static char mw_logo[] = @@ -17,10 +19,20 @@ static char mw_logo[] = int main(void) { + uint64_t gitinfo; + uint8_t c; + console_init(); puts(mw_logo); + gitinfo = readq(SYSCON_BASE + SYS_REG_GIT_INFO); + for (int i = 0; i < 16; i++) { + c = gitinfo % 16; + if (c >= 10) putchar(0x61 + c - 10); else putchar(0x30 + c); + gitinfo >>= 4; + } + while (1) { unsigned char c = getchar(); putchar(c); diff --git a/hello_world/hello_world.elf b/hello_world/hello_world.elf index 45f5a3d0f5c2425b23c174a7340300d6082022a9..ae38f10dd20bbeace01485947b450662fe1e576d 100755 GIT binary patch literal 90200 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