I am anticipating having more than 600 objects in the A&D storage flash so am using the adl_adFindInit and adl_adFindNext.
Has anyone used these? Its not clear to me exactly how they operate. The adl_adFindInit take a min and max CellID to act as the end stops of the search. If you just want the whole list can you just enter 0 and 0xFFFFFFFE ? I then step through the CellIDs with the adl_adFindNext. This allows me to discoved the first and last entries and the entry count available in the flash on boot.
I’ve tried this and it seems to work the first time (I got 40 entries which is about right). However if I do it a second time to access the data in these entries, do an adl_adFindInit(0,0xFFFFFFFE) , then adl_adFindNext, it seems to start at entry 30. I then successfully get the data of the last 10 entries.
Also the adl_adFindNext seems to not recognise the last entry in the list until it tries a second time, so I get the last entry twice.
The TRACE output of ADL32 gives A&&D subs 388AD59A 56: -4 while the adl_adFindNext return value is 0.
(the 388AD59A is the CellID, the 56 is number of bytes in the Cell and the -4 I presume is an error value, it is the Cell number in the successfull reads) the next time the TRACE is the same but the adl_adFindNext returns ADL_AD_RET_ERR_REACHED_END. The data is the same at the previous one.
Any clues? This flash store is supposed to be finished tomorrow so I can go on holiday!!!