From 4dddf8ef2a7284891cdb273a6f0fd25db37099e2 Mon Sep 17 00:00:00 2001 From: cheapie Date: Wed, 17 Jun 2026 05:07:47 -0500 Subject: Add UK version of railroad crossing Also fix some Makefile issues --- c/rrxing/Makefile | 50 +++++++++++++++++++++++++--------- c/rrxing/rrxing-de.elf | Bin 0 -> 7272 bytes c/rrxing/rrxing-de.hex | 69 +++++++++++++++++++++++++++++++++++++++++++++++ c/rrxing/rrxing-de.o | Bin 0 -> 7320 bytes c/rrxing/rrxing-uk.elf | Bin 0 -> 7320 bytes c/rrxing/rrxing-uk.hex | 72 +++++++++++++++++++++++++++++++++++++++++++++++++ c/rrxing/rrxing-uk.o | Bin 0 -> 7680 bytes c/rrxing/rrxing.c | 32 +++++++++++++++++++++- c/rrxing/rrxing.elf | Bin 7292 -> 0 bytes c/rrxing/rrxing.hex | 70 ----------------------------------------------- c/rrxing/rrxing.o | Bin 7340 -> 0 bytes 11 files changed, 210 insertions(+), 83 deletions(-) create mode 100755 c/rrxing/rrxing-de.elf create mode 100644 c/rrxing/rrxing-de.hex create mode 100644 c/rrxing/rrxing-de.o create mode 100755 c/rrxing/rrxing-uk.elf create mode 100644 c/rrxing/rrxing-uk.hex create mode 100644 c/rrxing/rrxing-uk.o delete mode 100755 c/rrxing/rrxing.elf delete mode 100644 c/rrxing/rrxing.hex delete mode 100644 c/rrxing/rrxing.o (limited to 'c/rrxing') diff --git a/c/rrxing/Makefile b/c/rrxing/Makefile index 96dba5c..0bc0608 100644 --- a/c/rrxing/Makefile +++ b/c/rrxing/Makefile @@ -1,20 +1,46 @@ -all: rrxing.hex +CC ?= clang +CFLAGS_MARCH ?= -march=rv32imacb_zicntr_zicond_zicsr_zifencei_zihintpause_zilsd_zclsd_zabha_zacas_zbkb_zbkx_zcb_zcmp_zcmt +CFLAGS_OPT ?= -O3 +CFLAGS ?= ${CFLAGS_MARCH} ${CFLAGS_OPT} -rrxing.o: rrxing.c - clang -target riscv32-none-elf -I../rvcontroller-libraries -march=rv32imacb_zicntr_zicond_zicsr_zifencei_zihintpause_zilsd_zclsd_zabha_zacas_zbkb_zbkx_zcb_zcmp_zcmt -ffreestanding -O3 -c -o rrxing.o rrxing.c +ifeq (${CC}, clang) + CC := ${CC} -target riscv32-none-elf +endif -rrxing.elf: ../rvcontroller-libraries/rvcontroller-init.o ../rvcontroller-libraries/rvcontroller-ecalls.o rrxing.o - clang -target riscv32-none-elf -T rvcontroller.ld -nostdlib -nostartfiles -Xlinker --no-warn-rwx-segments -o rrxing.elf ../rvcontroller-libraries/rvcontroller-init.o rrxing.o ../rvcontroller-libraries/rvcontroller-ecalls.o +.PHONY: all dump load-uk load-de clean -dump: rrxing.elf - riscv32-none-elf-objdump -d rrxing.elf +all: rrxing-de.hex rrxing-uk.hex -rrxing.hex: rrxing.elf - riscv32-none-elf-objcopy -O ihex rrxing.elf rrxing.hex +rrxing-de.o: rrxing.c + clang -target riscv32-none-elf -I../rvcontroller-libraries -march=rv32imacb_zicntr_zicond_zicsr_zifencei_zihintpause_zilsd_zclsd_zabha_zacas_zbkb_zbkx_zcb_zcmp_zcmt -ffreestanding -O3 -c -DRRXING_DE -o rrxing-de.o rrxing.c -load: rrxing.hex - bash -c "wl-copy < rrxing.hex" +rrxing-de.elf: ../rvcontroller-libraries/rvcontroller-init.o ../rvcontroller-libraries/rvcontroller-ecalls.o rrxing-de.o + clang -target riscv32-none-elf -T rvcontroller.ld -nostdlib -nostartfiles -Xlinker --no-warn-rwx-segments -o rrxing-de.elf ../rvcontroller-libraries/rvcontroller-init.o rrxing-de.o ../rvcontroller-libraries/rvcontroller-ecalls.o + +dump-de: rrxing-de.elf + riscv32-none-elf-objdump -d rrxing-de.elf + +rrxing-de.hex: rrxing-de.elf + riscv32-none-elf-objcopy -O ihex rrxing-de.elf rrxing-de.hex + +load-de: rrxing-de.hex + bash -c "wl-copy < rrxing-de.hex" + +rrxing-uk.o: rrxing.c + clang -target riscv32-none-elf -I../rvcontroller-libraries -march=rv32imacb_zicntr_zicond_zicsr_zifencei_zihintpause_zilsd_zclsd_zabha_zacas_zbkb_zbkx_zcb_zcmp_zcmt -ffreestanding -O3 -c -DRRXING_UK -o rrxing-uk.o rrxing.c + +rrxing-uk.elf: ../rvcontroller-libraries/rvcontroller-init.o ../rvcontroller-libraries/rvcontroller-ecalls.o rrxing-uk.o + clang -target riscv32-none-elf -T rvcontroller.ld -nostdlib -nostartfiles -Xlinker --no-warn-rwx-segments -o rrxing-uk.elf ../rvcontroller-libraries/rvcontroller-init.o rrxing-uk.o ../rvcontroller-libraries/rvcontroller-ecalls.o + +dump-uk: rrxing-uk.elf + riscv32-none-elf-objdump -d rrxing-uk.elf + +rrxing-uk.hex: rrxing-uk.elf + riscv32-none-elf-objcopy -O ihex rrxing-uk.elf rrxing-uk.hex + +load-uk: rrxing-uk.hex + bash -c "wl-copy < rrxing-uk.hex" clean: - rm -f rrxing.bin rrxing.elf rrxing.o init.o + rm -f rrxing-de.hex rrxing-de.elf rrxing-de.o rrxing-uk.hex rrxing-uk.elf rrxing-uk.o init.o diff --git a/c/rrxing/rrxing-de.elf b/c/rrxing/rrxing-de.elf new file mode 100755 index 0000000..4d3a699 Binary files /dev/null and b/c/rrxing/rrxing-de.elf differ diff --git a/c/rrxing/rrxing-de.hex b/c/rrxing/rrxing-de.hex new file mode 100644 index 0000000..1adf396 --- /dev/null +++ b/c/rrxing/rrxing-de.hex @@ -0,0 +1,69 @@ +:10000000370101007128A948730000008280148123 +:10001000988133E6E60009C685050505E389E6FE15 +:1000200013351600828052B82A84592C2A94492C00 +:10003000E36F85FE52BE8AB8952C25C11304400695 +:1000400093045006130940079309300619A0B92CF0 +:1000500029C5014549240808C1450A86C146A12C85 +:1000600003450101E31585FE03451101E31195FEEA +:1000700003452101E31D25FD03453101E31995FCED +:1000800003454101E31535FD03455101E31125FD0C +:10009000034561014DFD05458ABE05452D2C8ABCF1 +:1000A000FAB813058031F5221305E032DD2213047E +:1000B0000035930560352285ED221309A03593059F +:1000C000F0354A85F92A130A303693058036528571 +:1000D000C92AED2A930B4006130C5006930D4007D6 +:1000E00093043006930C203F130DE03F930A104019 +:1000F0001305B036792A0545F92A13051037512A18 +:10010000752221C50145C12A0808C1450A86C14694 +:100110005D2203450101E31575FF03451101E3115C +:1001200085FF03452101E31DB5FD03453101E319B9 +:1001300085FD03454101E31595FC03455101E3119C +:10014000B5FD034561014DFD21A0054569224DBF67 +:10015000130520383D2A0145BD2A22859305303AF2 +:1001600089221305A03A3522A12A93092500892A5C +:10017000E36F35FF4A859305903B25221305C03B6D +:10018000092A3D2A93092500252AE36F35FF228598 +:100190009305603C39221305A03CE52815229309FC +:1001A0003500392AE36F35FF52859305603DD52828 +:1001B0001305B03DF9282922930945001122E36F68 +:1001C00035FF4A859305F035E9281305703ED120A7 +:1001D000F528BD4909A80545FD280145ED28FD196B +:1001E00013F5F90F3DC913FBF90F66855D205A859C +:1001F00069286A857928E920130B1500D120E36F5F +:1002000065FF6D2069D90145F9200808C1450A86B6 +:10021000C146552003450101E31575FF0345110152 +:10022000E31185FF03452101E31DB5FD03453101C0 +:10023000E31985FD03454101E31595FC0345510193 +:10024000E311B5FD034561014DFD71204120568547 +:100250008920E14913F5F90F59F513056041152877 +:100260005285930580363528130510421D208928B4 +:1002700093092500B120E36F35FF22859305603592 +:100280000D201305B0423120A5B58548730000004C +:1002900082809148730000008280AD4873000000A6 +:1002A0008280930810087300000082809308500831 +:1002B0007300000082809308700873000000828041 +:1002C000732510C08280732500C082809308600867 +:1002D0007300000082800589F32200809392024817 +:1002E000B3E2A20073900280828095487300000000 +:1002F000828093080008730000008280A148730088 +:100300000000828093083008730000008280930808 +:1003100040087300000082804445205261696C727D +:100320006F61642043726F7373696E670A00666F52 +:1003300072205256436F6E74726F6C6C65720A490C +:100340006E697469616C697A696E672048570A0042 +:100350006C69676874004F46460062656C6C006F9C +:10036000666600676174650075700049646C650AB3 +:10037000004C696768747765696768743A204F6EE6 +:100380000A00547261696E20646574656374656403 +:100390000A4C696768747765696768743A204F66C4 +:1003A000660A0059454C4C4F57004C696768743ACF +:1003B0002059656C6C6F770A006F6E0042656C6C3B +:1003C0003A204F6E0A00524544004C696768743AFF +:1003D000205265640A00646F776E00476174653A65 +:1003E00020446F776E0A0042656C6C3A204F666657 +:1003F0000A0054696D656F757420696E2000730A78 +:100400000054696D6520726573657420627920748B +:100410007261696E0A0054696D6564206F75740AB3 +:1004200000476174653A2055700A004C696768742A +:070430003A204F66660A0046 +:00000001FF diff --git a/c/rrxing/rrxing-de.o b/c/rrxing/rrxing-de.o new file mode 100644 index 0000000..913fc5e Binary files /dev/null and b/c/rrxing/rrxing-de.o differ diff --git a/c/rrxing/rrxing-uk.elf b/c/rrxing/rrxing-uk.elf new file mode 100755 index 0000000..f99e369 Binary files /dev/null and b/c/rrxing/rrxing-uk.elf differ diff --git a/c/rrxing/rrxing-uk.hex b/c/rrxing/rrxing-uk.hex new file mode 100644 index 0000000..820875e --- /dev/null +++ b/c/rrxing/rrxing-uk.hex @@ -0,0 +1,72 @@ +:10000000370101007128A948730000008280148123 +:10001000988133E6E60009C685050505E389E6FE15 +:1000200013351600828052B82A84452C2A947524F0 +:10003000E36F85FE52BE8AB8792425C113044006B9 +:1000400093045006130940079309300619A0A52C04 +:1000500029C50145712C0808C1450A86C1468D2C69 +:1000600003450101E31585FE03451101E31195FEEA +:1000700003452101E31D25FD03453101E31995FCED +:1000800003454101E31535FD03455101E31125FD0C +:10009000034561014DFD05458ABE0545912C8ABC8D +:1000A000FAB81305203319241305803401241304EE +:1000B000A036930500372285112413094037930594 +:1000C00090374A85E52A130AD037930520385285A0 +:1000D000F522112C930C4006930450069309400717 +:1000E000930A3006130D8041930D4042930B7042EA +:1000F00013055038652A0545E52A1305B0387D22D9 +:10010000D92221C50145ED220808C1450A86C1460C +:10011000C12203450101E31595FF03451101E311D8 +:1001200095FE03452101E31D35FD03453101E3192A +:1001300095FC03454101E31555FD03455101E311CC +:1001400035FD034561014DFD21A0054555224DBFFB +:100150001305C039A12A0145612A4A859305D03B80 +:10016000B12A1305003C992222859305A03CB922AF +:100170001305103D252A9522130B3500B92AE36F8C +:1001800065FF22859305103F152A1305003E392A85 +:10019000A922130B15009122E36F65FF22859305B9 +:1001A000C03E292A1305503F1122052A130B550082 +:1001B0002D22E36F65FF52859305704001221305E0 +:1001C000C040ED20192A130B4500012AE36F65FF9B +:1001D000192A3D4B09A80545212A0145112A7D1BF5 +:1001E0001375FB0F3DC9137CFB0F6A85C120628527 +:1001F00055286E856528D520130C1500F928E36F66 +:1002000085FFD12069D90145E5200808C1450A8646 +:10021000C1467D2803450101E31595FF0345110102 +:10022000E31195FE03452101E31D35FD0345310131 +:10023000E31995FC03454101E31555FD03455101C3 +:10024000E31135FD034561014DFD5D2069285E85A3 +:10025000B128614B1375FB0F59F51305C043B92045 +:100260004A85930590379928130570448120B5205D +:10027000130B15009D20E36F65FF52859305203811 +:100280003528130520451D208928130B2500B12092 +:10029000E36F65FF2285930500370D201305C045E8 +:1002A0003120B9B585487300000082809148730001 +:1002B00000008280AD48730000008280930810081F +:1002C0007300000082809308500873000000828051 +:1002D00093087008730000008280732510C082802C +:1002E000732500C08280930860087300000082803C +:1002F0000589F322008093920248B3E2A200739032 +:100300000280828095487300000082809308000874 +:10031000730000008280A14873000000828093086F +:1003200030087300000082809308400873000000CA +:100330008280554B205261696C726F6164204372F8 +:100340006F7373696E670A00666F72205256436F4F +:100350006E74726F6C6C65720A496E697469616C57 +:10036000697A696E672048570A006C69676874008B +:100370004F46460062656C6C006F6666006761748C +:10038000650075700049646C650A004C69676874A3 +:100390007765696768743A204F6E0A005472616924 +:1003A0006E2064657465637465640A4C696768747B +:1003B0007765696768743A204F66660A006F6E0059 +:1003C00042656C6C3A204F6E0A0059454C4C4F57B1 +:1003D000004C696768743A2059656C6C6F770A0045 +:1003E0004C696768743A205265640A00464C415370 +:1003F00048524544004C696768743A20466C617302 +:1004000068205265640A00646F776E004761746506 +:100410003A20446F776E0A0054696D656F757420D9 +:10042000696E2000730A0054696D652072657365FA +:100430007420627920747261696E0A0054696D6576 +:1004400064206F75740A0042656C6C3A204F6666D2 +:100450000A00476174653A2055700A004C69676864 +:08046000743A204F66660A00A1 +:00000001FF diff --git a/c/rrxing/rrxing-uk.o b/c/rrxing/rrxing-uk.o new file mode 100644 index 0000000..c095af9 Binary files /dev/null and b/c/rrxing/rrxing-uk.o differ diff --git a/c/rrxing/rrxing.c b/c/rrxing/rrxing.c index e867e8a..3783853 100644 --- a/c/rrxing/rrxing.c +++ b/c/rrxing/rrxing.c @@ -34,7 +34,12 @@ bool checkdetector(void) { } void main() { - printstr("Railroad Crossing\nfor RVController\nInitializing HW\n"); +#ifdef RRXING_DE + printstr("DE Railroad Crossing\n"); +#elif RRXING_UK + printstr("UK Railroad Crossing\n"); +#endif + printstr("for RVController\nInitializing HW\n"); digiline_send("light","OFF"); digiline_send("bell","off"); digiline_send("gate","up"); @@ -46,6 +51,7 @@ void main() { while (!checkdetector()) {} printstr("Train detected\nLightweight: Off\n"); lightweight_mode(0); +#ifdef RRXING_DE digiline_send("light","YELLOW"); printstr("Light: Yellow\n"); sleep(2); @@ -60,6 +66,24 @@ void main() { sleep(4); digiline_send("bell","off"); printstr("Bell: Off\n"); +#elif RRXING_UK + digiline_send("bell","on"); + printstr("Bell: On\n"); + digiline_send("light","YELLOW"); + printstr("Light: Yellow\n"); + sleep(3); + digiline_send("light","RED"); + printstr("Light: Red\n"); + sleep(1); + digiline_send("light","FLASHRED"); + printstr("Light: Flash Red\n"); + sleep(5); + digiline_send("gate","down"); + printstr("Gate: Down\n"); + sleep(4); +#else +#error No country selected +#endif digiline_clearbuffer(); for (uint8_t time = 15;time > 0;time--) { @@ -77,6 +101,12 @@ void main() { } printstr("Timed out\n"); +#ifdef RRXING_UK + digiline_send("bell","off"); + printstr("Bell: Off\n"); + sleep(1); +#endif + digiline_send("gate","up"); printstr("Gate: Up\n"); sleep(2); diff --git a/c/rrxing/rrxing.elf b/c/rrxing/rrxing.elf deleted file mode 100755 index 22366ca..0000000 Binary files a/c/rrxing/rrxing.elf and /dev/null differ diff --git a/c/rrxing/rrxing.hex b/c/rrxing/rrxing.hex deleted file mode 100644 index a6ac7d8..0000000 --- a/c/rrxing/rrxing.hex +++ /dev/null @@ -1,70 +0,0 @@ -:10000000370101006520A948730000008280148137 -:10001000988133E6E60009C685050505E389E6FE15 -:1000200013351600828052B82A84452C2A947524F0 -:10003000E36F85FE52BE4EB822F44AF0692435C102 -:100040001309400693045006130440079309300631 -:1000500019A0952C39C50145612C0808C1450A86AF -:10006000C146BD2403450101E31525FF03451101E8 -:10007000E31195FE03452101E31D85FC0345310194 -:10008000E31995FC03454101E31535FD0345510195 -:10009000E31185FC034561014DFD0545227402799C -:1000A0004EBE0545B124227402794EBC4EB80111F2 -:1000B000A2E4CAE052FC5AF862F46AF01305203355 -:1000C000F522130460369305C0362285C52A9309AC -:1000D0000037930550374E85D52213059037930589 -:1000E000E037E92A0924930B4006130C5006930DC0 -:1000F000400713093006930C8040130D4041930ACA -:100100007041130510385D220545DD221305703856 -:10011000712A552A21C50145E12A0808C1450A86E8 -:10012000C1467D2203450101E31575FF0345110119 -:10013000E31185FF03452101E31DB5FD03453101B1 -:10014000E31985FD03454101E31525FD03455101F3 -:10015000E311B5FD034561014DFD21A00545492A87 -:100160004DBF1305803999220145592222859305F7 -:10017000903BA9221305003C152A852293042500F3 -:10018000A92AE36F95FE4E859305F03C052A1305D9 -:10019000203D292A9922930425008122E36F95FEB0 -:1001A00022859305C03D192A1305003E0122352200 -:1001B000930435001D22E36F95FE130590379305D8 -:1001C000C03EED281305103FD520012A93044500B9 -:1001D0002922E36F95FE4E8A4E8593055037F92804 -:1001E0001305D03FE1200122BD4909A80545092298 -:1001F0000145FD28FD1913F5F90F3DC913FBF90F52 -:1002000066856D205A8579286A854D20F9209304EA -:100210001500E120E36F95FE7D2069D90145C928CD -:100220000808C1450A86C146652003450101E3155A -:1002300075FF03451101E31185FF03452101E31D0E -:10024000B5FD03453101E31985FD03454101E31582 -:1002500025FD03455101E311B5FD034561014DFD48 -:100260004128512056859920E14913F5F90F59F598 -:100270001305C0422528130590379305E0373D2824 -:10028000130570432520912893042500B920E36FBE -:1002900095FE22859305C03615201305104439209C -:1002A000D28985B58548730000008280914873002B -:1002B00000008280AD48730000008280930810081F -:1002C0007300000082809308500873000000828051 -:1002D00093087008730000008280732510C082802C -:1002E000732500C08280930860087300000082803C -:1002F0000589F322008093920248B3E2A200739032 -:100300000280828095487300000082809308000874 -:10031000730000008280A14873000000828093086F -:1003200030087300000082809308400873000000CA -:1003300082805261696C726F61642043726F737363 -:10034000696E670A666F72205256436F6E74726FE1 -:100350006C6C65720A496E697469616C697A696E60 -:10036000672048570A006C69676874004F4646006A -:1003700062656C6C006F666600676174650075701D -:100380000049646C650A004C696768747765696741 -:1003900068743A204F6E0A00547261696E20646579 -:1003A0007465637465640A4C696768747765696726 -:1003B00068743A204F66660A0059454C4C4F570006 -:1003C0004C696768743A2059656C6C6F770A006FE6 -:1003D0006E0042656C6C3A204F6E0A005245440034 -:1003E0004C696768743A205265640A00646F776EDE -:1003F00000476174653A20446F776E0A0042656C6D -:100400006C3A204F66660A0054696D656F757420FA -:10041000696E2000730A0054696D6520726573650A -:100420007420627920747261696E0A0054696D6586 -:1004300064206F75740A00476174653A2055700A2C -:0D044000004C696768743A204F66660A0038 -:00000001FF diff --git a/c/rrxing/rrxing.o b/c/rrxing/rrxing.o deleted file mode 100644 index 6a97ef6..0000000 Binary files a/c/rrxing/rrxing.o and /dev/null differ -- cgit v1.2.3