From 56d9bdd39ed36c36e9a61411b86c76d5228b2133 Mon Sep 17 00:00:00 2001 From: sicarius Date: Sun, 11 Feb 2007 18:32:03 +0000 Subject: Added lot's of code-files used during work --- source/ct-Bot/pc/mini-fat.c | 65 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 source/ct-Bot/pc/mini-fat.c (limited to 'source/ct-Bot/pc/mini-fat.c') diff --git a/source/ct-Bot/pc/mini-fat.c b/source/ct-Bot/pc/mini-fat.c new file mode 100644 index 0000000..f806ceb --- /dev/null +++ b/source/ct-Bot/pc/mini-fat.c @@ -0,0 +1,65 @@ +/* + * c't-Bot + * + * This program is free software; you can redistribute it + * and/or modify it under the terms of the GNU General + * Public License as published by the Free Software + * Foundation; either version 2 of the License, or (at your + * option) any later version. + * This program is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the Free + * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307, USA. + * + */ + +/*! @file mini-fat.c + * @brief Routinen zum erstellen von markierten Files fuer eine MMC-Karte. + * @author Benjamin Benz (bbe@heise.de) + * @date 04.01.07 +*/ + +#include "ct-Bot.h" +#include "mini-fat.h" + +#ifdef PC + +#include +#include +#include + +/*! + * Erzeugt eine Datei, die an den ersten Bytes die ID enthaelt. Dann folgen 512 - sizeof(id) nullen + * Danach kommen so viele size kByte Nullen + * @param filename Der Dateiname der zu erzeugenden Datei + * @param id_string Die ID des Files, wie sie zu beginn steht + * @param size kByte Nutzdaten, die der MCU spaeter beschreiben darf + */ +void create_mini_fat_file(const char* filename, const char* id_string, uint32 size){ + printf("Erstelle eine Mini-Fat-Datei mit dem Namen %s\n",filename); + FILE *fp = fopen(filename, "w"); + + /* Dateiparameter vorbereiten */ + uint8 id_len = strlen(id_string) >= MMC_FILENAME_MAX ? 254 : strlen(id_string); + file_len_t length = {size*1024 - 512}; // im ersten Block stehen interne Daten + + printf("Schreibe ID: \"%s\"\n",id_string); + fwrite(id_string,id_len,1,fp); + + /* Dateilaenge in die Datei schreiben */ + fseek(fp, 256, SEEK_SET); + int8 i; + for (i=3; i>=0; i--) + putc(length.u8[i], fp); + + printf("Erzeuge Speicherplatz fuer %lu kByte Nutzdaten\n",size); + fseek(fp, size*1024-1, SEEK_SET); // Ans Dateiende springen + putc(0, fp); // eine Null schreiben + fclose(fp); +} + +#endif -- cgit v1.2.3