dspx 0 December 30, 2009 Posted December 30, 2009 · Report post ПРОСТИТЕ! Просто я никогда не программировал процессоры, и не знаю с какой стороны подойти Советую посмотреть обучалки на YouTube Xilinx EDK Tutorial - A Guided Tour of the Platform Studio - Part 1 Xilinx EDK Tutorial - A Guided Tour of the Platform Studio - Part 2 Xilinx EDK Tutorial - A Guided Tour of the Platform Studio - Part 3 Xilinx EDK Tutorial - Adding custom IP to an EDK Project - Part 1 Xilinx EDK Tutorial - Adding custom IP to an EDK Project - Part 2 Xilinx EDK Tutorial - Adding custom IP to an EDK Project - Part 34 Xilinx EDK Tutorial - Adding MPMC to an EDK Project - Part 14 Xilinx EDK Tutorial - Adding MPMC to an EDK Project - Part 2 Xilinx EDK Tutorial - Adding MPMC to an EDK Project - Part 3 Xilinx EDK Tutorial - Integrating EDK and ISE Projects Xilinx EDK Tutorial - Using the Base System Builder Wizard - Part 1 Xilinx EDK Tutorial - Using the Base System Builder Wizard - Part 2 Как только запустите приложение testapp_peripheral, сразу поймете как через драйвера обращаться с вашими устройствами периферии, в том числе со светодиодами и кнопками, Тем более на Uart вам уже удалось вывести базовое приложение. Quote Share this post Link to post Share on other sites More sharing options...
Maverick_ 17 January 4, 2010 Posted January 4, 2010 (edited) · Report post dspx Спасибо за обучающие видеоролики. Будем смотреть и разбираться дальше... ЗЫ Тема остается открытой Edited January 5, 2010 by Omen_13 Избыточное цитирование. Нарушение Правил п.3.4 Quote Share this post Link to post Share on other sites More sharing options...
Maverick_ 17 February 2, 2010 Posted February 2, 2010 · Report post Помогите написать программу на С для MicroBlaze для реализации следующей задачи: выводить любое сообщение на HyperTerminal через определенное время например через 5 сек и прерываться от нажатия кнопки. Повторное нажатие - продолжение работы - вывод на экран сообщения. Если этот пример сложный, то подойдет любой другой пример. Очень нужно разобраться (с таймером и работой с прерываниями) - ПОМОГИТЕ, ПЛИЗ!!! ЗЫ Среда разработки EDK 10.1.03. Плата ML 402 Шина процессора PLB (не ОРВ) Quote Share this post Link to post Share on other sites More sharing options...
Alex77 12 February 3, 2010 Posted February 3, 2010 · Report post Все примеры как работать с прерываниями, таймерами и всем остальным есть в EDK. Или Вы хотите чтобы _сюда_ были скопированы все эти примеры которые есть у Вас ? * @file xintc_example.c * * This file contains a design example using the Interrupt Controller driver * (XIntc) and hardware device. Please reference other device driver examples to * see more examples of how the intc and interrupts can be used by a software * application. * * This example shows the use of the Interrupt Controller both with a PowerPC405 * and MicroBlaze processor. * :( Quote Share this post Link to post Share on other sites More sharing options...
Maverick_ 17 February 3, 2010 Posted February 3, 2010 · Report post да нет не надо, просто думал что у многих такие простые примеры есть и люди могли бы (если конечно захотят) поделиться. Все кто начинает работать с каким либо микропроцессором когда то делали мигание светодиодом, отработку кнопок и т.д. Потому что это наглядней! Но это только мое мнение!!! ЗЫ Примеры видел ссылку на них мне дали ранее в этой же ветке форума ЗЫ ЗЫ Будем дальше разбираться. СПАСИБО! :) Quote Share this post Link to post Share on other sites More sharing options...
Alex77 12 February 3, 2010 Posted February 3, 2010 · Report post Просто такие "программы" пишутся за 10 мин. используются 5 мин. а потом вчистую удаляют... Так что ... :rolleyes: Паузу к примеру можно делать по простому так: считать текущее значение таймера и потом считывать в цикле со сравнением с вычисленным значением (тек знач + дельта) . Вариантов много... Quote Share this post Link to post Share on other sites More sharing options...
dspx 0 February 3, 2010 Posted February 3, 2010 (edited) · Report post да нет не надо, просто думал что у многих такие простые примеры есть и люди могли бы (если конечно захотят) поделиться. Все кто начинает работать с каким либо микропроцессором когда то делали мигание светодиодом, отработку кнопок и т.д. Потому что это наглядней! Но это только мое мнение!!! ЗЫ Примеры видел ссылку на них мне дали ранее в этой же ветке форума ЗЫ ЗЫ Будем дальше разбираться. СПАСИБО! :) Если будет время накатаю. Но самый простой способ для вас - это использовать Base System Builder Wizard прямо под ваш кит. Там нужно только галочки поставить, какие компоненты должны быть вставлены. Визард сам сгенерит вам готовую систему с драйверами и, даже, тестовыми приложениями. Не разобравшись с функциями для работы с UART, таймером и контроллером прерываний, вы все равно не поймете как работает даже готовый пример. Так что, начните с изучения С функций и как они используются в примерах к вашей системе. Комментарий к каждой из них более чем подробный. Без этого все равно никак. Edited February 3, 2010 by dspx Quote Share this post Link to post Share on other sites More sharing options...
andrewn 0 February 3, 2010 Posted February 3, 2010 · Report post Все кто начинает работать с каким либо микропроцессором когда то делали мигание светодиодом, отработку кнопок и т.д. И я с этим сталкивался, когда работал с ML410 (и ещё придётся продолжить), но без MBZ, только с PPC405. Очень полезно установить XPS - Xilinx Platform Studio, вероятно у вас он уже установлен. Там целая куча разнообразных примеров для всевозможных периферийных устройств. И ещё нужно просмотреть App Notes на сайте Xilinx, там тоже куча примеров. Вот только по VGA out я ничего не нашел, а поскольку vhdl я не использую, только готовые блоки, остался я без экрана... Quote Share this post Link to post Share on other sites More sharing options...
Maverick_ 17 February 4, 2010 Posted February 4, 2010 (edited) · Report post ... Вы не могли бы дать ссылки на примеры, если их нет ранее в этой ветке форума. Заранее благодарен! Edited February 7, 2010 by Omen_13 Избыточное цитирование Quote Share this post Link to post Share on other sites More sharing options...
andrewn 0 February 5, 2010 Posted February 5, 2010 · Report post Вы не могли бы дать ссылки на примеры, если их нет ранее в этой ветке форума. Я искал здесь: http://www.xilinx.com/support/documentation/index.htm select "Doc Type" and "Application Notes" Quote Share this post Link to post Share on other sites More sharing options...
Maverick_ 17 February 12, 2010 Posted February 12, 2010 · Report post вопрос: какие библиотеку нужно подключить кроме (#include math.h) чтобы процессор выполнял действия с дробными числами и как вывести их через xil_printf. Пытался так float count; count = 5/3; xil_printf(" mat= %f \n\r",count); не получается. PS блок FPU я не подключал Quote Share this post Link to post Share on other sites More sharing options...
dspx 0 February 12, 2010 Posted February 12, 2010 (edited) · Report post ... Ну так нужно подключить. И ознакомьтесь с IEEE 754 Single Precision Format в документации к Microblaze. Edited February 14, 2010 by Omen_13 Избыточное цитирование Quote Share this post Link to post Share on other sites More sharing options...
dspx 0 February 12, 2010 Posted February 12, 2010 · Report post http://www.xilinx.com/support/answers/29787.htm полезная ссылка показывающая, с какими ошибками можно столкнуться, работая с дробными, и как их решить. Quote Share this post Link to post Share on other sites More sharing options...
Alex77 12 February 15, 2010 Posted February 15, 2010 · Report post вопрос: какие библиотеку нужно подключить кроме (#include math.h) чтобы процессор выполнял действия с дробными числами и как вывести их через xil_printf. Пытался так float count; count = 5/3; xil_printf(" mat= %f \n\r",count); не получается. PS блок FPU я не подключал Согласно документации (в файле oslib_rm.pdf ) "void xil_printf (const *char ctrl1,...) xil_printf is a light-weight implementation of printf. It is much smaller in size (only 1 kB). It does not have support for floating point numbers. xil_printf also does not support printing of long (such as 64-bit) numbers." Вывод: 1) чтение документации полезно всегда 2) printf() должен помочь :) Quote Share this post Link to post Share on other sites More sharing options...
dsip 0 February 16, 2010 Posted February 16, 2010 (edited) · Report post Циферки выводятся так: Xuint32 data; ... data = ...; ... print(" Data 0x"); putnum( data ); print("\r\n"); Прерывания пользуются так (пример для кнопок с ML402); void InterruptHandler() { // PB interrapt processing if( XIntc_mGetIntrStatus( XPAR_INTC_0_BASEADDR ) & XPAR_PUSH_BUTTONS_POSITION_IP2INTC_IRPT_MASK ) { // Detect button switch( XGpio_mGetDataReg(XPAR_PUSH_BUTTONS_POSITION_BASEADDR, 1) ) { case GPIO_PB_N_MASK : // move block_cur_y_pos -= 10; break; case GPIO_PB_S_MASK : // move block_cur_y_pos += 10; break; case GPIO_PB_E_MASK : // move block_cur_x_pos += 10; break; case GPIO_PB_W_MASK : // move block_cur_x_pos -= 10; break; } // Clear GPIO interrupt status XGpio_mWriteReg( XPAR_PUSH_BUTTONS_POSITION_BASEADDR, XGPIO_ISR_OFFSET, XGPIO_IR_CH1_MASK ); // Clear IntC interrupt status XIntc_mAckIntr( XPAR_INTC_0_BASEADDR, XPAR_PUSH_BUTTONS_POSITION_IP2INTC_IRPT_MASK ); } } Драйвера у Xilinx двух уровней, я пользую нижний <ip core driver>_l.h, здесь всегда приходится подставлять базовый адрес ядра. Все функции называются X<ip core>_m<function>. Путь к драйверам (пример) C:\Xilinx\10.1\EDK\sw\XilinxProcessorIPLib\drivers\gpio_v2_12_a\src. Все функции хорошо прокомментированы. Все параметры - базовые адреса, номера прерываний, всяческие маски находятся в файле xparameters.h. Набор заголовочных файлов примерно такой: // Всякая батва от проца #include "xparameters.h" #include "xbasic_types.h" #include "mb_interface.h" // Низкоуровневые драйверы #include "xintc_l.h" #include "xgpio_l.h" // Классика #include "stdio.h" Edited February 21, 2010 by Omen_13 Оформление кода Quote Share this post Link to post Share on other sites More sharing options...