Я не уверен, но я догадку - В Verix и VerixV терминалов (например, 3740/3750 и 510/570), там был и флэшИRAM, и вы указали, какой «диск» вам нужен, указав I:
или F:
перед вашим именем файла. В 520 (и я подозреваю, что другие терминалы eVo, но я не уверен), нет (энергонезависимой) ОЗУ, и даже если вы укажете I:
, вы все равно сохраняете память FLASH.
Если вы посмотрите на документацию для dir_get_sizes
, вы заметите, что то, что записано в версии Verix V
, отличается от того, что записано в eVo
. Основное различие, что действительно выделяется для меня это примечание:
I: и F: оба на флэш-Nand, член «Свободна» из в результате STRUCT fs_sizes говорит общее (I: + F :) доступно NAND флэш-память в момент вызова функции.
Это все хорошо и мог объяснить, почему «Доступный» выше, чем «Total», тем более, что вы используете другой API, чтобы получить полный размер (я предполагаю, что SVC_RAM_SIZE и SVC_FLASH_SIZE) что может быть своего рода различием между I:
и F:
. Если бы это было так, то это означало бы, что вы используете примерно 81954k доступного пространства для хранения. ... За исключением одной проблемы с nagging: «Доступная оперативная память» на 4k выше, чем «Доступная вспышка», и мы ожидаем, что они будут идентичными. Это я не могу объяснить, если вы не выделяете и/или не храните кучу других вещей между вызовами ...?
Еще одно существенное различие заключается в том, что, хотя оба возвращают int
, версия Verix V указывает только на то, что -1 возвращается при ошибке (подразумевая, но явно не заявляя, что 0 возвращается при успешном завершении) с errno, установленным либо ENOENT
или EACCES
. С другой стороны, в версии eVo указано, что возвращаемое значение - «Доступная память в байтах». Может быть интересно сравнить значение, которое возвращается с dir_get_sizes
, с номером, указанным в fs.Avail
.
Держите нас в курсе того, что вы найдете - мне любопытно узнать, я сам ... – David