It would be worth while to check the address when writing the 32bits to ram (it needs to be properly aligned), I have run into this problem on CH32X033. When writing 32 bits it needs to be on a word boundary (not forth word - processor word - multiple of 4), when writing a halfword (16bits) it can be on a half word boundary (16 bits - multiple of 2). Writing a byte have no issues. Otherwise you can trigger a processor exception, and unless you have a exception handler to capture this you will just hang. You will see this default behavior in the startup assembler code. I have seen this default behavior on RISCV and ARM startup code supplied from the vendor.
Hope this helps, John S On Mon, Jan 5, 2026 at 10:44 AM John Sarabacha <[email protected]> wrote: > Seems to me this problem exists in RISCV also, good to know > > On Mon, Jan 5, 2026 at 10:42 AM Martin Kobetic <[email protected]> wrote: > >> On Mon, Jan 5, 2026 at 10:35 AM <[email protected]> wrote: >> >> > variable X >> > $AABBCCDD X ! >> > X @ >> > >> >> Ah yes, the store (!) reliably kills amforth. I'll investigate. >> >> _______________________________________________ >> Amforth-devel mailing list for http://amforth.sf.net/ >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/amforth-devel >> > _______________________________________________ Amforth-devel mailing list for http://amforth.sf.net/ [email protected] https://lists.sourceforge.net/lists/listinfo/amforth-devel
