Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Cyclone III & Nios II
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Realking
собрал проект с процем, ончип памятью и jtag_uart

в ниос 2 собрал проект hello_world

после запуска следующая картина:

sing cable "USB-Blaster [USB-0]", device 1, instance 0x00
Pausing target processor: OK
Initializing CPU cache (if present)
OK

Downloading 00010000 ( 0%)
Downloaded 18KB in 0.3s (60.0KB/s)

Verifying 00010000 ( 0%)
Verified OK
Leaving target processor paused


nios2-terminal: connected to hardware target using JTAG UART on cable
nios2-terminal: "USB-Blaster [USB-0]", device 1, instance 0
nios2-terminal: (Use the IDE stop button or Ctrl-C to terminate)

и все - висит и ничего не выводится
сразу говорю - стдоут настрен правильно
Stewart Little
А ресетить cpu после загрузки пробовали?
Postoroniy_V
Цитата(Realking @ Sep 29 2009, 20:47) *
.......
и все - висит и ничего не выводится
сразу говорю - стдоут настрен правильно

однако страное сообщение

Leaving target processor pause
1)nios2-ide пользуете?
2) и оттуда же запускаете?
3) пробовали так - конфигурим плис, затем заливаем софт. всё это можно сделать из ниос2 команд щелл - "nios2-configure fpga.sof -d1"и затем nios2-download -g soft.elf
-d1 это номер плисы в жтаг цепочке
-g грит о том что после заливки софта неплохобы запустить проц( тоесть не будет никаких Leaving target processor pause а будет Starting processot at address 0xblabla
Stewart Little
Цитата(Postoroniy_V @ Sep 30 2009, 11:03) *
однако страное сообщение
Leaving target processor pause

Это не страшно. В IDE после загрузки такое сообщение всегда выводится, но это не означает, что процессот удерживается в ресете. Он после этого должен нормально стартовать с положенного адреса (если, конечно, все сделано правильно).
Пример Hello world не очень удобен для наблюдения, т.к. там срока единожды выплевывается в jtag_uart, и после этго процессор уходит в аут. И после каждого вывода строки нужно взбадривать процессор ресетом.
Можно попробовать модифицировать программу - к примеру выдавать строку в цикле:
Код
#include <stdio.h>

int main()
{
  while(1)  
  printf("Hello from Nios II Economy!\n");

  return 0;
}

ну или для красоты вставить в цикл ожидание запроса от консоли.
Realking
Спасибо за ответы, разобрался

Поставил Quartus 9.0 + SP2 (раньше стоял 8.0+SP1) и все завелось
qwqw
Столкнулся с аналогичной проблемой. Симптомы те же.

Q10.1 sp1.
СycloneIII

Собрал следующую ситсему:

NIOS на 50МГц
DDR на 100МГц (Ядро DDR SDRAM Controller with ALTMEMPHY)

В Eclipse Galileo скомпилил темплейт Memory test чтобы протестировать подключение DDR памяти.
Программа в on-chip (onchip_memory2_0).
все собирается без проблем.
Отладчик выдает:
Цитата
Downloading 02020000 ( 0%)
Downloading 02030000 (69%)
Downloaded 92KB in 2.1s (43.8KB/s)

Verifying 02020000 ( 0%)
Verifying 02030000 (69%)
Verified OK
Leaving target processor paused
\

Цитата
Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Processor is already paused
Reading System ID at address 0x02041008: verified
Listening on port 1549 for connection from GDB: 59saccepted


а затем тишина и в main не попадает.

Попробовал под ту же систему собрать темплейт Hello world - то же самое.
Попробовал исключить DDR из системы - пересобрал, скомпилил Hello world - заработало.

Quфtrus при сборке выдает ворнинг:
Цитата
Critical Warning: Fitter could not properly route signals from DQ I/Os to DQ capture registers because the DQ capture registers are not placed next to their corresponding DQ I/Os
Info: DQ capture register test_DDR:inst7|altmemddr_0:the_altmemddr_0|altmemddr_0_controller_phy:altmemddr_
0_controller_phy_inst|altmemddr_0_phy:altmemddr_0_phy_inst|altmemddr_0_phy_alt_me
m_phy:altmemddr_0_phy_alt_mem_phy_inst|altmemddr_0_phy_alt_mem_phy_clk_reset:clk|
altddio_bidir:DDR_CLK_OUT[0].ddr_clk_out_p|ddio_bidir_e4h:auto_generated|input_ce
ll_h[0] at (51, 40) is not assigned to the adjacent LAB of the corresponding DQ I/O DDR_CLKp~input at (59, 43)

Еще не разобрался с ним, но непонятно почему hello world не работает, когда DDR присутствует. Даже если с фронт ендом DDR что-то не так.
Ведь программа находится в onchip, Reset vector и Exception vector - там же.

TimeQuest вроде не ругается, хотя я ничего не констрейнил.



vadimuzzz
Цитата(qwqw @ Feb 9 2011, 15:34) *
Еще не разобрался с ним, но непонятно почему hello world не работает, когда DDR присутствует. Даже если с фронт ендом DDR что-то не так.
Ведь программа находится в onchip, Reset vector и Exception vector - там же.
TimeQuest вроде не ругается, хотя я ничего не констрейнил.

неработающий (неправильно работающий) компонент может завесить всю систему, легко. соответственно, кривые (отсутствующие) констрейны в проекте с DDR - легкий способ получить нерабочий проект
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.