Давно не писал ничего, так как пытался завести мою платку новую.
Пока что она еще не полностью запаянная, но кое-что уже умеет.
Но пока о свойствах. На данный момент на ней расположен микроконтроллер фирмы Atmel — AT91SAM7SE256, внешняя SDRAM память на 64 МБ в двух банках, и картридер для SD/MMC карточек.
Пока что программка, которую я пишу для этой платки уже умеет считывать с карточки .elf файл в SDRAM и запускать его на исполнение.
Построено все это безобразие на базе FreeRTOS. Для этого пришлось подшаманить стратовый файл на ассемблере, и инициализацию всех частот и генератора частот, чтобы работало.
И так, что в ходит в программку :
- FreeRTOS, взятая от сюда.
- FatFS от известного человека Чена.
- SD/MMC драйвер взял из примера Атмела, правда его пришлось допиливать напильником, чтобы работал через прерывания.
- SPI драйвер.
- UART драйвер, работающий в мультизадачной ОС.
- ELF Loader, грузящий ELF файл откуда либо в память по адресу, который указан в самом .ELF файле.
- Heap драйвер для динамического выделения памяти, самописный, и оттестированный в моем Mazda MP3 Player.
Вот пока такие ништячки есть.
В планах на ближайшее будущее — прилепить на платку плисину Xilinx Spartan3E — XC3S100E и завести ее, а потом прикрутить к проге возможность грузить прошивку в плисину с карточки.
И еще в планах — прилепить на внешнюю шину дисплей какой нибудь. Правда его еще надо сначала спроектировать и спаять
Пока что думаю, с чего начать.
А пока пара фоток (6 штук) того, что уже есть.
Пока что на этом все.
Если есть спрос — могу выложить схемку (только ее надо будет подправить малость, учесть те изменения, которые я сделал в плате уже в процессе отладки) и прошивку лоадера для этой платки.
8 комментариев к “Небольшие вести с полей”
Оставить комментарий или два
Пожалуйста, зарегистрируйтесь для комментирования.
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
Да уж... Пока я далек от ОС... Ладно, буду ковырять далее, в неизвестном направлении. Спасибо за информацию.