Maverick_ 17 December 18, 2009 Posted December 18, 2009 · Report post :rolleyes: Требуется любая информация(примеры написания листингов программ, обучающая литература и т.д.) по написанию программ на С/С++ для данного процессора. ЗЫ Необходим быстрый начальный старт. :1111493779: Quote Share this post Link to post Share on other sites More sharing options...
Mad_kvmg 0 December 21, 2009 Posted December 21, 2009 · Report post Начните с MicroBlaze Processor Reference Guide. А так вообще на сайте xilinx в поиске Microblaze и погнали информации море. Xilinx, кстати, очень хорошо поддерживает свой софт процессор, куда лучше чем PPC405. Quote Share this post Link to post Share on other sites More sharing options...
Maverick_ 17 December 22, 2009 Posted December 22, 2009 · Report post Начните с MicroBlaze Processor Reference Guide. А так вообще на сайте xilinx в поиске Microblaze и погнали информации море. Xilinx, кстати, очень хорошо поддерживает свой софт процессор, куда лучше чем PPC405. Да читал эту информацию, но там описана архитектура и все IP core, но как написать программу и привязать к какому-то конкретному выходу например подать/принять их на/по UART/SPI. Язык С/С++ я знаю для написания программ под Windows( Борланд С, Вижуал С++ ), но есть же разница писать под Windows и для микропроцессора, правда? (т.е. не нужно слов типа учи Си/С++ и будет тебе счастье и ссылки на стандарты Си/С++) Организовывать архитектуру микропроцессора и подсоеденить к нему IP core (переферию) прочитав мануалы(и тот который Вы предлагаете) я разобрался и делаю. Но что далее ... Уверен многие начинали с каких-то простых программ, например как принять байт и передать его обратно прибавив единицу, к полученному байту(слову) по UART, или что-то подобное. Где-то Вы читали как это делать или кто-то Вам рассказал и показал... ПОДЕЛИТЕСЬ ИНФОРМАЦИЕЙ ПОЖАЛУЙСТА!!! МНОГИЕ НА ФОРУМЕ РАБОТАЮТ С ПРОЦЕССОРОМ MicroBlaze ДАВНО - ПОДЕЛИТЕСЬ СВОИМИ ЗНАНИЯМИ, ПОЖАЛУЙСТА!!! Quote Share this post Link to post Share on other sites More sharing options...
Egel 0 December 22, 2009 Posted December 22, 2009 · Report post Присоединяюсь к просьбе Maverick Quote Share this post Link to post Share on other sites More sharing options...
flipflop 0 December 22, 2009 Posted December 22, 2009 (edited) · Report post Надо плясать от Xilinx SDK. Он автоматически создает примеры для всей периферии. Ко всем драйверам есть HTLM документация, лежит в папках с Design Suit'ом. В остальном это обычное программирование на C =) Xilinx, кстати, очень хорошо поддерживает свой софт процессор, куда лучше чем PPC405. Не правда, все ip-блоки работают через одну шину (насколько я помню, IBM CoreConnect) и одинаково подходят как к PPC, так и к Microblaz'у. Так-что уровень поддержки одинаковый. Edited December 22, 2009 by flipflop Quote Share this post Link to post Share on other sites More sharing options...
Mad_kvmg 0 December 22, 2009 Posted December 22, 2009 · Report post Надо плясать от Xilinx SDK. Он автоматически создает примеры для всей периферии. SDK это среда разработи и своответственно ОНА ничего не создает, создает утилита libgen. Ну и если на то пошло, то создает она не примеры, а дравера для аппаратной части. Не правда, все ip-блоки работают через одну шину (насколько я помню, IBM CoreConnect) и одинаково подходят как к PPC, так и к Microblaz'у. Так-что уровень поддержки одинаковый. Поддержка имелось ввиду, не в аппартаном плане, а в плане наличия на сайте референс дезайнов и всяческих примеров использования. Да читал эту информацию, но там описана архитектура ... Ну раз уж вы все прочитали и все знаете, то тогда и вопрос задавайте конкретный, а то создается впечатление из первого поста, что Вы только взялись за эту задачу и не знаете с какого боку подойти. В предложенном документе должно быть написано как классический hello world запустить под дебагером. Hello world в данном случае и есть отправка по UART данных. Используется там функция xil_print, если она Вам не мила, то можете написать свою низкоуровневую функцию вывода. Собственно говоря, точно так же как и любую низкоуровнивую функцию для любой IP корки. Собственно говоря, xilinx уже практически все за Вас написал. Утилита libgen создает драйвера для каждой Вашей корки, нужно только взять то, что Вам нужно или на базе имеющегося написать свои функции общения с аппаратной частью. В принцепе это Вам и хотел сказать flipflop Quote Share this post Link to post Share on other sites More sharing options...
tolik1 0 December 23, 2009 Posted December 23, 2009 · Report post Да читал эту информацию, но там описана архитектура ... Начните (для простоты ) с программирования в 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". Quote Share this post Link to post Share on other sites More sharing options...
Leka 1 December 23, 2009 Posted December 23, 2009 (edited) · Report post У меня не MicroBlaze, не NIOS, не С/С++ --> :bb-offtopic: 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 :laughing: Edited December 23, 2009 by Leka Quote Share this post Link to post Share on other sites More sharing options...
avesat 0 December 24, 2009 Posted December 24, 2009 · Report post ... Требуется любая информация(примеры написания листингов программ, обучающая литература и т.д.) по написанию программ на С/С++ для данного процессора. ... Много примеров можно посмотреть здесь %%\EDK\sw\XilinxProcessorIPLib\drivers\ Quote Share this post Link to post Share on other sites More sharing options...
Leka 1 December 25, 2009 Posted December 25, 2009 · Report post Ну и каковы успехи? Quote Share this post Link to post Share on other sites More sharing options...
Maverick_ 17 December 28, 2009 Posted December 28, 2009 · Report post Ну и каковы успехи? Программа int main() { print("Helo World\n"); return 0; Получилась... Скриншот с гипертерминала прикладываю Плиз, помогите разобратья как принимать какие-то данные по UART. Например я в гипертермиле ввожу число, а программа к этому прибавляет(например 1 или какую-нибудь константу) и результат выдает на экран. Плата Xilinx ML402 ОЧЕНЬ НУЖНО!!! Quote Share this post Link to post Share on other sites More sharing options...
Maverick_ 17 December 29, 2009 Posted December 29, 2009 · Report post что неужели никто такой простенькой программы не писал??? ЗЫ не верю Quote Share this post Link to post Share on other sites More sharing options...
avesat 0 December 29, 2009 Posted December 29, 2009 · Report post %%EDK\sw\XilinxProcessorIPLib\drivers\uartlite_v1_14_a\examples\ Есть любые примеры, в том числе и как работать с прерываниями Quote Share this post Link to post Share on other sites More sharing options...
Mad_kvmg 0 December 29, 2009 Posted December 29, 2009 · Report post Не ну Вы прямо как студент! Напишите мне и все. Тыркните на вашу корку в 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; //Прочитанные данные } Quote Share this post Link to post Share on other sites More sharing options...
Maverick_ 17 December 29, 2009 Posted December 29, 2009 · Report post ПРОСТИТЕ! Просто я никогда не программировал процессоры, и не знаю с какой стороны подойти Quote Share this post Link to post Share on other sites More sharing options...