* Use local variable for read_result instead of *ret, and fix
calculation of *ret for EOF case.
* Found a problem when reading an odd (%4) number of bytes at the end
of a file. fread (on stm32) get them (say 3 bytes), then askes for
more. do_semihosting gets a read return of 0 and tries to write that.
mem_write alters the address to be aligned and overwrites then 3 bytes
from the last read.
This change simply tells mem_write to do nothing if len is 0.
* Fix Issues from Fabien-Chouteau's review of my previous patch in isue #727.
* Revert change to mem_write() so it does not confuse fixes to do_semihosting().
* Add cast to avoid warning.
* Restore change to mem_write to return immeadiately if len == 0.
Add more comments on further possible issues and ways to handle them.
Using a branch to separate this change from others as it may need
more discussion and go on for a while...
* Remove cast of "-1" to uint32_t. It's now compared to a ssize_t
and the compiler should be fine with that without any cast.
* Use local variable for read_result instead of *ret, and fix
calculation of *ret for EOF case.
* Found a problem when reading an odd (%4) number of bytes at the end
of a file. fread (on stm32) get them (say 3 bytes), then askes for
more. do_semihosting gets a read return of 0 and tries to write that.
mem_write alters the address to be aligned and overwrites then 3 bytes
from the last read.
This change simply tells mem_write to do nothing if len is 0.
* Fix Issues from Fabien-Chouteau's review of my previous patch in isue #727.
* Revert change to mem_write() so it does not confuse fixes to do_semihosting().
* Add cast to avoid warning.
* fix wrong libusb extract command
* update libusb to 1.0.21 under windows
* fix few -Wformat warnings
* add usleep realisation for win32
* Get rid of unused defines in mimgw.h
* fix format warning for mingw
* Add prefix SEMIXOST_ to semihost defines.
Fix redefine warnings of mingw.
This patch adds the following operations:
- SYS_OPEN
- SYS_CLOSE
- SYS_WRITE
- SYS_READ
- SYS_ERRNO
- SYS_REMOVE
- SYS_SEEK
The use of utility functions mem_read() and mem_write() add an
unnecessary memcpy() call. All buffer transfer could be done directly in
the sl->q_buf data instead of using a temporary transfer buffer.
However, given the relative slowness of target memory transfer, I don't
think that this has a big impact on performances