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

 
 
26 страниц V  « < 3 4 5 6 7 > »   
Reply to this topicStart new topic
dim99
сообщение Nov 3 2009, 17:50
Сообщение #61


Частый гость
**

Группа: Свой
Сообщений: 120
Регистрация: 8-02-09
Из: Мытищи
Пользователь №: 44 580



Цитата(vadimuzzz @ Nov 3 2009, 19:00) *
не уверен, но похоже памяти "маловато будет" (ц). ось наверно еще динамически навыделяет и стек переполнится. а ось вообще нужна? какая задача - пакет туда-сюда кинуть или tcp/ip нужен? если второй вариант, то добавьте внешнюю память, без нее никак.


Поставили задачу:
- установка соединения по интерфейсу Ethernet
- прием/передача командных пакетов между PC и платой
- прием/передача информационных пакетов

Мне тоже кажется, что мало памяти, фиттер показал, что используется 80% памяти on-chip, думаю докинуть 10% к stack'y и посмотреть как себя вести будет.
Ось выбрал потому что это единственный проект(вариант), который нашел и смог откомпилировать и запустить.

Если есть возможность использовать без rtos, то расскажите как или где посмотреть?
Если сейчас полезу добавлять ddr, думаю не разгребу до января )

Так есть способ оставить tse и убрать rtos?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Nov 4 2009, 03:17
Сообщение #62


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



т.е. протокол свой? тогда ось точно ни к чему. вообще для приема/передачи пакета достаточно проинициализировать PHY. для приема пакета с помощью TSE нужно выделить под него буфер, сделать дескриптор для rxdma и настроить прерывание. передача аналогично: записать пакет в массив, сделать дескриптор, который на него указывает и передать tx_dma. такой вариант килобайт в 10 упихать можно. но это не самый удобный способ, т.к. доступ будет на самом низком уровне, по MAC-адресам и потребует прав на создание raw_ethernet_socket`ов, что в нормальных осях может делать только админ. поэтому стоит реализовать огрызок tcp/ip: ARP - для преобразования IP-адресов в MAC, ICMP - ping для диагностики и разборку UDP - заголовков. все это еще килобайт 10 займет. в принципе вики достаточно почитать по этим стандартам. детали - в соответствующих RFC, в сети есть переводы на русский. пригодится и снифер, напимер, wireshark. память все-таки стоит поднять, много памяти - это хорошо smile.gif. проидитесь по форуму, это уже обсуждалось.
Go to the top of the page
 
+Quote Post
dim99
сообщение Nov 6 2009, 17:13
Сообщение #63


Частый гость
**

Группа: Свой
Сообщений: 120
Регистрация: 8-02-09
Из: Мытищи
Пользователь №: 44 580



Цитата(vadimuzzz @ Nov 4 2009, 06:17) *
поэтому стоит реализовать огрызок tcp/ip


Пока нет возможности написать свой tcp\ip (есть еще учеба), поэтому пытаюсь добить пример SSS.

Нашел новую "фичу" с flash - если установить загрузку nios cpu с ext_flash и взять простой пример hello world, то при debug'e в nios ide ответа от flash не будет.
По крайней мере пробовал несколько раз один и тот же проект.
Если загрузку с on-chip, то есть доступ к flash.

У меня ощущение, что доступ какой-то односторонний к flash - либо из nios ide с загрузкой из on-chip, либо идет загрузка software и обрубается доступ из nios ide к flash.

Теперь при debug'e(загрузка программы из flash) на плате выскакивает такая ошибка:
prep_tse_mac 0
Could not locate flash sector with MAC address.
prepped 1 interface, initializing...
Netinit: calloc failed getting buffer 21
inet startup error: unable to initialize net
panic: IP
dtrap - needs breakpoint
ip_exit: calling func 0x6115784

из network_utilities.c:
Код
error_t get_board_mac_addr(unsigned char mac_addr[6])
{
  error_t error = 0;
  alt_u32 signature;

  /* Get the flash sector with the MAC address. */
  error = FindLastFlashSectorOffset(&last_flash_sector_offset);


Так как программа считывается с ext_flash и (по моей теории) доступа из nios ide к flash нет, то естественно, что считать данные из последнего сектора нельзя.
Вот думаю в рабочей программе, где есть доступ к flash прочитать содержимое flash и затем исправить немного код в network_utilities.c, чтобы подсунуть нужный mac без обращения к flash.
Только вот сомнения есть, что дальше не будет обращений к flash за какими-нибудь параметрами ethernet.
Либо каким-то образом уменьшить код SSS, чтобы влез в on-chip и не ругался на нехватку памяти в стеке там вроде бы обращение к flash проходят нормально.

Еще хочу посмотреть в сторону superloop вроде там обрезали rtos и занимает он меньше.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Nov 7 2009, 08:59
Сообщение #64


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



можно еще с флагами оптимизации поиграться: выставить для System Library конфигурацию Release, для проекта оставить Debug. а лучше DDR поднять, там работы - на час.
Go to the top of the page
 
+Quote Post
dim99
сообщение Nov 7 2009, 10:58
Сообщение #65


Частый гость
**

Группа: Свой
Сообщений: 120
Регистрация: 8-02-09
Из: Мытищи
Пользователь №: 44 580



Цитата(vadimuzzz @ Nov 7 2009, 11:59) *
можно еще с флагами оптимизации поиграться: выставить для System Library конфигурацию Release, для проекта оставить Debug. а лучше DDR поднять, там работы - на час.


Наверноe, придется поднять ddr, а то все больше времени уходит на проверку влезет\не влезет проект в on-chip.
Спасибо за совет.
Go to the top of the page
 
+Quote Post
dim99
сообщение Nov 12 2009, 13:15
Сообщение #66


Частый гость
**

Группа: Свой
Сообщений: 120
Регистрация: 8-02-09
Из: Мытищи
Пользователь №: 44 580



В общем добавил к проекту Sram - все пишет\читает.

хочу загружаться с него, чтобы не трогать flash и была возможность считать с него информацию из-под nios ide.
Единственное, когда установил reset vector и exception vector на Sram проект не запустился, а при попытке отладить получил ошибку верификации проекта - оно и понятно, что в sram проекта никакого не было, а только мусор.
Попробовал запустить проект с on-chip а heap, stack, rd\wr поместить в sram - но опять ничего не завелось, хотя led active sram горит.

Полистал an458 Alternative Nios II Boot Methods, но пока еще не понял как проинициализировать sram.

собственно вопрос:
1. как проинициализировать sram
2. почему может неадекватно работать stack в system library размещенный в sram
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Nov 12 2009, 13:53
Сообщение #67


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата
хочу загружаться с него, чтобы не трогать flash и была возможность считать с него информацию из-под nios ide.

загружаться с нее не получится, только код исполнять. лучше всего так:
-reset нацелить на flash
-exception на SRAM
-в настройках System Library - все на SRAM
тогда при подаче питания код будет считываться из flash в SRAM, а потом ему будет передаваться управление. flash будет доступна на запись/чтение. это по пункту 1. по второму - что значит неадекватно?
Go to the top of the page
 
+Quote Post
dim99
сообщение Nov 12 2009, 15:14
Сообщение #68


Частый гость
**

Группа: Свой
Сообщений: 120
Регистрация: 8-02-09
Из: Мытищи
Пользователь №: 44 580



Цитата(vadimuzzz @ Nov 12 2009, 16:53) *
загружаться с нее не получится, только код исполнять. лучше всего так:
-reset нацелить на flash
-exception на SRAM
-в настройках System Library - все на SRAM
тогда при подаче питания код будет считываться из flash в SRAM, а потом ему будет передаваться управление. flash будет доступна на запись/чтение. это по пункту 1. по второму - что значит неадекватно?


для проверки работоспособности sram использую рабочий проект(почему-то не доверяю простой записи\чтению в nios ide smile.gif ), который выводит изображение на экран tft-монитора.
Когда загрузка идет с on-chip все в порядке выводится именно то, что необходимо.
при задании sram в свойствах system library - экран становится серым (хотя причины могут быть и другими).

Раз нельзя so sram грузиться значит не судьба.

В общем сделаю, как вы посоветовали с system library и буду ковырять network_utilities.c, чтоб подсунуть ip и mac.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Nov 12 2009, 15:26
Сообщение #69


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(dim99 @ Nov 12 2009, 21:14) *
Когда загрузка идет с on-chip все в порядке выводится именно то, что необходимо.
...
Раз нельзя so sram грузиться значит не судьба.
...

видимо, тут путаница возникла. on-chip и off-chip ничем не отличаются
Цитата
при задании sram в свойствах system library - экран становится серым (хотя причины могут быть и другими).

наверняка другие. вообще это моветон, подсовывать полуработающее железо в большую программу. отладьте железо на простых тестах.
Go to the top of the page
 
+Quote Post
dim99
сообщение Nov 13 2009, 17:09
Сообщение #70


Частый гость
**

Группа: Свой
Сообщений: 120
Регистрация: 8-02-09
Из: Мытищи
Пользователь №: 44 580



Цитата(vadimuzzz @ Nov 12 2009, 18:26) *
видимо, тут путаница возникла. on-chip и off-chip ничем не отличаются


Что вы имели в виду, чем они не отличаются друг от друга?

Попробовал sram в свойствах system library, а под код оставил on-chip, к сожалению, запустить пример simple socket server не удалось - в консоль вывел 5 символов в какой-то кодировке квадратиками.
Может неправильно подключил sram?
Или 100Mhz для него много, хотя в manual'e 104 предел.

вот такая память: 32 MB (2 M × 16) итого 4Mбайта.
в sopc builder взял компонент IDT71V16 - memory size - 4096 Kb.
использую вместе с flash, поэтому в tristate bridge объединил адреса.

В hello world пишет и читает.
При загрузке проекта с sram в system library светится SRAM LED ACTIVE - то есть max II его видит.
Как его протестировать на правильность работы в sytem library?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Nov 14 2009, 14:01
Сообщение #71


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(dim99 @ Nov 13 2009, 23:09) *
Что вы имели в виду, чем они не отличаются друг от друга?

с точки зрения ниоса - один фиг. ну может у внешнего ОЗУ латентность повыше.
Цитата
Попробовал sram в свойствах system library, а под код оставил on-chip,

это как? настройки system library в студию. на фига теперь он-чип, внешней ведь хватает?

Цитата
В hello world пишет и читает.
При загрузке проекта с sram в system library светится SRAM LED ACTIVE - то есть max II его видит.
Как его протестировать на правильность работы в sytem library?

пишет и читает память?

давайте еще раз: оставить только флеш и внешнее ОЗУ - так работает?(все секции программы запихать в ОЗУ, ресет на флеш)
Go to the top of the page
 
+Quote Post
dim99
сообщение Nov 14 2009, 17:01
Сообщение #72


Частый гость
**

Группа: Свой
Сообщений: 120
Регистрация: 8-02-09
Из: Мытищи
Пользователь №: 44 580



Цитата(vadimuzzz @ Nov 14 2009, 17:01) *
это как? настройки system library в студию. на фига теперь он-чип, внешней ведь хватает?


пишет и читает память?

давайте еще раз: оставить только флеш и внешнее ОЗУ - так работает?(все секции программы запихать в ОЗУ, ресет на флеш)


Внешняя память - подключенная sram 4мбайта.

1.Оставил flash и sram.
Reset на flash, exception на sram.
Свойства system library все на sram указывают.
Прошиваю flash кодом сформированным - cfi_flash.flash.
Запускаю run hardware - загорается led active sram, в консоль выводится непонятной кодировки 5 символов - квадратиков и все на том завершается.

2.Потом решил проверить sram.
reset и exception на on-chip.
В свойствах system library только stack указывает на sram, все остальное на on-chip - в итоге при запуске run - те же символы в консоле.

вот поэтому думаю, что что-то с sram не то.


в hello world читает и пишет исправно в sram.

Сообщение отредактировал dim99 - Nov 14 2009, 17:02
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Nov 15 2009, 05:15
Сообщение #73


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(dim99 @ Nov 14 2009, 23:01) *
Reset на flash, exception на sram.
Свойства system library все на sram указывают.
Прошиваю flash кодом сформированным - cfi_flash.flash.
Запускаю run hardware - загорается led active sram, в консоль выводится непонятной кодировки 5 символов - квадратиков и все на том завершается.

придется отладчик запускать пошаговый
Цитата
2.Потом решил проверить sram.
reset и exception на on-chip.
В свойствах system library только stack указывает на sram, все остальное на on-chip - в итоге при запуске run - те же символы в консоле.
вот поэтому думаю, что что-то с sram не то.

вряд ли
Цитата
в hello world читает и пишет исправно в sram.

подтверждает сказанное выше. т.е. порядок байт не меняет, пишет/читает везде? hello world, если разместить в off-chip пашет? значит надо этот сервер ковырять отладчиком
Go to the top of the page
 
+Quote Post
dim99
сообщение Nov 15 2009, 08:35
Сообщение #74


Частый гость
**

Группа: Свой
Сообщений: 120
Регистрация: 8-02-09
Из: Мытищи
Пользователь №: 44 580



Цитата(vadimuzzz @ Nov 15 2009, 08:15) *
hello world, если разместить в off-chip пашет?


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

Сообщение отредактировал dim99 - Nov 15 2009, 08:36
Go to the top of the page
 
+Quote Post
dim99
сообщение Nov 16 2009, 14:55
Сообщение #75


Частый гость
**

Группа: Свой
Сообщений: 120
Регистрация: 8-02-09
Из: Мытищи
Пользователь №: 44 580



В общем на время решил отказаться от SSS.

Уважаемый vadimuzzz можно чуть попродробнее про
Цитата
вообще для приема/передачи пакета достаточно проинициализировать PHY. для приема пакета с помощью TSE нужно выделить под него буфер, сделать дескриптор для rxdma и настроить прерывание
Go to the top of the page
 
+Quote Post

26 страниц V  « < 3 4 5 6 7 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 22:57
Рейтинг@Mail.ru


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