Lange nichts geschrieben here, weil ich war mit meiner neuen Platine beschaftigt.
Die ist noch nicht fertig, aber die kann schon Einiges.
Die Platine hat folgendes am Board: Micro von Atmel — AT91SAM7SE256, external SDRAM 64 MB in zwei Banken, und SD/MMC Card Reader
Das Programm für die Platine, kann schon die .elf Dateien von SD/MMC Card ins SDRAM lesen und ausfüheren.
Das ganze wurde mit der Hilfe von FreeRTOS Betriebsystem gebaut. Dafür habe ich die Start Datei ein bisschen angepasst.
Also, daraus besteht das Programm:
- FreeRTOS, von hier
- FatFS von dem bekannten Mann mit der Name Chan
- SD/MMC Treiber wurde von Atmel genommen und so angepasst, dass es mit der Interrupts funktioniert.
- SPI Treiber
- UART Treiber für Miltitasking Umgebung
- ELF Loader, der lädt die ELF Datei von irgendhere auf die Addresse, die von .ELF Datei genommen wird.
- Heap Treiber für dynamic Speiher allocation, getested in meinem Mazda MP3 Player.
So. In Planen sind folgendes: auf die Platine noch Xilinx Spartan3E — XC3S100E drauflöten und die Firmware dafür von SD/MMC Card zu laden und FPGA zu programmieren.
Und ein Display auf das externes Bus anschließen. Aber den muss man noch erfinden.
Ich überlege noch, von was zu starten.
Und hier ein paar Fotos (6 Stück) was schon gibts.
Das ist alles im Moment.
8 комментариев к “Kleine neueigkeiten”
Оставить комментарий или два
Пожалуйста, зарегистрируйтесь для комментирования.
12th March 2011 в 15:19
Офигеть! Похоже, я поверил в ЛУТ!
29th March 2011 в 3:42
Соглашусь, красавчик
У меня наверное не хватило бы терпения
11th March 2012 в 12:03
А можно все таки примерчик, и желательно библиотеки ММС/SPI. У меня не получается запустить FatFs даже без ОС...
11th March 2012 в 13:38
Пока что я другими проектами занят и этот временно на «hold» поставил. Тем более, что там вылезли баги самого железа (помех много), которые править довольно сложно — надо новую платку лепить.
Попробую запаковать в архивчик то, что есть сейчас, через пару часиков положу сюда в комменты ссылку.
Update:
Как и обещал, вот архивчик с софтом, который сейчас там крутится. Там пока ничего особенного нет, просто выводит на экран пару интересностей. Но вас же работа в FS интересует? Этот момент находится в файле src/MainTask/MainTask.cpp на строках 370 — 418.
Этот кусок закоментирован, так как я его только для проверки работы карточки использовал. Но он рабочий.
Сам проект НЕ откомпилируется, так как там есть пара файлов, которые я не могу включить в проект пока что, пока не переделаю их (изза прав собственности).
Открыть файл проекта (.cbp) можно в IDE Code::Blocks. Ну или файлы по отдельности разглядывать любым вашим любимым редактором.
Удачи.
11th March 2012 в 16:19
Проверил библиотеку sdspi.c, с виду такая же. Но у меня все зависает в функции SDSPI_IsBusy, на проверке функции
if (pSdSpi->semaphore == 0) {
return 1;
}
Что это вообще за семафор? Второй день ломаю голову.
11th March 2012 в 16:21
Точнее не зависает, а постоянно находится в этом условии.
11th March 2012 в 17:18
Там малость все по другому. В самом проекте много «трупов» как говорят немцы — неиспользуемые файлы Если бы вы открыли проект в КодеБлокс (можно и в текстовом редакторе глянуть — это XML файл), то увидите используемые файлы. sdspi не используется.
Используются файлы:
Drivers\SPI\SPI.h"
Drivers\SPI\SPI_ISR.c
Drivers\sdmmc\sdmmc.h
Drivers\sdmmc\sdmmc_ISR.c
И проблема в АРМах и в FreeRTOSе в частности в том, что файлы с прерываниями по другому компиляться должны, что и отражено в файле проекта!!!
Т.е. обычная прога компилится в режиме THUM, а прерывания — в режиме ARM. Без этого FreeRTOS работать не будет!!!
11th March 2012 в 17:33
Да уж... Пока я далек от ОС... Ладно, буду ковырять далее, в неизвестном направлении. Спасибо за информацию.