реклама на сайте
подробности

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Процессор MicroBlaze, помощь начинающему
dspx
сообщение Dec 30 2009, 18:11
Сообщение #16


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 6-01-06
Из: Москва
Пользователь №: 12 876



Цитата(Maverick @ Dec 29 2009, 13:01) *
ПРОСТИТЕ!
Просто я никогда не программировал процессоры, и не знаю с какой стороны подойти


Советую посмотреть обучалки на 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 вам уже удалось вывести базовое приложение.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Jan 4 2010, 14:15
Сообщение #17


я только учусь...
******

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



dspx
Спасибо за обучающие видеоролики. Будем смотреть и разбираться дальше...

ЗЫ Тема остается открытой

Сообщение отредактировал Omen_13 - Jan 5 2010, 00:29
Причина редактирования: Избыточное цитирование. Нарушение Правил п.3.4


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Maverick
сообщение Feb 2 2010, 13:45
Сообщение #18


я только учусь...
******

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



Помогите написать программу на С для MicroBlaze для реализации следующей задачи: выводить любое сообщение на HyperTerminal через определенное время например через 5 сек и прерываться от нажатия кнопки. Повторное нажатие - продолжение работы - вывод на экран сообщения.

Если этот пример сложный, то подойдет любой другой пример.

Очень нужно разобраться (с таймером и работой с прерываниями) - ПОМОГИТЕ, ПЛИЗ!!!

ЗЫ Среда разработки EDK 10.1.03. Плата ML 402 Шина процессора PLB (не ОРВ)


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Alex77
сообщение Feb 3 2010, 08:15
Сообщение #19


Местный
***

Группа: Участник
Сообщений: 295
Регистрация: 2-12-05
Пользователь №: 11 695



Все примеры как работать с прерываниями, таймерами и всем остальным есть в 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.
*
sad.gif
Go to the top of the page
 
+Quote Post
Maverick
сообщение Feb 3 2010, 10:13
Сообщение #20


я только учусь...
******

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



Цитата(Alex77 @ Feb 3 2010, 10:15) *

да нет не надо, просто думал что у многих такие простые примеры есть и люди могли бы (если конечно захотят) поделиться. Все кто начинает работать с каким либо микропроцессором когда то делали мигание светодиодом, отработку кнопок и т.д. Потому что это наглядней! Но это только мое мнение!!!

ЗЫ Примеры видел ссылку на них мне дали ранее в этой же ветке форума
ЗЫ ЗЫ Будем дальше разбираться.

СПАСИБО! smile.gif


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Alex77
сообщение Feb 3 2010, 10:29
Сообщение #21


Местный
***

Группа: Участник
Сообщений: 295
Регистрация: 2-12-05
Пользователь №: 11 695



Просто такие "программы" пишутся за 10 мин. используются 5 мин. а потом вчистую удаляют... Так что ... rolleyes.gif
Паузу к примеру можно делать по простому так: считать текущее значение таймера и потом считывать в цикле со сравнением с вычисленным значением (тек знач + дельта) . Вариантов много...
Go to the top of the page
 
+Quote Post
dspx
сообщение Feb 3 2010, 16:57
Сообщение #22


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 6-01-06
Из: Москва
Пользователь №: 12 876



Цитата(Maverick @ Feb 3 2010, 13:13) *
да нет не надо, просто думал что у многих такие простые примеры есть и люди могли бы (если конечно захотят) поделиться. Все кто начинает работать с каким либо микропроцессором когда то делали мигание светодиодом, отработку кнопок и т.д. Потому что это наглядней! Но это только мое мнение!!!

ЗЫ Примеры видел ссылку на них мне дали ранее в этой же ветке форума
ЗЫ ЗЫ Будем дальше разбираться.

СПАСИБО! smile.gif


Если будет время накатаю. Но самый простой способ для вас - это использовать Base System Builder Wizard прямо под ваш кит. Там нужно только галочки поставить, какие компоненты должны быть вставлены. Визард сам сгенерит вам готовую систему с драйверами и, даже, тестовыми приложениями. Не разобравшись с функциями для работы с UART, таймером и контроллером прерываний, вы все равно не поймете как работает даже готовый пример. Так что, начните с изучения С функций и как они используются в примерах к вашей системе. Комментарий к каждой из них более чем подробный. Без этого все равно никак.

Сообщение отредактировал dspx - Feb 3 2010, 17:47
Go to the top of the page
 
+Quote Post
AndrewN
сообщение Feb 3 2010, 17:25
Сообщение #23


Местный
***

Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961



Цитата(Maverick @ Feb 3 2010, 13:13) *
Все кто начинает работать с каким либо микропроцессором когда то делали мигание светодиодом, отработку кнопок и т.д.

И я с этим сталкивался, когда работал с ML410 (и ещё придётся продолжить), но без MBZ, только с PPC405. Очень полезно установить XPS - Xilinx Platform Studio, вероятно у вас он уже установлен. Там целая куча разнообразных примеров для всевозможных периферийных устройств. И ещё нужно просмотреть App Notes на сайте Xilinx, там тоже куча примеров.

Вот только по VGA out я ничего не нашел, а поскольку vhdl я не использую, только готовые блоки, остался я без экрана...
Go to the top of the page
 
+Quote Post
Maverick
сообщение Feb 4 2010, 08:29
Сообщение #24


я только учусь...
******

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



Цитата(AndrewN @ Feb 3 2010, 19:25) *
...


Вы не могли бы дать ссылки на примеры, если их нет ранее в этой ветке форума.

Заранее благодарен!

Сообщение отредактировал Omen_13 - Feb 7 2010, 16:44
Причина редактирования: Избыточное цитирование


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
AndrewN
сообщение Feb 5 2010, 19:34
Сообщение #25


Местный
***

Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961



Цитата(Maverick @ Feb 4 2010, 11:29) *
Вы не могли бы дать ссылки на примеры, если их нет ранее в этой ветке форума.

Я искал здесь:
http://www.xilinx.com/support/documentation/index.htm
select "Doc Type" and "Application Notes"
Go to the top of the page
 
+Quote Post
Maverick
сообщение Feb 12 2010, 15:40
Сообщение #26


я только учусь...
******

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



вопрос: какие библиотеку нужно подключить кроме (#include math.h) чтобы процессор выполнял действия с дробными числами и как вывести их через xil_printf. Пытался так

float count;

count = 5/3;

xil_printf(" mat= %f \n\r",count);

не получается. help.gif

PS блок FPU я не подключал


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
dspx
сообщение Feb 12 2010, 16:17
Сообщение #27


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 6-01-06
Из: Москва
Пользователь №: 12 876



Цитата(Maverick @ Feb 12 2010, 18:40) *
...


Ну так нужно подключить. И ознакомьтесь с IEEE 754 Single Precision Format в документации к Microblaze.

Сообщение отредактировал Omen_13 - Feb 14 2010, 21:48
Причина редактирования: Избыточное цитирование
Go to the top of the page
 
+Quote Post
dspx
сообщение Feb 12 2010, 18:33
Сообщение #28


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 6-01-06
Из: Москва
Пользователь №: 12 876



http://www.xilinx.com/support/answers/29787.htm
полезная ссылка показывающая, с какими ошибками можно столкнуться, работая с дробными, и как их решить.
Go to the top of the page
 
+Quote Post
Alex77
сообщение Feb 15 2010, 07:34
Сообщение #29


Местный
***

Группа: Участник
Сообщений: 295
Регистрация: 2-12-05
Пользователь №: 11 695



Цитата(Maverick @ Feb 12 2010, 18:40) *
вопрос: какие библиотеку нужно подключить кроме (#include math.h) чтобы процессор выполнял действия с дробными числами и как вывести их через xil_printf. Пытался так

float count;

count = 5/3;

xil_printf(" mat= %f \n\r",count);

не получается. help.gif

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() должен помочь
smile.gif
Go to the top of the page
 
+Quote Post
DSIP
сообщение Feb 16 2010, 07:57
Сообщение #30


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 18-04-07
Из: Россия, г. Томск
Пользователь №: 27 137



Циферки выводятся так:
Код
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"

Сообщение отредактировал Omen_13 - Feb 21 2010, 12:47
Причина редактирования: Оформление кода
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st August 2025 - 08:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.02823 секунд с 7
ELECTRONIX ©2004-2016