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

Ruslan1

Свой
  • Постов

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

  • Посещение

  • Победитель дней

    3

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


  1. Загрузка AT91RM9200 из SPI DataFlash

    Здравствуйте! Помогите чайнику. Задача собственно тривиальная, но как именно к ней подступиться- не понимаю. Совсем торможу. :cranky: Железо: есть плата на AT91RM9200, на которой установлена AT45DB642. Есть J-Link. Софт: IAR 4.40A. Пользователь: начинающий. умеет писать и отлаживать сишные программы в внутреннем SRAM и наплатном SDRAM. Понимает как править сишный стартап, но совершенно не разбирается в Армовском ассемблере. Документацию прочитал (как ему кажется). Задача: Их собственно две: 1. Написать программу, которая, автономно загрузившись во внутреннее SRAM, сможет оттуда работать (помигать светодиодом) 2. Написать программу, цель которой- проинициализировать SDRAM, загрузить в SDRAM основную пользовательскую программу, передать этой пользовательской программе управление. Сначала хочется разобраться с первой задачей. Насколько я понял, Flashloader (я рассматривал написанный VladislavS, огромное спасибо!) загружает подготовленный файл в dataFlash. Однако как этот файл должен быть предварительно подготовлен, чтобы при следующем ресете бутлоадер определил его как валидное приложение и загрузил его? В даташите написано, что для этого с адреса 0 первые 32 байта должны содержать строго определенную информацию, в том числе длину кода (шестой вектор, +0x14). Как мне это обеспечить? Далее, как этот файл записать? Поставил в IAR галку на Flashloader, указал где сам Flashloader находится, указал куда записать (--spi 0). Что-то еще? У меня вроде бы записывается, в лог пишет: AT45 at NPCSO searching AT45DB642 found Flash program complete Но не работает. :(
  2. Я около года назад развлекался с uClinux на BF533 (небезызвестная плата STAMP). Не понравилось. Да, все пишется и даже работает, но очень медленно и непредсказуемо время передачи сигналов с уровня ядра на пользовательский. Не реалтайм. Вот говорят, что uCos с реалтаймовостью получше. Хотя да, низы на собственноразработанном железе писать- это отдельная эротика. Уже полдня не могу понять, почему SDRAM не работает как надо. CLK есть, CAS/RAS- фигушки. Пришлось CLK снизить до 50 МГц, иначе осциллограф вообще показывать не хотел....
  3. Уже знаю, что буду ставить uCOS-II. Ты имеешь в виду, что у операционки свои рекомендации по расположению данных? Стек крайне желательно, еще MMU Translation Table можно запихнуть, если влезет. OK. MMU - это уже операционки уровня Линукса, я так понимаю? Защита памяти и все такое? Может и дойду через пару лет, пока что uCOS буду ставить.
  4. Я только начинаю осваивать ARM. Много просмотрел всякого, но не могу понять, как же все-таки мне распределить память, чтобы работало более-менее быстро? Из памяти у меня SDRAM 16мегабайт и конечно внутренний RAM самого камня. Грузиться буду из последовательной DataFlash, то есть никакого собственно ROM, доступного компилятору, у меня нет. Значит, вся программа (CODE) и переменные(DATA) я располагаю в SDRAM, а вот какие сегменты для быстродействия расположить в IntRAM? наверное, CODE_I (это то, что я определю как __ramfunc). Еще INTVEC (по определению). Что еще? Функции обработки прерываний? Стек? Понимаю, что от задачи к задаче приоритеты могут меняться, но каковы общие правила распределения памяти при работе с ARM? Да, еще наверное нужно не забыть кеш включить, но это уже вопрос не к линкеру.
  5. Вроде что-то проясняется, но все равно не могу дойти пошагово до main. Если смотреть в окне дизассемблера- то оно зациклено где-то по дороге. Что-то я недоделал в настройках проекта. Просто хочу из внутреннего RAM чтобы исполнялось и все. :(
  6. Помогите пожалуйста начинающему. Не могу понять, в каком направлении копать. Исходные данные: IAR 4.30A, J-link 5.20. Простенький проект из трех строк для зажигания лампочки на AT91RM9200. Поставил последний драйвер с Segger'a (3.36) При входе в режим отладки (Project->Debug) В окне сообщений пишется следующее: Sun Aug 06 14:38:14 2006: J-Link firmware: V1.20 (J-Link compiled Jun 30 2006 08:34:29 ARM Rev.5) Sun Aug 06 14:38:14 2006: JTAG speed is initially set to: 32 kHz Sun Aug 06 14:38:14 2006: J-Link: CP15.0.0: 0x41129200: ARM, Architecure 4T Sun Aug 06 14:38:14 2006: J-Link: CP15.0.1: 0x0D172172: ICache: 16384 bytes, 64 * 8 lines of 32 bytes, DCache: 16384 bytes, 64 * 8 lines of 32 bytes Sun Aug 06 14:38:14 2006: Initial reset was performed Sun Aug 06 14:38:14 2006: J-Link found 1 JTAG device. ARM core Id: 05B0203F(ARM9) Sun Aug 06 14:38:14 2006: Device at TAP0 selected Sun Aug 06 14:38:14 2006: **** Warning: Chip has already been halted. Sun Aug 06 14:38:14 2006: Auto JTAG speed: 4000 kHz Sun Aug 06 14:38:14 2006: **** Warning: Chip has already been halted. Sun Aug 06 14:38:14 2006: J-Link: CP15.0.0: 0x41129200: ARM, Architecure 4T Sun Aug 06 14:38:14 2006: J-Link: CP15.0.1: 0x0D172172: ICache: 16384 bytes, 64 * 8 lines of 32 bytes, DCache: 16384 bytes, 64 * 8 lines of 32 bytes Sun Aug 06 14:38:15 2006: 396 bytes downloaded (0.99 Kbytes/sec) Sun Aug 06 14:38:15 2006: Loaded debugee: C:\MY_JOB\SOFT\projects\Debug\Exe\project1.d79 Sun Aug 06 14:38:15 2006: Target reset Sun Aug 06 14:38:15 2006: Driver does not support code coverage. В менюшке "J-Link" оба пункта серые. Ходить по шагам не хочет, идти до курсора не хочет (все пункты серые). Не понимаю, что с чем не договорилось :-( Хелп! Может, кто-то из тех, кто пользуется AT91RM9200 и J-Link под IAR смилостивится и пошлет мне проектик(хоть из одной строчки), который нормально отлаживается? Может, я в настройках IAR напутал... :-(
  7. А какой из закормов Synplify взять, чтобы работал и не нужно было искать к нему ничего дополнительно? Уж очень их много, да и пузатые они- с моим инетом как раз к вечеру солью какой-нибудь один (сейчас HDL_designer тяну, кстати к нему примочек никаких не понадобится искать?). Естессно, версия под винду интересует.
  8. Для начала скачаю-поставлю Synplify. Еще прочитал у Ментора, что "The design of finite state machines is a key application of the HDL Designer Series™ tools". Есть смысл для удобства и его посмотреть? Так и делаю. Квартус достаточен для всего. Но интересно стало, что есть, чтобы еще удобнее было. Насчет схемного ввода- я его довольно долго применял, теперь именно от него и ухожу. Пока не жалею. :)
  9. Конкретно по Xilinx не скажу, но стратегия везде одинаковая: 1. Задействуй глобальные цепи (клоки, ресеты, разрешения). 2. распределяй выводы крокодила так, чтобы длина внешних цепей была минимальна. То есть перераспределяй после компановки платы так, чтобы по плате легко и близко разбегались до окружающих компонентов. 3. Так как недавно начал работать- обрати внимание на корректную разводку питаний, не жадничай на конденсаторах. 4. В твоем средстве разработки наверняка есть какие-то средства указать критичные по частоте цепи, тогда они разведутся с учетом твоих требований. 5. Конечно обрати внимание на предопределенные пины. Вдруг у тебя там есть пины, которые только на ввод годятся, либо зареезервированные под конфигурирование, либо еще под что. Тут внимательно читаешь те страницы мануала, где сведены в таблицу все ноги микросхемы, обычно справа в примечании указывают особые свойства вывода. Ну еще после синтеза (я о альтеровском rpt-файле, для Xilinx у тебя наверное что-то подобное тоже есть) в файле рапорта можешь еще раз убедится, что у тебя на какой ноге находится, а также может быть и написано, какие уровни на какие из остальных ног камня следует подавать.
  10. Применение каких средств разработки может облегчить жизнь, если цель- синтез под Альтеровское семейство? Сейчас делаю первые шаги в Verilog. Пользуюсь только Квартусом. Что бы такого еще дополнительно применить, чтобы скажем на автоматы времени поменьше тратить. Вижу, что для облегчения участи разработчика на HDL много чего есть, но я потерялся в этом многообразии. Интересует в первую очередь синтез.
  11. Стыковка ARM и ПЛИС.

    А для чего нужны резисторы в шинах?? Я ставил для исключения иголок на шине в момент переключения дюже шустрых микросхем. Да и блэкфиновская плата у меня единственная была- оберегал набортный кристалл, как мог. :)
  12. есть uClinux, он именно для работы без MMU и придуман.
  13. Стыковка ARM и ПЛИС.

    Я реализовывал подобный интерфейс между Блэкфином и Альтерой, 16-битный. В Альтере организовывал двухпортовое ОЗУ, через которое собственно и гонялись данные. С точки зрения CPU это все видилось как часть адресного пространства. Аппаратно положил резисторы 33 Ома в шинах и все. Абсолютно никаких проблем не было.
  14. Можно и обычным жалом, по крайней мере все кроме контроллера. Да и QFP208, говорят, люди паяют обычными жалами :). Истинная правда. Лично я такие QFP208 от Альтеры паял несколько раз простым паяльником 25W, в качестве жала была медь диаметром 1.5мм, ну и заточено соответственно. Причем простым припоем с канифолью, мыл спиртом (в прошлом веке было, какие такие микроволны...:)) Тут главное- чтобы руки не дрожали и хорошее освещение места пайки. Сейчас правда не буду даже советовать такое. Учитывая, что простая, но абсолютно достаточная паяльная станция с феном даже у нас в Кишиневе стоит около 90$. :)
  15. Извините, если повторю уже указанное. Вот список тех китов, которые я рассматривал, когда знакомился с AT91RM9200. Сначала указываю сайт, потом точную ссылку на схему кита. 1. http://www.armkits.com/Product/ATEB9200.asp http://www.armkits.com/download/ATEB9200Sch.pdf 2.http://www.atmel.com/dyn/resources/prod_documents/doc6006.pdf (Атмеловский кит, который сильно дорогой) 3. http://www.fh-augsburg.de/~hhoegl/proj/comet/index.html http://www.fh-augsburg.de/~hhoegl/proj/com...EM_V3_REL_A.pdf 4. http://www.ucrouter.ru/english/hardware.html http://www.ucrouter.ru/download/evm9200-sch.pdf Без комментариев :) 5. http://www.dlharmon.com/sbc.html http://www.dlharmon.com/sbc.pdf В схеме видел ошибки.
  16. Спасибо и за подтверждение и за либу. Сделал, как у Zyamizz. Ну и либа для контроля пойдет.
  17. Спасибо, если Вас не затруднит, меня скан того факса интересует. (можно и на [email protected]). На худой конец сойдет либа (перерисую с экрана установочные размеры :).
  18. Рисунок очченььь похожжжжжж..... Наверное руководствуясь его размерами и сделаю. Да и на Молексе посмотрел, те же <биип>, только в профиль. Подходит. Уже рисую элемент. :) СПАСИБО! :)
  19. Это разъем для CompactFlash, продается например в Буром Медведе. по картинке, представленной у них на сайте: http://www.brownbear.ru/products.php?id_to...page_products=1 я не могу понять расположение крепежных элементов (отверстий под винты плюс под выступающие пластмассовые наросты) относительно выводов, припаиваемых к плате. Расположение на рисунке не совпадает ни с имеющимися у меня другими разъемами, ни с спецификацией на CFcard. Вот и получается- либо ждать, пока приедут разъемы живьем, либо просить помощи у тутошних обитателей. HELP ME ! Пожалуйста.....
  20. Жаль. Насчет что производятся - я находил, да. Вот чего не нашел пока- это где реально купить (подходит и любой digikey), мне ж еще и хоть на -10 градусов нужно. Спасибо за ответ. Будем искать....
  21. Проблема следующая: есть контроллер дисплея S1D13506, к которому нужно подключать внешнюю память до 1Мx16. Сказано, что контроллер поддерживает следующие типы памяти: EDO-DRAM with 2-CAS# FPM-DRAM with 2-CAS# EDO-DRAM with 2-WE# FPM-DRAM with 2-WE# (symmetrical 256K×16 DRAM, symmetrical 1M×16 DRAM, asymmetrical 256K×16 DRAM, asymmetrical 1M×16 DRAM) Конфигурируемо практически все: и тактовая частота, и время рефреша, и т.д. Но как оказалось, купить такую память не так просто. Вот и возникла мысль: А нельзя ли прикрутить более свежую память, например SDRAM 4Mx16. Лишнии адреса (собственно, один адрес) подключаю на землю и использую микросхему в качестве 1Мх16 ? Или у EDO-FPM есть какие-то хитрые особенности, и SDRAM не получится прикрутить?
  22. Andy, не все так плохо. Скажу по личному опыту, как человек, иногда получающий всякую мелочь из России. и даже передающий кой-что в ту сторону. Пока живут на свете Проводники, почтой нам пользоваться не с руки. :-) Встречают поезда совсем не так, как самолеты..... :) К проводникам очереди стоят из желающих отправить и из желающих получить. Вкратце- поездные проводники без проблем передают все, что не похоже на запрещенные товары. С мелкими радиодеталями вообще проблем никаких. То есть ты при отправлении поезда приходишь на вокзал, договариваешься с конкретным проводником (по моему опыту - думаю, за платы больше 5$ не возьмут, у вас это же всего одна граница, можно наверное договориться и на оплату перевозки получателем. Если просит больше- иди в соседний вагон). Пишешь на передаваемом проводнику свертке фамилию получателя (лучше заклеивать при проводнике, да еще написать на свертке количество лежащего внутри). Далее сообщаешь принимающей стороне номер поезда, вагона, имена проводников(обычно их двое) и все. Принимающий идет на вокзал, встречает поезд, находит нужный вагон и проводника, показывает документ с той же фамилией что и на свертке, забирает сверток. Вот и все! :) Думаю, прямой поезд из Краснодара(через Краснодар) до Киева(через Киев) найти не сложно.
  23. Вопрос по плате. DS1307, согласно даташиту, не нуждается в дополнительных внешних конденсаторах для часового кварца. Или на практике приходится цеплять?
  24. 1. И я так думаю. У меня тот самый случай: самым мипсожрущим будет индикация. 2. Я уже написал тут свое мнение о применимости Линукс в качестве RTOS (а мне именно RT и нужно). 3. А почему ? Из-за сложности разводки или из-за возникающих помех? Я могу последовательные резисторы поставить возле каждого из источников сигналов, это поможет? Параллельную Flash я выкину, буду грузиться сразу в последовательную.
  25. Насчет SDRAM 16 vs 32 - я минимизировал, как мог, количество связей на плате. Я сейчас еще и параллельную Flash выброшу, вроде бы и без нее можно отлаживаться (записывать из IAR через J-Link в AT45Dxxx). Езернет я пока не буду ставить. В прибор он не нужен, а я пока не готов с ним разбираться. Насчет Линукса- однозначно НЕТ. Я поигрался с Блэкфином BF533 и uClinux, больше не хочу. Не реалтайм это. Насчет скорости считывания- пока RS232, вот как раз думаю, может FTDI для USB заложить, не хочу писать поддержку USB, но все-таки может быть захочу через USB работать :). Ну и на всякий пожарный я хочу под все выводы процессора заложить контактные площадки, может даже разъемы получится. Лично я, разумеется, за ОСь, но кто-то думает иначе. Я бы eCos выбрал, хотя пока нет готового порта eCos на AT91RM9200. Вот тут обещают к лету http://www.reimesch.de/ecos_en.html Я уже выбрал uCOS-II. Говорят, что вроде нормально крутится.
×
×
  • Создать...