sw opened a new issue #122:
URL: https://github.com/apache/mynewt-mcumgr/issues/122


   This relates to https://github.com/apache/mynewt-newtmgr/issues/185
   
   There is a performance problem when using mcumgr CLI to upload firmware 
images to a Zephyr system. There is an overhead of up to 4x in the data 
transmitted on the serial port.
   
   On the one hand, this is due to sub-optimal frame handling in mcumgr CLI as 
reported in https://github.com/apache/mynewt-newtmgr/issues/185
   
   But I suspect the MCU side could also be improved.
   
   `img_mgmt_impl_upload_inspect` rounds the data length down to a multiple of 
the flash write block size:
   
https://github.com/apache/mynewt-mcumgr/blob/798f7fe28bb32335ba25d1c180808cd88d73a83c/cmd/img_mgmt/port/zephyr/src/zephyr_img_mgmt.c#L571-L576
   
   But then, buffered write is used in `img_mgmt_impl_write_image_data`:
   
https://github.com/apache/mynewt-mcumgr/blob/798f7fe28bb32335ba25d1c180808cd88d73a83c/cmd/img_mgmt/port/zephyr/src/zephyr_img_mgmt.c#L307
   
   According to the documentation of `flash_img_buffered_write`, this function 
will store non-complete blocks in RAM until it is called with `flush == true`. 
So a length that is *not* a multiple of the flash write block size should not 
pose  a problem.
   
   My suggestion would be to remove the length truncation in 
`img_mgmt_impl_upload_inspect`.
   Or is there some special case that this would break?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to