реклама на сайте
подробности

 
 
> С для NIOS
torik
сообщение Dec 17 2007, 17:48
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



не ругайте матом, но ткните носом в мануал на компилятор С или там С++ для ниоса, а то что-то не вижу его 07.gif

как логическое XOR сотворить и прочее.... а не оболочку.


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 8)
vetal
сообщение Dec 17 2007, 17:56
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Ниос тут не при чем - вам нужно книжку по С искать.
http://www.citforum.ru/programming/cpp_ref/ref_4.shtml
Go to the top of the page
 
+Quote Post
torik
сообщение Dec 17 2007, 19:48
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



С C знаком более менее, каковы различия?

Вопрос не по синтезу:
пытаюсь читать флеш как это написано в мануале:
Код
   alt_flash_fd* fd;
   int ret_code = 0x0;  
   int test_offset;   //это 0
   alt_u8 dest[64]; //массив приемник

   test_offset = 0x0000;
   fd = alt_flash_open_dev("/dev/cfi_flash_0");  //имя как написано в system.h
   if (fd!=NULL) {
      ret_code = alt_read_flash(fd, test_offset, dest, 64);
   } else {
      dest[1] = 1;  //всегда попадаем сюда
   }


Почему он не хочет открывать флеш? Смотрю в дебагере...


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
vetal
сообщение Dec 17 2007, 20:14
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Цитата
Смотрю в дебагере...

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

C он и в африке С smile.gif
Go to the top of the page
 
+Quote Post
torik
сообщение Dec 18 2007, 05:44
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



да хоть аппаратный, хоть программный (симулятор что ли?) - в железе-то все равно не работает. Вот это
Код
   } else {
      dest[1] = 1;  //всегда попадаем сюда
   }

зажигает лампочку на плате, т.е. тут даже без дебагера не работает...

Не увидел решение проблемы в описании на софт и на переферию (cfi). Еще с нулевого адреса флеш грузится процессор, но тут вроде не должно быть гвоздя?


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
vetal
сообщение Dec 18 2007, 12:40
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Цитата
if (fd!=NULL) {

Если файл не открыт вы попадете в эту ветку, а если открыт то будете мигать светодиодом.
стр.6.8 Nios II Software Developer’s Handbook
Go to the top of the page
 
+Quote Post
torik
сообщение Dec 18 2007, 13:29
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



lol.gif Это я прочитал. ПОЧЕМУ он файл не хочет открывать? При этом программа размещается в той же флеш и грузится нормально...

Ой, невнимательно прочитал фразу, е-мое, приду домой - проверю! Не может быть smile.gif


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
torik
сообщение Dec 18 2007, 18:13
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



Короче говоря, нафиг нужны эти
"fd = alt_flash_open_dev("/dev/cfi_flash_0");"

проще воспользоваться стандартными функциями или вообще через DMA



Блин, люди!
Ткните где читать - не вкуриваю как мне из флеша читать совершенно....
например если я пишу
dest[1] = alt_read_query_entry_8bit((void*)CFI_FLASH_0_BASE,0);

компилятор дает ошибку


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
Alezi
сообщение Feb 7 2009, 13:15
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 8-07-08
Из: Хабаровск
Пользователь №: 38 795



Для доступа к CFI памяти в SOPC builder необходимо наличие (ug_nios2_flash_programmer.pdf):
 Nios II Processor, with Joint Text Action Group (JTAG) debug module level 1 or greater
 Avalon-MM Tristate Bridge
 Flash Memory (Common Flash Interface)

На плате Altera DE2 (я с ней работал) установлена CFI флеш память фирмы SPANSION объемом 4МБ, которая имеет 22 адресных линии и 8 данных. Тайминги при работе были выставлены 70-100-70 нс (с другими значениями не известно).
Особенностью является установка в Quartus II пина (FL_RST_N) как входного, хотя как пин от флеш памяти не присутствует, но есть в Pin Planner при импорте всех пинов. Без установки этого пина как входного (VCC) память работать не будет.
Для чтения/записи, вы должны использовать API HAL, чтобы и читать и писать данные. Про HAL функции здесь (n2sw_nii5v2.pdf, раздел 6-16; раздел 12). Функции API определены в sys/alt_flash.h (подключается в программе для NIOS).
Для примера
Код
#include <stdio.h>
#include "sys/alt_flash.h"
#include "system.h"

int main ()
{   alt_flash_fd* fd;
    int ret_code;
    flash_region* regions;
    int number_of_regions;

fd = alt_flash_open_dev("/dev/cfi_flash");
    if (fd)
        {   ret_code = alt_get_flash_info(fd, &regions, &number_of_regions);
            if (!ret_code)
  {
      printf("Offset of this region from start of the flash - %d \n", regions->offset);  
      printf("Size of this erase region  - %d \n", regions->region_size);
      printf("Number of blocks in this region  - %d \n", regions->number_of_blocks);
      printf("Size of each block in this erase region  - %d byte \n", regions->block_size);
      printf("The number of erase regions in the flash - %d \n", number_of_regions);
  };
        alt_flash_close_dev(fd);
        }
    else
    {
       printf("Can’t open cfi_flash\n");
    }
return 0;
}
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 6th September 2025 - 16:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01356 секунд с 7
ELECTRONIX ©2004-2016