The first version of the firmware is now really complete. There were a couple of bugs discovered since the last time I said that:
- all calls to msc_xfer_blocks() results in a callback to the xfer_done() method, including the call after a write with block count 0 to mark the write commit.
- In Atmel Start's world, you're not allowed to have side effects in ASSERT(), as it is optimized to a null statement in release builds. So "ASSERT(NO_ERROR == perform_action());" doesn't call perform_action() in release builds. You have to assign the result to a variable and ASSERT the variable value instead.
With that, the raw block read speed of Orthrus is something like 1.25 MB/sec and the write speed is just over 300 kB/sec. So the goal was achieved. But there's hope that with a little bit more work to turn on the DCache and perhaps even move to TCM that this might improve even more. We'll see.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.