I am currently looking at SD memory card libraries for the AVR. All of them are written in either pure “C” or in “C++” (as ARDUINO libraries). I am looking more closely at the “tinyFAT” and “FATFs” implementations since they are written in pure “C” . Since I am an assembly language programmer, I will convert the libraries into a relocatable code code chunk, no BSS startup and no default libs, which will keep the actual code space to a minimum. I will then look at each function call, derive which registers require which information in which register pairs for the call and look to see what data is returned in which registers by the routine. I will also extract the entry addresses for each function. What I will end up with is an “include” file with lots of “.DB” statements, which will be tucked into the AVR’s program memory. Once I have all this running, I can then set out to write some AVR assembly code to test the functions. This worked very well with the AttoBASIC project when I added Paul Stroffgen’s USB-Serial-IO library to support the ATmega32U4 and the AT90USB1286 in AttoBASIC. The “SREC” program suite is VERY useful for this purpose. When I decide on which library to use and finish the library conversion, I will post the MAKEFILE for others to use if they wish to.
Peace and blessings,