Всем привет. Такая есть проблема, не могу через Си в NIOS2 ДОСТУЧАТСЯ да EPCS16
Исходные данные:
-в QSYS (Quartus 13.0) добавил контроллер
- в Dual-Purpose Pins выставил все пены в Use ar reqular I/O
- контролер с EPCS запускается
- поставил SignalTap, что бы посмотреть как ходят сигналы data, sdo, dclk, sce триггер поставил на dclk по фронту
Не работает следующий код на Си
#include "epcs_commands.h"
int main()
{
alt_printf ("Start\n");
alt_printf ("d=%x\n",epcs_read_device_id(EPCS_BASE));
alt_printf ("End\n");
while (1) ;
return 0;
}
Контроллер просто зависает. Сообщение "Start" выводит, а дольше ничего. Триггер не срабатывает
Кто может подсказать в чем проблема.
для начала сделайте
alt_printf ("EPCS_BASE = 0X%08X\n",EPCS_BASE);
если там null, значит забыли
#include "system.h"
в котором этот дефайн определен
Выводит:
Start
EPCS_BASE = 0x21000
и зависает база соответствует тому что прописано в system.h
в таком случае зависание означает, что аппаратно в QSYS что-то неправильно сделано.
попробую заново создать проект
Не помогло выкладываю картинки
Нажмите для просмотра прикрепленного файлаэто настройка QSYS
Нажмите для просмотра прикрепленного файлаэто рапорт там есть три варинга, но не могу понять счем они связанны
Нажмите для просмотра прикрепленного файлаэто настройка ЦПУ
#include <stdio.h>
#include "epcs_commands.h"
#include "system.h"
int main()
{
printf("Hello from Nios II!\n");
alt_printf ("EPCS_FLASH_CONTROLLER_0_BASE=0x%x\n",EPCS_FLASH_BASE);
alt_printf ("d=%x\n",epcs_read_device_id(EPCS_FLASH_BASE));
printf("END\n");
return 0;
}
и код
Нажмите для просмотра прикрепленного файлаЭто то что выводит консоль
это в самом Quartus
Нажмите для просмотра прикрепленного файла
Realking
Nov 3 2015, 07:06
Цитата(DisaPV @ Nov 3 2015, 09:43)

Не помогло выкладываю картинки
Нажмите для просмотра прикрепленного файлаэто настройка QSYS
Нажмите для просмотра прикрепленного файлаэто рапорт там есть три варинга, но не могу понять счем они связанны
Нажмите для просмотра прикрепленного файлаэто настройка ЦПУ
#include <stdio.h>
#include "epcs_commands.h"
#include "system.h"
int main()
{
printf("Hello from Nios II!\n");
alt_printf ("EPCS_FLASH_CONTROLLER_0_BASE=0x%x\n",EPCS_FLASH_BASE);
alt_printf ("d=%x\n",epcs_read_device_id(EPCS_FLASH_BASE));
printf("END\n");
return 0;
}
и код
Нажмите для просмотра прикрепленного файлаЭто то что выводит консоль
это в самом Quartus
Нажмите для просмотра прикрепленного файлана варнинги эти не обращай внимание,
а вот какую ты частоту подаешь?
и еще.. у тебя в системе сброс не экспортирован, а на символе есть???
Частота 100Мгц
ресет я потом подцепил (а то проц не запускался)
Realking
Nov 3 2015, 07:28
Цитата(DisaPV @ Nov 3 2015, 10:23)

Частота 100Мгц
ресет я потом подцепил (а то проц не запускался)
и если я не ошибаюсь, надо вроде так
epcs_read_device_id(EPCS_FLASH_BASE+EPCS_FLASH_BASE_REGISTER_OFFSET);
http://electronix.ru/forum/index.php?showtopic=93233
Точно, все заработало. Огромное спасибо