ethercrab-rs / ethercrab

EtherCAT master written in pure Rust
258 stars 24 forks source link

Only support ASCII strings in EEPROM #217

Closed jamwaffles closed 5 months ago

jamwaffles commented 5 months ago

The EtherCAT spec ETG1000.4 section 5.2.6 defines a "Visible String" as the characters 0x20 to 0x7E. To conform with the spec, as well as reduce code size a bit due to not having to validate UTF-8, this PR will now make EEPROM string reads fail if the string is not ASCII.

Code size reduction from master:

   text    data     bss     dec     hex filename
  99316     112   57800  157228   2662c ethercrab-stm32-embassy

To this branch:

   text    data     bss     dec     hex filename
  97496     112   57800  155408   25f10 ethercrab-stm32-embassy