Перейти к содержанию
    

dimasusl

Новичок
  • Постов

    4
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. FATfs и SD-карта

    Ответил на мыло, но напишу и тут, вдруг кому будет полезно static BOOL Receive_DataBlock( BYTE *buff, /* Data buffer to store received data */ UINT btr /* Byte count (must be multiple of 4) */ ) { BYTE token; MMC_SELECT(); // !!!!!!!!!! ДОБАВИЛ ЭТО !!!!!!!!!!!!!!!! Timer1 = 10; do { /* Wait for data packet in timeout of 100ms */ token = SPI_ReadWrite_Byte(0xff); } while ((token == 0xFF) && Timer1); if(token != 0xFE) return FALSE; /* If not valid data token, retutn with error */ btr--; //!!!!!!!!!! И ДОБАВИЛ ЭТО !!!!!!!!!! do { /* Receive the data block into buffer */ *buff++ = SPI_ReadWrite_Byte(0xff); } while (btr--); SPI_ReadWrite_Byte(0xff); /* Discard CRC */ SPI_ReadWrite_Byte(0xff); return TRUE; /* Return with success */ }
  2. FATfs и SD-карта

    Artem, добрый день. У меня аналогичный набор (stm32+fatfs+freertos) и абсолютно та же проблема. При этом я ранее реализовывал эту связку на более старшем проце, только там был SDIO, а не SPI как здесь. Вроде делаю все как у вас заработало - у меня эффект ноль. Можете скинуть ваши исходники относительно Fatfs (ff.c diskio.c и т.п.) на мыло [email protected]? Блин, занятное дело... Был код res = f_mount(0, &fs); res = f_open(&fsrc, "spi1.txt", FA_OPEN_ALWAYS | FA_READ | FA_WRITE ); if (fsrc.fsize) res = f_lseek(&fsrc, fsrc.fsize); res = f_write(&fsrc, usb_buffer, sizeof(usb_buffer), &br); res = f_close(&fsrc); res = f_mount(0, NULL); Файл создавался, но данные в него не писались (если сделать ненулевой размер файла то все Ок). Подсмотрел тут что еще юзаете для своих целей f_puts(...) res = f_mount(0, &fs); res = f_open(&fsrc, "spi1.txt", FA_OPEN_ALWAYS | FA_READ | FA_WRITE ); if (fsrc.fsize) res = f_lseek(&fsrc, fsrc.fsize); res = f_puts("",&fsrc); // Пустая строка, чтобы не "ломать" формат файла res = f_write(&fsrc, usb_buffer, sizeof(usb_buffer), &br); res = f_close(&fsrc); res = f_mount(0, NULL); и стало все Ок и при нулевом размере файла. Откуда ноги растут так и не ясно
  3. Поддержка USB

    Лично я под свой stm32 взял их же библиотеку для usb, и прикрутил к ртосу. Естественно, позаботился о переключении задач, пока данные пуляются туда-обратно.
  4. Я вот тоже установил под eclipse (+gcc4.5.1+gdb). Но вот список запущенных задач никак не могу получить. Как смотреть статус очередей я разобрался (используем vQueueAddToRegistry), в хедере ртоса все прописал что нужно - но ни фига, задачи не отображаются. Что не так?
×
×
  • Создать...