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

shmur

Участник
  • Постов

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

  • Посещение

Весь контент shmur


  1. discio это всего лишь интерфейс доступа к физическому хранилищу для FatFS, где будет лежать ваша ФC вы тут и решаете, реализуя соответствующие функции. Если ATA не будет использоваться, просто выкиньте их из этого файла и перепишите его для взаимодействия с SD. А ошибки выдает линковщик, который не может найти эти функции в объектных файлах, *.о которые.
  2. NAND и малый объем RAM

    Доброго дня, коллеги. А есть ли на свете какая-нибудь легковесная ФС для нанд, если ОЗУ доступно только 100к?
  3. На вашей плате есть вот это: можно там и хранить
  4. http://msdn.microsoft.com/ru-ru/library/8627sbea.aspx http://habrahabr.ru/post/148562/ Может все-таки стоит хоть какую-то литературу по языку почитать прежде чем задавать такие вопросы :)
  5. Ну компилятор просто предупреждает, что переменная объявлена, но нигде не используется. Если оптимизация выключена, то компилер не будет резать такие переменные и они будут кушать память.
  6. Ну я делал, причем даже нулевой сектор прошивал, выполняясь при этом из флеша. Правда писал я через FLASH_ProgramWord, а не FLASH_ProgramByte, может в этом проблема..
  7. Возможно у топик стартера было что -то вроде: union uu { struct { unsigned char Bit1 : 1; unsigned char Bit2 : 1; }; int v; }; Но некоторые компиляторы не позволяют использовать безымянные структуры, возможно Кейл как раз один из таких компиляторов.
  8. Приведите весь код, а то не понятно это внутри структуры, юниона или просто чистое объявление.
  9. stm32f4 прерывания

    Дедлок же будет
  10. Сто лет уже так пишем :) Только у нас обертки не макросы, а функции, поэтому каждый порт - это всего лишь набор С файлов, которые и подключаются в проект в зависимости от платформы, а хедер один для всех.
  11. FreeRTOS и LPC2478

    Есть. Для IAR'a например в portable\IAR\LPC2000.
  12. Ну дак в том то и фокус, что тут будет проверяться не память программы, а память данных по адресу 0х1000. Там разные адресные пространства памяти данных и программы.
  13. Как прочитать program memory в данном проце? Нужно просто проверить слово по адресу 0x1000 на равенство 0xFFFF. Средствами языка С, я так понял, проверить можно только память данных.
  14. Загляните в Настройки проекта -> С/С++Compiler -> Diagnostics и посмотрите все ли там правильно выставлено.
  15. А какая версия printf стоит в настройках проекта? Помню что small точно не работает с флоатом, то есть символ %f просто не раскручивается, но возможно в реализации либы для М0 там баг и все падает :) Попробуйте поставить full.
  16. Огласите весь код, пожалуйста :) Сдается мне вы унаследовались неправильно..
  17. Проверьте чтобы в функции не использовалась абсолютная адресация. Но зачем все так усложнять, почему не разделить основную прошивку от бутлоадера? У меня например для stm32f2 бутлоадер лежит во флеше в первых двух секторах, а прошивка в остальнах, и ничего из рама запускать не надо :) Плюс можно даже в самом бутлоадере реализовать прием прошивки по уарту и немедленное прошитие во внутреннюю флеш минуя внешнюю. PS Бит нужен для того чтобы указать процессору работать в тумб режиме, у кортексов арм режима даже вроде как и нету, так что бит всегда должен быть установлен.
  18. Сам файл не "запускается", из него просто вызывается функция SystemInit, и вызывается она обычно из обработчика Reset_Handler, который по умолчанию находится в каком-нибудь cstartup.s: Reset_Handler LDR R0, =SystemInit BLX R0 LDR R0, =пользовательская точка входа (например, main или __iar_program_start) BX R0 В общем то здесь можно убрать вызов SystemInit и вызвать его потом собственноручно или вообще не вызывать :)
  19. По-моему, очень плохой пример вы нашли, лучше посмотрите исходники glib, там используется реальное ООП на С.
  20. Узнать можно в map файле, а чтобы он генерировался нужно в опциях Linker->List поставить галочку Generate linker map file.
  21. LPC1788 + NAND

    Доброго времени суток. Пытаюсь подключить NAND flash K9K8G08 через второй банк EMC. Читается айдишник и проходит команда ресет, т.е. нанд опускает пин R/B. Во всех других операциях этот пин не опускается, а в статус регистре нанда всегда читается ОК, такое ощущение будто нанд не понимает эти команды. Что я делаю не так? Вот код: http://pastebin.com/LWDk9YV8 схема подключения: http://i25.fastpic.ru/big/2012/1004/92/ffc...3de3caa5c92.png
  22. Можно создать два семафора: один для потока DoTask для сигнализации о завершении выполнения задачи и один для лока метода DoTask, чтобы в него не входили одновременно более одного потока.
  23. Из описания FR_DISK_ERR в файле ff.h: A hard error occured in the low level disk I/O layer. То есть скорее всего ваш физический уровень, который вы сами реализуете и подсовывайте фатфсу, вернул ему ошибку.
  24. Жесть На компилятор грешить - последнее дело, скорее всего ошибка у тебя, можешь код показать?
×
×
  • Создать...