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

Reply via email to