Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 18:54 24 Nov 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : XMODEM R fname$ limitation - All USB host versions RP2040 and RP2350

Author Message
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9106
Posted: 04:28pm 02 Sep 2024
Copy link to clipboard 
Print this post

homa has found that XMODEM transfers direct to the flash disk (A: drive) failed on the new HDMIUSB version of MMBasic.

I've since done some testing and diagnostics and this is also the case on the RP2040 VGAUSB version and I suspect on all USB-host versions
The limitation would also affect non USB-host versions of MMBasic if a serial console, rather than the USB console, was selected.

The reason for this is that the serial console uses hardware interrupts to receive and transmit information (USB is polled). However, writing to flash requires that interrupts are disabled. This causes XMODEM to lock up when receiving a file direct to the A: drive.
In future versions I will block this, I can't currently see any sensible fix.

Receiving files to RAM or to an SDcard work as expected for all versions
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2350
Posted: 04:41pm 02 Sep 2024
Copy link to clipboard 
Print this post

  matherp said  [...] However, writing to flash requires that interrupts are disabled. This causes XMODEM to lock up when receiving a file direct to the A: drive [...]


an alternative would be to limit the size of files being transferred to available free RAM, as is what happens when doing an XMODEM transfer into the editor / to slot 0; the complete file is buffered into RAM, and only then written to flash.


cheers,
rob   :-)
Edited 2024-09-03 02:42 by robert.rozee
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2350
Posted: 05:23pm 02 Sep 2024
Copy link to clipboard 
Print this post

another option that may work is to just receive (say) a dozen packets, but do NOT acknowledge the last one. write that dozen packets to flash, and only then send the acknowledgement which will allow the sending end to send more packets. repeat.

from:
https://en.wikipedia.org/wiki/XMODEM
and based on the comment that "Files were transferred one packet at a time". you just need to be able to complete each flash write before the sending end tries to resend the last unacknowledged packet, a timeout that is likely to be several seconds.


cheers,
rob   :-)
Edited 2024-09-03 03:26 by robert.rozee
 
stanleyella

Guru

Joined: 25/06/2022
Location: United Kingdom
Posts: 2120
Posted: 07:52pm 02 Sep 2024
Copy link to clipboard 
Print this post

get a downloaded file from windows to pico a:
nothing works, well not 4 me. teraterm, mmedit CC, xmodem...putty
I got sd card reader and ili9341 has one so copy to sd card and use that, crude but works. getting win files to picomite is a .... parrot
 
Print this page


To reply to this topic, you need to log in.

© JAQ Software 2024