我開發了一塊嵌入式硬件的要求從PC的一些數據二進制文件。我正在使用FAT32格式的SD卡來提供此信息。數據只是一個我導出爲CSV的excel文件。我的問題是,如果我讓uC(AT Mega 128L)使用char* strtok (char *s, const char *delim)
來處理這個問題,還是我應該編寫一個小型的實用程序將該CSV文件轉換爲二進制格式?CSV或嵌入式應用程序
性能,只要它是相當快的,是不是大問題,也不是文件大小。最大的問題將是SRAM的使用。
的線的長度爲最大。最多40個字符。大約有7個領域,其中兩個基本上是指數。 uC應該通過查看這些索引並查看它是否匹配來檢索它感興趣的信息。例如,假設uC需要關於存儲在索引5處的東西的信息。然後需要到這裏並檢索其他5個字段並將它們顯示在屏幕上。 uC需要對文件進行「隨機」訪問 - 即在某一時刻,它可能需要索引7中的內容,而另一時刻可能需要索引70中的內容。
據我所知,如果這是一個二進制文件具有嚴格定義的格式(即每個字段將是固定的字節數)。優點是uC可以直接尋找它感興趣的字節。例如,假設每個'記錄'佔用100個字節(它會少很多,但僅僅是一個例子)。 uC知道第二個索引將從100開始(第一個記錄爲0-99),第三個從200開始等。
因此,如果需要訪問第7個記錄,它只需要查找第700個字節並檢索相關信息。二進制文件方法會比CSV更好嗎?我主要關心的是SRAM的使用情況和合理的性能。
我完全同意。處理字符串並將它們轉換爲數值是資源密集型(相對而言)。從長遠來看,使用計算機上的程序執行此操作通常會比在嵌入式系統上執行此操作更好。這也可以讓你使用更高級的語言(比如Ruby或Python)來處理可能在嵌入式系統上不可用的字符串處理。這些語言的庫/功能使得CSV和字符串處理比在C中執行它更容易。 – bta 2012-02-22 22:34:56