RSS
people

Небольшие вести с полей

Давно не писал ничего, так как пытался завести мою платку новую.

Пока что она еще не полностью запаянная, но кое-что  уже умеет.

Но пока о свойствах. На данный момент на ней расположен  микроконтроллер фирмы 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 комментариев к “Небольшие вести с полей”

  1. bsvi пишет:

    Офигеть! Похоже, я поверил в ЛУТ!

  2. ZiB пишет:

    Соглашусь, красавчик :)

    У меня наверное не хватило бы терпения :)

  3. vetal_alien пишет:

    А можно все таки примерчик, и желательно библиотеки ММС/SPI. У меня не получается запустить FatFs даже без ОС...

  4. MasterAlexei пишет:

    Пока что я другими проектами занят и этот временно на «hold» поставил. Тем более, что там вылезли баги самого железа (помех много), которые править довольно сложно — надо новую платку лепить.

    Попробую запаковать в архивчик то, что есть сейчас, через пару часиков положу сюда в комменты ссылку.

    Update:

    Как и обещал, вот архивчик с софтом, который сейчас там крутится. Там пока ничего особенного нет, просто выводит на экран пару интересностей. Но вас же работа в FS интересует? :) Этот момент находится в файле src/MainTask/MainTask.cpp на строках 370 — 418.

    Этот кусок закоментирован, так как я его только для проверки работы карточки использовал. Но он рабочий.

    Сам проект НЕ откомпилируется, так как там есть пара файлов, которые я не могу включить в проект пока что, пока не переделаю их (изза прав собственности).

    Открыть файл проекта (.cbp) можно в IDE Code::Blocks. Ну или файлы по отдельности разглядывать любым вашим любимым редактором.

    Удачи.

  5. vetal_alien пишет:

    Проверил библиотеку sdspi.c, с виду такая же. Но у меня все зависает в функции SDSPI_IsBusy, на проверке функции

    if (pSdSpi->semaphore == 0) {

    return 1;

    }

    Что это вообще за семафор? Второй день ломаю голову.

  6. vetal_alien пишет:

    Точнее не зависает, а постоянно находится в этом условии.

  7. MasterAlexei пишет:

    Там малость все по другому. В самом проекте много «трупов» как говорят немцы — неиспользуемые файлы :) Если бы вы открыли проект в КодеБлокс (можно и в текстовом редакторе глянуть — это XML файл), то увидите используемые файлы. sdspi не используется.

    Используются файлы:

    Drivers\SPI\SPI.h"

    Drivers\SPI\SPI_ISR.c

    Drivers\sdmmc\sdmmc.h

    Drivers\sdmmc\sdmmc_ISR.c

    И проблема в АРМах и в FreeRTOSе в частности в том, что файлы с прерываниями по другому компиляться должны, что и отражено в файле проекта!!!

    Т.е. обычная прога компилится в режиме THUM, а прерывания — в режиме ARM. Без этого FreeRTOS работать не будет!!!

  8. vetal_alien пишет:

    Да уж... Пока я далек от ОС... Ладно, буду ковырять далее, в неизвестном направлении. Спасибо за информацию.

Оставить комментарий или два

Пожалуйста, зарегистрируйтесь для комментирования.