|
|
  |
Nios 2, вывод символа в JTAG UART, не хватает памяти даже для alt_putchar |
|
|
|
May 8 2016, 12:06
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Есть самый младший Altera Cyclone IV EP4CE6E22C8, в нем сидит Nios 2 и один общий контроллер памяти 16 Килобайт для всего: ПЗУ и ОЗУ. Есть там и JTAG UART, в настройках указано что вывод должен осуществляться в JTAG UART. И есть простая программа: Код #include "system.h" #include "altera_avalon_pio_regs.h" #include "sys/alt_stdio.h"
int main() { char leds = 0x01; int i = 0, n = 0; while(true) { IOWR_ALTERA_AVALON_PIO_DATA(GPIO_BASE, leds); for(i = 0; i < (ALT_CPU_CPU_FREQ / 25); i++); //alt_putchar('*'); //alt_putchar('\n'); //alt_putchar('\r'); leds++; n++; } return 0; } Пока я не раскомментировал alt_putchar (а это самый легковесный вариант для печати символа, вроде) - всё запускается и работает, светодиоды мигают. Но с alt_putchar уже не хватает памяти. Я попробую урезать кэши и еще что-нибудь, но есть ли возможность как-то низкоуровнево записать в регистр чтобы символ ASCII вывелся в JTAG UART, не задействуя alt_putchar?
--------------------
|
|
|
|
|
May 11 2016, 18:24
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Цитата(_Anatoliy @ May 11 2016, 15:28)  Конечно. Ещё это помогает. Вот это помогло! Код Info: (test_led.elf) 2492 Bytes program size (code + initialized data). Info: 13 KBytes free for stack + heap. А еще, что меня удивило - BSP было скомпилено по дефлоту в режиме debug без оптимизаций, это не могло не сожрать всю память.
--------------------
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|