Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Процессор MicroBlaze
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Maverick
rolleyes.gif Требуется любая информация(примеры написания листингов программ, обучающая литература и т.д.) по написанию программ на С/С++ для данного процессора.

ЗЫ Необходим быстрый начальный старт. 1111493779.gif

help.gif help.gif help.gif
Mad_max
Начните с MicroBlaze Processor Reference Guide.
А так вообще на сайте xilinx в поиске Microblaze и погнали информации море.
Xilinx, кстати, очень хорошо поддерживает свой софт процессор,
куда лучше чем PPC405.
Maverick
Цитата(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 ДАВНО - ПОДЕЛИТЕСЬ СВОИМИ ЗНАНИЯМИ, ПОЖАЛУЙСТА!!!
help.gif
Egel
Присоединяюсь к просьбе Maverick
flipflop
Надо плясать от Xilinx SDK. Он автоматически создает примеры для всей периферии. Ко всем драйверам есть HTLM документация, лежит в папках с Design Suit'ом. В остальном это обычное программирование на C =)

Цитата
Xilinx, кстати, очень хорошо поддерживает свой софт процессор,
куда лучше чем PPC405.

Не правда, все ip-блоки работают через одну шину (насколько я помню, IBM CoreConnect) и одинаково подходят как к PPC, так и к Microblaz'у. Так-что уровень поддержки одинаковый.
Mad_max
Цитата
Надо плясать от 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 biggrin.gif
tolik1
Цитата(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".
Leka
У меня не MicroBlaze, не NIOS, не С/С++ -->
bb-offtopic.gif
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.gif
avesat
Цитата(Maverick @ Dec 18 2009, 16:10) *
... Требуется любая информация(примеры написания листингов программ, обучающая литература и т.д.) по написанию программ на С/С++ для данного процессора.
...

Много примеров можно посмотреть здесь

%%\EDK\sw\XilinxProcessorIPLib\drivers\
Leka
Цитата(Maverick @ Dec 22 2009, 14:05) *

Ну и каковы успехи?
Maverick
Цитата(Leka @ Dec 26 2009, 01:22) *
Ну и каковы успехи?

Программа
Код
int main()
{
    print("Helo World\n");
    return 0;

Получилась... Скриншот с гипертерминала прикладываю

Плиз, помогите разобратья как принимать какие-то данные по UART. Например я в гипертермиле ввожу число, а программа к этому прибавляет(например 1 или какую-нибудь константу) и результат выдает на экран.

Плата Xilinx ML402

ОЧЕНЬ НУЖНО!!!
Maverick
что неужели никто такой простенькой программы не писал???
ЗЫ не верю
avesat
%%EDK\sw\XilinxProcessorIPLib\drivers\uartlite_v1_14_a\examples\

Есть любые примеры, в том числе и как работать с прерываниями
Mad_max
Не ну Вы прямо как студент! Напишите мне и все.
Тыркните на вашу корку в 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;            //Прочитанные данные

}
Maverick
Цитата(Mad_max @ Dec 29 2009, 12:55) *


ПРОСТИТЕ!
Просто я никогда не программировал процессоры, и не знаю с какой стороны подойти
dspx
Цитата(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 вам уже удалось вывести базовое приложение.
Maverick
dspx
Спасибо за обучающие видеоролики. Будем смотреть и разбираться дальше...

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

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

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

ЗЫ Среда разработки EDK 10.1.03. Плата ML 402 Шина процессора PLB (не ОРВ)
Alex77
Все примеры как работать с прерываниями, таймерами и всем остальным есть в 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
Maverick
Цитата(Alex77 @ Feb 3 2010, 10:15) *

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

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

СПАСИБО! smile.gif
Alex77
Просто такие "программы" пишутся за 10 мин. используются 5 мин. а потом вчистую удаляют... Так что ... rolleyes.gif
Паузу к примеру можно делать по простому так: считать текущее значение таймера и потом считывать в цикле со сравнением с вычисленным значением (тек знач + дельта) . Вариантов много...
dspx
Цитата(Maverick @ Feb 3 2010, 13:13) *
да нет не надо, просто думал что у многих такие простые примеры есть и люди могли бы (если конечно захотят) поделиться. Все кто начинает работать с каким либо микропроцессором когда то делали мигание светодиодом, отработку кнопок и т.д. Потому что это наглядней! Но это только мое мнение!!!

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

СПАСИБО! smile.gif


Если будет время накатаю. Но самый простой способ для вас - это использовать Base System Builder Wizard прямо под ваш кит. Там нужно только галочки поставить, какие компоненты должны быть вставлены. Визард сам сгенерит вам готовую систему с драйверами и, даже, тестовыми приложениями. Не разобравшись с функциями для работы с UART, таймером и контроллером прерываний, вы все равно не поймете как работает даже готовый пример. Так что, начните с изучения С функций и как они используются в примерах к вашей системе. Комментарий к каждой из них более чем подробный. Без этого все равно никак.
AndrewN
Цитата(Maverick @ Feb 3 2010, 13:13) *
Все кто начинает работать с каким либо микропроцессором когда то делали мигание светодиодом, отработку кнопок и т.д.

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

Вот только по VGA out я ничего не нашел, а поскольку vhdl я не использую, только готовые блоки, остался я без экрана...
Maverick
Цитата(AndrewN @ Feb 3 2010, 19:25) *
...


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

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

Я искал здесь:
http://www.xilinx.com/support/documentation/index.htm
select "Doc Type" and "Application Notes"
Maverick
вопрос: какие библиотеку нужно подключить кроме (#include math.h) чтобы процессор выполнял действия с дробными числами и как вывести их через xil_printf. Пытался так

float count;

count = 5/3;

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

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

PS блок FPU я не подключал
dspx
Цитата(Maverick @ Feb 12 2010, 18:40) *
...


Ну так нужно подключить. И ознакомьтесь с IEEE 754 Single Precision Format в документации к Microblaze.
dspx
http://www.xilinx.com/support/answers/29787.htm
полезная ссылка показывающая, с какими ошибками можно столкнуться, работая с дробными, и как их решить.
Alex77
Цитата(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
DSIP
Циферки выводятся так:
Код
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"
Maverick
С выводом чисел с плавающей запятой расписано в floating_point_MicroBlaze на стр. 19 даже пример имеется. smile.gif

ЗЫ Будем разбираться дальше...
Maverick
Написав следующую программу(подкорректировав(заменив printf на xil_printf и добавил очистку экрана xil_printf("%c[2J",27)wink.gif приведенную в примере):
CODE
#include <stdio.h>
main() {
union int32_or_single {
int i;
float f;
} a, b, r, rs;
union int64_or_double {
long long int i; // Please specify 64-bit integer type for platform
double f;
} rd;
// Uncomment to assign values in decimal
//a.f = 15161.0;
//b.f = 1077.00048828125;
// Assign values in hexadecimal
a.i=0x466CE400;
b.i=0x4486A004;
//Do the deed (in this example subtraction)
r.f=a.f - b.f;
//Repeat, but this time do in double precision to avoid rounding
rd.f=(double) a.f - (double) b.f;
xil_printf("%c[2J",27);
xil_printf("a: Hex=%08X \r\n ", a.i);
xil_printf("Float=%.11f \r\n", a.f);
xil_printf("b: Hex=%08X \r\n", b.i);
xil_printf("Float=%.11f \r\n", b.f);
xil_printf("Single result: Hex=%08X \r\n", r.i);
xil_printf("Float=%.11f \r\n", r.f);
xil_printf("Double result: Hex=%08X%08X \r\n",(int)(rd.i>>32),(int)(rd.i&0xFFFFFFFF));
xil_printf("Float=%.11f \r\n", rd.f);
rs.f = (float) rd.f; // Round result from double to single
xil_printf("Double rounded to single: Hex=%08X \r\n", rs.i);
xil_printf("Float=%.11f \r\n", rs.f);
// Expect the following output:
// a: Hex=466CE400 Float=15161.00000000000
// b: Hex=4486A004 Float=1077.00048828125
// Single precision result: Hex=465C1000 Float=14084.00000000000
// Double precision result: Hex=40CB81FFF0000000 Float=14083.99951171875
// Double rounded to single: Hex=465C1000 Float=14084.00000000000
}


получил следующий результат смотри вложение(сриншот экрана)
Вопрос чего не хватает чтобы выводились числа в десятичном виде. Как приведено в комментариях в конце программы?
Maverick
Согласно этой ссылки вывести числа с плавающей запятой вообще нельзя, через какой-либо printf. Вот так то ...

Цитата
11.1 EDK - Why does the standard C printf() function use so much memory?
AR# 19592
Topic EDK-Libraries
Last Modified 2009-04-25 00:00:00.0
Status Active
Description

Keywords: stdio.h

Why does the standard C printf() function use so much memory? For example, including a reference to printf() in a MicroBlaze program increases the size of the "Hello World" program (included in the example designs) by 51,788 bytes.
Solution
The table below summarizes the various print-related commands that you can use and how much code and data space they use over a non-printing implementation to print "hello world".

Function Size Limitations
-------------- ------- ------------------
printf() 51788 None, full featured
iprintf() 18294 No floating point, reentrant
xil_printf() 2953 No floating point, not reentrant(single thread only), no longlong(64 bit)
putnum() 284 Integer to HEX only, no other formats
print() 185 No numbers output, just strings

All of these functions can be prototyped by including <stdio.h>.
dspx
Цитата(Maverick @ Feb 17 2010, 10:46) *
Согласно этой ссылки вывести числа с плавающей запятой вообще нельзя, через какой-либо printf. Вот так то ...

С чего вы это взяли? Там ничего подобного не сказано. Я уже приводил ссылку с примером вызова функции printf выводящей флоат.
Alex77
Цитата(dspx @ Feb 17 2010, 23:57) *
С чего вы это взяли? Там ничего подобного не сказано. Я уже приводил ссылку с примером вызова функции printf выводящей флоат.

Дык наверно у него просто программа не помещается в BRAM ( с использованием printf() ). А xil_printf() в принципе не имеет формата %f. Товарищ в очередной раз пытается использовать "телефон для забивания гвоздей" crying.gif
Maverick
Цитата(Alex77 @ Feb 18 2010, 08:47) *
Дык наверно у него просто программа не помещается в BRAM ( с использованием printf() ). А xil_printf() в принципе не имеет формата %f. Товарищ в очередной раз пытается использовать "телефон для забивания гвоздей" crying.gif


Цитата(dspx @ Feb 17 2010, 22:57) *
С чего вы это взяли? Там ничего подобного не сказано. Я уже приводил ссылку с примером вызова функции printf выводящей флоат.


Если Вас не затруднит пожалуйста напишите программу которая выводит например результат
деления 5/3 = 1,6666666666666666666666666666667
или
вычисления квадратного корня например из 2 (sqrt (2) = 1,4142135623730950488016887242097)
на компьютер в десятичном формате для контроля - программа HyperTerminal.

ЗЫ Точность вычисления одинарная или двойная, по Вашему усмотрению.

ЗЫ ЗЫ Программа делает только одну операцию (так как учебная) деления или вычисление квадратного корня из числа. Выделил BRAM под программу 64 кбит, кристалл Virtex4 SX35. Использую блок FPU.

ЗЫ ЗЫ ЗЫ Если использовать функцию printf() то EDK выдает ошибку, которая описывается в ссылке данной dspx. Как сделать как там предлагают "To use the printf() function, you need also to make sure that the stack size is set to at least 0x2000." я не знаю. crying.gif Просвятите пожалуйста.

ЗЫ ЗЫ ЗЫ ЗЫ Будет очень хорошо если в дополнение сделаете скриншот окна программы HyperTerminal с выведенным результатом.
dspx
Maverick

У вас по идее в системе есть еще DDR/SRAM/DDR2. Редактируете линкер скрипт программы, чтобы она размещалась во внешней памяти, там же можно увеличить хип и стэк. Должно помочь.
DiWhite
Доброго всем времени суток. Подскажите, как написать программу для отображения сетевых пакетов (с порта Ethernet) в консоли. Плата Spartan-3E Starter Kit.
VladimirB
Цитата(DiWhite @ Nov 16 2010, 23:32) *
Доброго всем времени суток. Подскажите, как написать программу для отображения сетевых пакетов (с порта Ethernet) в консоли. Плата Spartan-3E Starter Kit.

Запускаете EDK, выбираете в wizarde вашу плату, если в списке оборудования нет Ethernet MAC и RS-232 - то добавляете их туда.
EDK создаст проект на C++ для тестирования всей периферии - вы его открываете в Platform Studio и исправляете и добавляете пару десятков строчек. И всё - полный кукумбер smile.gif.
DiWhite
Вот как-раз и интересует момент, как исправить проект С++.
Также интересует вопрос, где взять описание стандартных функций для языка С/С++ в Xilinx? (xil_printf вместо printf это я уже понял. А как же быть с остальными?)
kark
Цитата(DiWhite @ Nov 17 2010, 16:32) *
Вот как-раз и интересует момент, как исправить проект С++.
Также интересует вопрос, где взять описание стандартных функций для языка С/С++ в Xilinx? (xil_printf вместо printf это я уже понял. А как же быть с остальными?)


Си он и есть си. Большинство сишных либ в едк есть, насколько я помню, conio.h в едк нет.

По поводу документации она лежит в <папка установки edk>/doc/usenglish. Там много полезного. Про сишные либы файл зовется oslib_rm.pdf (вроде так).
Tanichev
Полистал форум, не нашёл ответ на свой вопрос:
- Создал я платформу в XPS,
- Написал и отладил программу в EDK - всё отлично работает
- Пришла пора записать готовую программу на плату - удалён модуль DEBUG из системы, проект собран в Release..
- Флэшка прошита (файл для флэш получен из download.bit)
- НО! Программа "ждёт", что я нажму на кнопку в SDK:
Нажмите для просмотра прикрепленного файла
А нажать на неё я уже не могу, т.к. модуля DEBUG нет, да и вообще, платформа должна стать автономной.
Видимо, где-то установлена какая-то галочка, которая меняет режим компилятора, я думал, что это переключается Debug/Release. Но видимо нет.

Подскажите пожалуйста, где это делается. Спасибо.
knirti
Здравствуйте!
У меня задача прикрутить к плисине внешнюю плату Wiznet WIZ830MJ. Выбрал вариант использования софтового микропроцессора, т.к. к плате приводится исходный код для микроконтроллера, перечитал кучу документации по EDK+SDK,поигрался с UART, но так и не понял, как подключать внешние устройства подобного типа (wiznet).
Не подскажите, какими компонентами (fifo, gpio, xps epc) связать в Xilinx EDK 13.1 платки и с какими файлами из SDK нужно прикручивать исходники внешних плат?
Maverick
Цитата(knirti @ Nov 10 2011, 11:52) *
Здравствуйте!
У меня задача прикрутить к плисине внешнюю плату Wiznet WIZ830MJ. Выбрал вариант использования софтового микропроцессора, т.к. к плате приводится исходный код для микроконтроллера, перечитал кучу документации по EDK+SDK,поигрался с UART, но так и не понял, как подключать внешние устройства подобного типа (wiznet).
Не подскажите, какими компонентами (fifo, gpio, xps epc) связать в Xilinx EDK 13.1 платки и с какими файлами из SDK нужно прикручивать исходники внешних плат?

Согласно даташит на Wiznet WIZ830MJ Вы можете подключить к процессору MicroBlaze как SRAM память (стр. 10).
В принципе для этого и существует MCU Interfaces, для этого понадобиться около 30 пинов ПЛИС
knirti
Цитата(Maverick @ Nov 10 2011, 14:18) *
Согласно даташит на Wiznet WIZ830MJ Вы можете подключить к процессору MicroBlaze как SRAM память (стр. 10).
В принципе для этого и существует MCU Interfaces, для этого понадобиться около 30 пинов ПЛИС

Спасибо за наводку, а какие именно файлы нужно править, под что нужно править исходники платки WIZ830MJ, не подскажете ?
T00T
Доброго дня.
Вопрос от начинающего. Хочу поморгать светодиодиком.
Создал аппаратную сборку microblaze и gpio. Взял пример из каталога ..EDK\sw\XilinxProcessorIPLib\drivers\gpio_v3_00_a\examples
сначала инициализируется модуль gpio:

#define GPIO_EXAMPLE_DEVICE_ID XPAR_LEDS_POSITIONS_DEVICE_ID
...
Status = XGpio_Initialize(&Gpio, GPIO_EXAMPLE_DEVICE_ID);
...
Так вот вопрос XPAR_LEDS_POSITIONS_DEVICE_ID - это ID устройства в системе и по нему компилятор должен понять к какому конкретно устройству тут будет обращение.
Где посмотреть ID устройства, или как правильно указать к какому устройству обращение?
dm.pogrebnoy
xparameters.h
Можно еще драйвер GPIO поизучать, там сразу станет понятно что и откуда берется.
T00T
Пока разобрался, спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.