Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: TASKING VX-Toolset v2.0r1
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Stewart Little
Компилятор С/С++ для NiosII: TASKING VX-Toolset v2.0r1 - залил в ..upload/FPGA/_Altera_/NiosII/Tasking
Плугинится в NiosII IDE. Генерит более быстрый и более компактный код по сравнению с NiosII GCC.
Подробности здесь.
Это триальная версия. Она полнофункциональная, работает 15 дней (ичсх, рабочих дней, субботу и воскресенье не считает smile.gif ). От триальности отучивается путем периодического снесения некоторых ключей в реестре. Может это и не слишком элегантно, зато имеется полная легальность использования, никакие проверяющие органы подкопаться не смогут smile.gif
Огромный a14.gif Кнкн за исследования !

А теперь, собственно проблема. Не получается запустить этот компилятор из-под NiosII IDE. Т.е. таскинговскитй проект в NiosII IDE создается, отображаются все установки таскинга, но при попытке билда упорно запускается nios2-elf-gcc (который, есс-но, ругается на таскинговские ключи).
Лог NiosII IDE, который при этом выдается, прилагаю.
Тема, наверное, перекликается вот с этой : Вопросы по Eclipse, CDT, Zylin embedded CDT
Может, кто подскажет волшебное слово, чтобы заставить таскинговский компилятор работать в NiosII IDE по умолчанию ?
vetal
Для правильной работы плагина после установки программы следует запустить nios2-eds с ключом -clean.
Stewart Little
Победа! 08.gif

Все заработало.
Дело было в некоторой туповатости таскинговского инсталлятора. Он считает, что альтеровская библиотека ip-ядер находится в той же папке, где и NiosII EDS, и, пытаясь патчить несуществующие файлы smile.gif, создает рядом с папкой nios2eds папку ip\nios2_ip\altera_nios2\Hal, куда и ссыпает свои файлы.
Но, поскольку библиотека ip-ядер оказалась установленной совсем в другом месте, то ниосовский HAL там остался непропатченым. После того, как все HAL-овские файлы были врукопашную перемещены в соответствующие папки по их реальному месту жительства, все заработало на ура!

Баг репорт в таскинг отправлен, в следующей версии они обещали подработать инсталлятор.

Результаты компиляции впечатляют, особенно по сравнению со встроенным в NiosII EDS GCC'шником.
Я сделал проекты из стандартного ниосовского примера "Hello World!" smile.gif для конфигурации системы full_featured (файл NiosII_cycloneII_2c35_full_featured_sopc.ptf) для таскинга и для gcc. Результаты билда для того и другого (по отчетам билдера) следующие :

TASKING :
Размер кода : 27 kBytes code size (code + initialized data)
Время компиляции : - библиотеки проекта : 297,307 сек.
- приложения : 36,838 сек.

GCC :
Размер кода : 76 kBytes code size (code + initialized data) 07.gif
Время компиляции : - библиотеки проекта : 257,313 сек.
- приложения : 49,699 сек.

Несколько большее время компиляци библиотеки проекта для таскинга объясняется, скорее всего, тем, что он много времени тратит на ввод-вывод сообщений. Каждый раз при запуске очередного файла на компиляцию выдается предупреждение о триальности и количестве дней до окончания срока функционирования (про отшибание памяти об этом сроке я уже писал). А поскольку при компиляции библиотек проекта используется туева хуча файлов, то сами понимаете... smile.gif

P.S.
Цитата(vetal @ Apr 17 2008, 20:41) *
Для правильной работы плагина после установки программы следует запустить nios2-eds с ключем -clean.

Это для того, чтобы таскинговские заготовки сразу отображались в меню при создании проекта.
Kuzmi4
Вы прямо заинтриговали..
На счёт размера - GCC с ключём -Os был ??

Так а какие ключи в реестре сносить то ??
Stewart Little
Цитата(Kuzmi4 @ Apr 18 2008, 18:24) *
На счёт размера - GCC с ключём -Os был ??

GCC я пробовал и с этим ключом, и без него - однохренственно.
TASKING я запускал с установками по умолчанию, без оптимизаци. Оптимизатор нужно исследовать отдельно smile.gif .

Цитата(Kuzmi4 @ Apr 18 2008, 18:24) *
Так а какие ключи в реестре сносить то ??

Все на fpt (еще раз респект Кнкн!).
Kuzmi4
2 Stewart Little - спасибо, посмотрим на досуге..
Вроде зверюга не плохой smile.gif
Kuzmi4
2 Stewart Little -
Проверил, в принципе у меня получилось 30% разница в коде (код правда простой - но всё работает как задуманно).. (ключи -О3(для обоих), + увеличить скорость(для таскинга) )
a14.gif

Вопросик правда есть -smile3046.gif - поставил я его - везьде Next и ОК. Переместил патчи как вы писали, но он у меня виснет зараза когда доходит до копирования шаблонов...
При чём если туде же потом создать прожект - выкинет ошибку - что он уже есть и потом после Cancel`а - прожект появляется в левой панели(..при чём иногда надо 2-3 раза..)....
Собсно вопрос - у вас тот же геморой ? Если нет - расскажите как ставили ?
Спасибо...
Stewart Little
Цитата(Kuzmi4 @ Apr 21 2008, 10:59) *
... но он у меня виснет зараза когда доходит до копирования шаблонов...

Бывает иногда. Но это, имхо, прихват эклипса, а не таскинга.
Я обычно делаю так. В рабочей директории эклипсовский воркспейс создаю в папке eclipse, а софтовый проек - в папке software. В случае чего эту папку software можно целиком снести и создать проект заново. Но, как правило, повторное открытие (не создание!) проекта выправляет ситуацию.
id_gene
Требует Nios II 7.2.

Что же делать с младшими версиями? (6.0 - 7.1)
Stewart Little
Цитата(id_gene @ Apr 28 2008, 17:05) *
Что же делать с младшими версиями? (6.0 - 7.1)

Менять на v7.2 sp3.
id_gene
мини-отчет:
GCC
Код
-O2
Info: (b_cpu.elf) 9680 Bytes program size (code + initialized data).
Info:             6704 Bytes free for stack + heap.

-O3
Info: (b_cpu.elf) 10 KBytes program size (code + initialized data).
Info:             6040 Bytes free for stack + heap.

-Os
Info: (b_cpu.elf) 9812 Bytes program size (code + initialized data).
Info:             6572 Bytes free for stack + heap.

Tasking
Код
-O2
Info: (c_cpu.elf) 9616 Bytes program size (code + initialized data).
Info:             6768 Bytes free for stack + heap.

-O3
Info: (c_cpu.elf) 9940 Bytes program size (code + initialized data).
Info:             6444 Bytes free for stack + heap.

-Os
Info: (c_cpu.elf) 9404 Bytes program size (code + initialized data).
Info:             6980 Bytes free for stack + heap.


Для таскинга оптимизация по размеру была сделана вручную ключом -Os и trade-off перенесен в пользу размера. На ключ компилятор не ругался, пробовал, также, ключ -О3 при level4 - результат практически такой-же.
По умолчанию, кстати, в таскинге отключен дебаггер, хотя разница совсем небольшая.
Остальные настройки не трогались.

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

В коде присутствуют custom_instruction в довольно небольшом количестве (влиять на оптимизацию, по моим подсчетам, сильно не должно).

Интересно, это я так плохо пишу? или так хорошо? smile.gif
Stewart Little
Tasking обновил версию VX-Toolset до v2.0r2 - она синхронизирована с QuartusII v8.0.
Скачивается с исторической родины. Подробно пока не смотрел.
Stewart Little
Из нового, кроме синхронизайии с QII_v80 :

- Full time.h support in TASKING C library using system clock from Altera's Nios II HAL;
- PR36546 solved: Incorrect loop optimization leading to endless loop;
- New advanced loop unrolling optimizations in compiler.
yura-w
Цитата(Stewart Little @ Apr 15 2008, 19:03) *
таскинговскитй проект в NiosII IDE создается

подскажите пожалуйста, каким образом создается?

установил Tasking v2.0r2,
в IDE при создании file->new->niosII c/c++ application (project type: nios) появились примеры c tasking,
но нет возможности создать project type: Tasking
Stewart Little
Цитата(yura-w @ Jul 30 2008, 23:01) *
но нет возможности создать project type: Tasking

В этой ветке - третий пост сверху, читать внимательно.
Нихрена таскинговцы инсталлятор не подправили crying.gif
Kuzmi4
2 Stewart Little - вопрос к вам как с самому информированному в этом деле - а с аспирином как ?
Или всё так же мозги через реестр отбивать ?
Stewart Little
Цитата(Kuzmi4 @ Jul 31 2008, 18:10) *
2 Stewart Little - вопрос к вам как с самому информированному в этом деле - а с аспирином как ?
Или всё так же мозги через реестр отбивать ?

В этом плане все по-старому. Чем Вам такая метода не нравится? smile.gif
Kuzmi4
2 Stewart Little - месаги эти при компиляции не особо нравятся...
Прям спам почти......
smile.gif
Stewart Little
Зато при переходе с версии на версию ничего патчить не надо.

Цитата(Kuzmi4 @ Jul 31 2008, 18:19) *
месаги эти при компиляции не особо нравятся...

Ну так сверните консоль на время компиляции smile.gif
yura-w
Цитата(Stewart Little @ Jul 31 2008, 12:30) *
В этой ветке - третий пост сверху, читать внимательно.

Спасибо, "nios2-eds -clean" выполнил(компилируются таскинговые примеры)
Цитата
инсталлятор создает рядом с папкой nios2eds папку ip\nios2_ip\altera_nios2\Hal, куда и ссыпает свои файлы.
Но, поскольку библиотека ip-ядер оказалась установленной совсем в другом месте, то ниосовский HAL там остался непропатченым. После того, как все HAL-овские файлы были врукопашную перемещены в соответствующие папки по их реальному месту жительства, все заработало на ура!

куда скопировать содержимое ip\nios2_ip\altera_nios2\Hal?
(по этому я не могу подключить system.h и т.п.?)
Stewart Little
Цитата(yura-w @ Jul 31 2008, 23:04) *
куда скопировать содержимое ip\nios2_ip\altera_nios2\Hal?

В одноименную папку в библиокеке альтеровских ip-ядер.
В версии 8.0 библиотека инсталлируется одновременно с квартусом. В предыдущих версиях ее нужно было ставить отдельно.
Только нужно не всю папку HAL копировать, а переносить файлы по одному.
yura-w
Цитата(Stewart Little @ Aug 1 2008, 11:58) *
В версии 8.0 библиотека инсталлируется одновременно с квартусом. В предыдущих версиях ее нужно было ставить отдельно.

это понятно.

Извините, но не понял
куда скопировать содержимое ip\nios2_ip\altera_nios2\Hal?
Цитата(Stewart Little @ Aug 1 2008, 11:58) *
В одноименную папку в библиокеке альтеровских ip-ядер.

вижу что, quartus создал папки:
80\ip, 80\nios2eds, 80\qdesigns, 80\quartus
TASKING зоздал:
80\TASKING,
smile3046.gif
не могу найти место где не хватает того, что есть 80\ip\nios2_ip\altera_nios2\Hal
Stewart Little
Цитата(yura-w @ Aug 5 2008, 21:46) *
вижу что, quartus создал папки:
80\ip, 80\nios2eds, 80\qdesigns, 80\quartus
TASKING зоздал:
80\TASKING,
smile3046.gif
не могу найти место где не хватает того, что есть 80\ip\nios2_ip\altera_nios2\Hal

Давайте разбираться.
Во-первых, квартус не мог создать папку ..\nios2eds - эта папка создается при инсталяции NiosII EDS, которая не является частью квартуса. Но это так, к слову smile.gif
У Вас, насколько я понял, все инсталлировано в одну папку - и квартус, и ниос, и библиотека IP-ядер, и таскинг. Скорее всего, у Вас все должно было пропатчиться автоматически.
Проверьте даты создания файлов :
80\ip\nios2_ip\altera_nios2\Hal\inc\nios2.h
80\ip\nios2_ip\altera_nios2\Hal\inc\sys\alt_irq_entry.h
80\ip\nios2_ip\altera_nios2\Hal\inc\sys\alt_sim.h
80\ip\nios2_ip\altera_nios2\Hal\inc\sys\alt_warning.h
80\ip\nios2_ip\altera_nios2\Hal\src\alt_busy_sleep.c
80\ip\nios2_ip\altera_nios2\Hal\src\alt_gmon.c
80\ip\nios2_ip\altera_nios2\Hal\src\component.mk

Эти даты должны совпадать с датами одноименных файлов, находящихся в :
Tasking\cnios_v2.0r2\altera\patches\components\Hal\inc
Tasking\cnios_v2.0r2\altera\patches\components\Hal\inc\sys
Tasking\cnios_v2.0r2\altera\patches\components\Hal\src

Если даты совпадают, то это значит, что таскинг при инсталляции сам все пропатчил, и Ваша проблема совсем не в этом.
Если же нет, то скопируйте вышеуказанный файлы из таскинговских папок в ip-шные папки врукопашную.
yura-w
Цитата(Stewart Little @ Aug 6 2008, 11:42) *
У Вас, насколько я понял, все инсталлировано в одну папку - и квартус, и ниос, и библиотека IP-ядер, и таскинг. Скорее всего, у Вас все должно было пропатчиться автоматически.

а как устанавливали Вы? я б пошел вашим путем, чтоб наверняка!(да и время сэкономить)
Цитата(Stewart Little @ Aug 6 2008, 11:42) *
Эти даты должны совпадать с датами одноименных файлов, находящихся в :
Tasking\cnios_v2.0r2\altera\patches\components\Hal\inc
Tasking\cnios_v2.0r2\altera\patches\components\Hal\inc\sys
Tasking\cnios_v2.0r2\altera\patches\components\Hal\src

смотрел, совпадают 05.gif (даты похожи на время установки ниоса 8 - прошлый месяц),
но только путь к указанным файлам (у таскинга)немного другой:
80\TASKING\cnios_v2.0r2\altera\patches\components\altera_nios2\HAL\inc\
80\TASKING\cnios_v2.0r2\altera\patches\components\altera_nios2\HAL\inc\sys\
80\TASKING\cnios_v2.0r2\altera\patches\components\altera_nios2\HAL\src\

А вообще в папке:
Tasking\cnios_v2.0r2\altera\patches\components\
у меня папки: altera_hal, altera_hostfs, altera_iniche, altera_nios2,
в них поглядел и "новых" не увидел.

возможно неважно, но обратил внимание в NiosII-ds.pdf (с сайта таскинга)
приведен способ создания таскингового проекта который мне не доступен (см. рис)(не появилась новая опция в file/new),
проект создаю через file/new/project(см. рис) (повторюсь: вот только system.h не подключить crying.gif )Нажмите для просмотра прикрепленного файла
Stewart Little
Цитата(yura-w @ Aug 6 2008, 23:23) *
(повторюсь: вот только system.h не подключить crying.gif )

Что-то Вы, похоже, не то делаете...
Новый проект хорошо бы создавать в новой папке, и с новым воркспейсом (судя по Вашей картинке Вы лепите все в одну кучу).
Если мне склероз не изменяет, то файл system.h добавлять никуда не надо - он создается и добавляется автоматически во время компиляции библиотеки пректа.
Завтра попробую повспоминать на каком-нибудь примере.
yura-w
Цитата(Stewart Little @ Aug 7 2008, 19:21) *
Новый проект хорошо бы создавать в новой папке, и с новым воркспейсом

a14.gif получилось!

создал новый воркспейс (папки .metadata, altera.components),
появилась возможнось создавать таскинговый проект через file/new.
Подсунул рабочий проект, все откомпилировалось smile.gif .
Есть некоторые неясности:
- в окне nios IIc/c++ project, в папке includes только таскинговые инклуды,
нет подключенных компонентов системы (altera_avalon_jtag_uatr, altera_avalon_epcs_controller и т.п. )
- попытка вызвать присутствующие в системе файлы через окно заканчивается неудачей(см. рис. на примере вызова system.h),

вобщем надо еще с настройками поразбираться.
Stewart Little
Вышла новая версия v2.0r3
Уже на ftp: ..\upload\FPGA\_Altera_\Tasking
Как говорится, вэлкам! smile.gif
darek
ест новая версия v2.0r4

как лечит ???
Stewart Little
Цитата(darek @ Feb 24 2009, 10:41) *
ест новая версия v2.0r4
как лечит ???

Лечить аналогично предыдущим версиям.
Только ключики в файле clear15tn.reg и bat-файле поменять надо.
Новые имена ключей для v2.0r4 можно regedit-ом посмотреть.
darek
можно подробне? если не трудна
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.