|
|
  |
Процессор MicroBlaze, помощь начинающему |
|
|
|
Dec 21 2009, 19:25
|
Местный
  
Группа: Свой
Сообщений: 377
Регистрация: 23-12-06
Из: Зеленоград
Пользователь №: 23 811

|
Начните с MicroBlaze Processor Reference Guide. А так вообще на сайте xilinx в поиске Microblaze и погнали информации море. Xilinx, кстати, очень хорошо поддерживает свой софт процессор, куда лучше чем PPC405.
Причина редактирования: Избыточное цитирование
|
|
|
|
|
Dec 22 2009, 10:05
|

я только учусь...
     
Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839

|
Цитата(Mad_max @ Dec 21 2009, 22:25)  Начните с MicroBlaze Processor Reference Guide. А так вообще на сайте xilinx в поиске Microblaze и погнали информации море. Xilinx, кстати, очень хорошо поддерживает свой софт процессор, куда лучше чем PPC405. Да читал эту информацию, но там описана архитектура и все IP core, но как написать программу и привязать к какому-то конкретному выходу например подать/принять их на/по UART/SPI. Язык С/С++ я знаю для написания программ под Windows( Борланд С, Вижуал С++ ), но есть же разница писать под Windows и для микропроцессора, правда? (т.е. не нужно слов типа учи Си/С++ и будет тебе счастье и ссылки на стандарты Си/С++) Организовывать архитектуру микропроцессора и подсоеденить к нему IP core (переферию) прочитав мануалы(и тот который Вы предлагаете) я разобрался и делаю. Но что далее ... Уверен многие начинали с каких-то простых программ, например как принять байт и передать его обратно прибавив единицу, к полученному байту(слову) по UART, или что-то подобное. Где-то Вы читали как это делать или кто-то Вам рассказал и показал... ПОДЕЛИТЕСЬ ИНФОРМАЦИЕЙ ПОЖАЛУЙСТА!!! МНОГИЕ НА ФОРУМЕ РАБОТАЮТ С ПРОЦЕССОРОМ MicroBlaze ДАВНО - ПОДЕЛИТЕСЬ СВОИМИ ЗНАНИЯМИ, ПОЖАЛУЙСТА!!!
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
|
Dec 22 2009, 15:19
|
Участник

Группа: Участник
Сообщений: 33
Регистрация: 27-12-08
Из: Петербург
Пользователь №: 42 787

|
Надо плясать от Xilinx SDK. Он автоматически создает примеры для всей периферии. Ко всем драйверам есть HTLM документация, лежит в папках с Design Suit'ом. В остальном это обычное программирование на C =) Цитата Xilinx, кстати, очень хорошо поддерживает свой софт процессор, куда лучше чем PPC405. Не правда, все ip-блоки работают через одну шину (насколько я помню, IBM CoreConnect) и одинаково подходят как к PPC, так и к Microblaz'у. Так-что уровень поддержки одинаковый.
Сообщение отредактировал flipflop - Dec 22 2009, 15:19
|
|
|
|
|
Dec 22 2009, 20:42
|
Местный
  
Группа: Свой
Сообщений: 377
Регистрация: 23-12-06
Из: Зеленоград
Пользователь №: 23 811

|
Цитата Надо плясать от Xilinx SDK. Он автоматически создает примеры для всей периферии. SDK это среда разработи и своответственно ОНА ничего не создает, создает утилита libgen. Ну и если на то пошло, то создает она не примеры, а дравера для аппаратной части. Цитата(flipflop @ Dec 22 2009, 18:19)  Не правда, все ip-блоки работают через одну шину (насколько я помню, IBM CoreConnect) и одинаково подходят как к PPC, так и к Microblaz'у. Так-что уровень поддержки одинаковый. Поддержка имелось ввиду, не в аппартаном плане, а в плане наличия на сайте референс дезайнов и всяческих примеров использования. Цитата(Maverick @ Dec 22 2009, 13:05)  Да читал эту информацию, но там описана архитектура ... Ну раз уж вы все прочитали и все знаете, то тогда и вопрос задавайте конкретный, а то создается впечатление из первого поста, что Вы только взялись за эту задачу и не знаете с какого боку подойти. В предложенном документе должно быть написано как классический hello world запустить под дебагером. Hello world в данном случае и есть отправка по UART данных. Используется там функция xil_print, если она Вам не мила, то можете написать свою низкоуровневую функцию вывода. Собственно говоря, точно так же как и любую низкоуровнивую функцию для любой IP корки. Собственно говоря, xilinx уже практически все за Вас написал. Утилита libgen создает драйвера для каждой Вашей корки, нужно только взять то, что Вам нужно или на базе имеющегося написать свои функции общения с аппаратной частью. В принцепе это Вам и хотел сказать flipflop
Причина редактирования: Избыточное цитирование
|
|
|
|
|
Dec 23 2009, 08:24
|
Частый гость
 
Группа: Свой
Сообщений: 199
Регистрация: 2-03-05
Из: МОСКВА
Пользователь №: 3 016

|
Цитата(Maverick @ Dec 22 2009, 13:05)  Да читал эту информацию, но там описана архитектура ... Начните (для простоты ) с программирования в XPS. Пользовательский ввод и вывод осуществляется через UART на котором организован консольный интерфейс. xil_printf("HELLO WORD\r\n"). Подключаете Ваше устройство к РС, запускаете HYPERterminal, настраиваите параметры COM-порта и видите эту надпись на экране. Для организации обмена с IPблоками(своими или чужими) используется драйвер т.е. програмный интерфейс. Этот драйвер автоматически создается когда Вы создаете своё IP, и реализует выбраный Вами механизм обмена. По сути своей драйвер - это либо портовая операция либо операция с памятью.Для доступа к драйверу надо в окне Assambly на нужной корке кликнуть правой кнопкой. В меню выбрать подменю Driver:хххххххх, а в следующем меню - Browse driver souces.... Вам откроются С-файлы. Переключитесь на h-файлы. И Вам откроется Header драйвера. Этот файл подинклюдивается и используется. Для получения адреса Вашего IP Вам нужен файл xparameters.h Ищите его в окне Application, в строке processor. Файл генерится когда Вы нажимаете "Generate libraries and drivers".
Причина редактирования: Избыточное цитирование
|
|
|
|
|
Dec 23 2009, 09:53
|
Профессионал
    
Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118

|
У меня не MicroBlaze, не NIOS, не С/С++ --> 1) прошиваем систему: софт-процессор с загрузкой через COM и с выводом на VGA, 2) пишем proba.pas: Код module main begin writeln('Hello, world') halt() end 3) компилируем: a.exe proba.pas 4) запускаем copy proba.hex com --> видим на мониторе: Hello, world
Сообщение отредактировал Leka - Dec 23 2009, 09:56
|
|
|
|
|
Dec 24 2009, 11:11
|

Знающий
   
Группа: Свой
Сообщений: 589
Регистрация: 14-08-05
Из: Украина
Пользователь №: 7 621

|
Цитата(Maverick @ Dec 18 2009, 16:10)  ... Требуется любая информация(примеры написания листингов программ, обучающая литература и т.д.) по написанию программ на С/С++ для данного процессора. ... Много примеров можно посмотреть здесь %%\EDK\sw\XilinxProcessorIPLib\drivers\
--------------------
"Мы будем играть, пока не треснут наши гитары, и все те, кто любит рок - я отдаю вам честь!" AC/DC
|
|
|
|
|
Dec 28 2009, 10:41
|

я только учусь...
     
Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839

|
Цитата(Leka @ Dec 26 2009, 01:22)  Ну и каковы успехи? Программа Код int main() { print("Helo World\n"); return 0; Получилась... Скриншот с гипертерминала прикладываю Плиз, помогите разобратья как принимать какие-то данные по UART. Например я в гипертермиле ввожу число, а программа к этому прибавляет(например 1 или какую-нибудь константу) и результат выдает на экран. Плата Xilinx ML402ОЧЕНЬ НУЖНО!!!
Эскизы прикрепленных изображений
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
|
Dec 29 2009, 09:55
|
Местный
  
Группа: Свой
Сообщений: 377
Регистрация: 23-12-06
Из: Зеленоград
Пользователь №: 23 811

|
Не ну Вы прямо как студент! Напишите мне и все. Тыркните на вашу корку в EDK вылезит менюшка, там на одной из вкладок будет pdf значок. В этой pdf все четко расписано как работает UART. Не хотите лазить в EDK вот Вам ссылка http://www.xilinx.com/ise/embedded/edk_ip.htmпо ней найдете документ на корку. Далее изучаете все управляющие и статусные регистры свой корки. В полинге мониторите бит, говорящий о том, что данные по UART приняты. Далее читайте прибавляете и отправляйте обратно. Предвидя следующий пост вот вам пример как писать и читать с адресов. Код int main() { int i=0; int *addr_ptr; int status; addr_ptr = (int*)BASE_ADR; //Адрес по которому хотим записать *addr_ptr = 0xAAAAAAAA; //Данны, которые хотим записать addr_ptr = (int*)BASE_ADR; //Адрес по которому хотим прочитать status = *addr_ptr; //Прочитанные данные
}
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|