Опишу ситуацию и свою последовательность действий.
Необходим проект на NIOS II, включающий работу с PIO и внешним UART. Все это собирается на циклоне2 на стартер ките "Alter Cyclone II FPGA Starter Board".
Для начала решил просто помигать светодиодами.
1. Создаю проект в квартус 9.0, указываю конкретную модель второго циклона (неоднократно создавал проекты под этот девайс и прошивал, все всегда было отлично).
2. Вызываю SOPC билдер и добавляю:
- on-chip память 8192 bytes
- cpu NIOS II / e, назначив ему созданную память во всех опциях.
- PIO 8bit - output
- sysid
3. Вызываю функцию System - Auto-Assign Base Addresses
4. Генерирую ядро (долго)
5. Создаю схемный файл и прикрепляю выводы к процессору. А затем ассоциирую с реальными пинами ИС (компилируя проект между шагами).
6. Сохраняю все и запускаю NIOS II IDE (От админа, об этом еще будет)
Создаю проект, темплейт Blanck.
7. Создаю сурс файл и пишу код:
Код
#include "alt_types.h"
#include "altera_avalon_pio_regs.h"
#include "system.h"
#include <stdio.h>
#include <unistd.h>
static int count;
int main(void)
{
count = 0;
while( 1 )
{
usleep(500000);
IOWR_ALTERA_AVALON_PIO_DATA( PIO_BASE, count );
count++; /* Continue 0-ff counting loop. */
}
return 0;
}
8. Выставляю настройки оптимизации в свойствах проекта [syslib]
9. Правый клик на мой проект (не syslib - билд).
10. Куча строчек бегут в консоли - и ОП самое интересное:
Код
Creating libnios_proj_test3_syslib.a...
Creating generated.sh...
3 [main] ? (4968) d:\altera\90\quartus\bin\cygwin\bin\sh.exe: *** fatal error - couldn't allocate heap, Win32 error 487, base 0x680000, top 0x690000, reserve_size 61440, allocsize 65536, page_const 4096
2 [main] sh 1044 fork: child -1 - died waiting for longjmp before initialization, retry 0, exit code 0x100, errno 11
/cygdrive/d/altera/90/nios2eds/bin/gtf-generate: fork: Resource temporarily unavailable
make[1]: *** [system_description/../obj/generated.sh-t] Error 128
make: *** [system_project] Error 2
Build completed in 20.538 seconds
Что интересно ошибки вылазят различные. Все с sh.exe или main.exe.
В процессе выполнения еще такие вылазят:
Код
Compiling alt_remap_cached.c...
4 [main] ? (5776) d:\altera\90\nios2eds\bin\nios2-gnutools\H-i686-pc-cygwin\bin\nios2-elf-gcc.exe: *** fatal error - couldn't allocate heap, Win32 error 487, base 0x6C0000, top 0x6E0000, reserve_size 126976, allocsize 131072, page_const 4096
2 [main] nios2-elf-gcc 5616 fork: child -1 - died waiting for longjmp before initialization, retry 0, exit code 0x100, errno 11
Compiling alt_remap_uncached.c...
Доп информация: ОС Windows 7, Quartus 9. Установлено все в D:\Altera\90\
Что я пробывал:
1. Переставил все связанное с квартусом и НИОС на несистемный диск.
2. Пробовал Web версию квартуса и крякнутую 9.0
3. Отрубил UAC полностью
4. Назначил все приложения указанные в ошибках запускаться от админа
Вопрос: Что делать?