Перейти к содержанию
    

Cyclone III & Nios II

собрал проект с процем, ончип памятью и 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)

 

и все - висит и ничего не выводится

сразу говорю - стдоут настрен правильно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А ресетить cpu после загрузки пробовали?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

.......

и все - висит и ничего не выводится

сразу говорю - стдоут настрен правильно

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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;
}

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за ответы, разобрался

 

Поставил Quartus 9.0 + SP2 (раньше стоял 8.0+SP1) и все завелось

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Столкнулся с аналогичной проблемой. Симптомы те же.

 

Q10.1 sp1.

СycloneIII

 

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

image-CE62_4D52559A.jpg

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 вроде не ругается, хотя я ничего не констрейнил.

 

 

 

sopc.bmp

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Ведь программа находится в onchip, Reset vector и Exception vector - там же.

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

неработающий (неправильно работающий) компонент может завесить всю систему, легко. соответственно, кривые (отсутствующие) констрейны в проекте с DDR - легкий способ получить нерабочий проект

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...