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

 
 
> динамическая загрузка ПО NIOS II процессора
RLC
сообщение Nov 20 2014, 08:38
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 19-11-14
Из: СПб
Пользователь №: 83 740



Всем доброго времени суток.
Есть Модуль с CYCLONE IV в нём NIOS II процессор с RAM используемой для загрузки программ через Eclipse. (Задача находится в начальной стадии разработки). Есть протокол по RS232 по которому общается процессор и ПК. Данные из ПК по протоколу пишутся непосредственно в RAM, по передаваемым адресам.
Задача в том что бы существующая программа принимала и записывала массив данных, являющейся кодом программ для процессора и выполняла его. Т.е делала прыжок по адресу. Протокол реализован, запись массива данных работает.

Проблема в том что бы запустить загружаемое через RS232 приложение(приложение мигает лампочками и работает если самостоятельно в эту железку загрузить через NIOS EDS).hex программы я получаю через Build Target в Eclipse.
Буду благодарен за помощь.



Я тут покопал, подумал. Мне получается нужны "чистые исполняемые данные" а не .hex с адресами. вопрос только как их получить самому парсер .flash файла писать что ли? или есть стандатные утилиты?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
RLC
сообщение Nov 29 2014, 22:07
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 19-11-14
Из: СПб
Пользователь №: 83 740



Спасибо всем за ответы. Некоторые поняли меня не до конца.
Значит задача следующая:
1) зашить в ОЗУ программу стартер, которая умеет общаться по протоколу по RS232(поверх него ещё свой протокол)
2) при старте программа ждёт команды по RS
3) приходит команда:"записать массив байт по адресу". записывает эти байты(пришедшие по RS) по нужному адресу.
4) перейти на ожидание следующей команды по RS
5) если команда это "прыжок на адрес", то выполнять то что написано в этом адресе(в "С" это ссылка на функцию).То есть выполнить функцию по пришедшему адресу в команде.

Задача была выполнена правда работает только на одной железке, на другой(такой же NIOS но другая обвеска процессора(память, периферия)) почему то глюк за глюком. Но так как я сразу по получении этих результатов заболел, то результаты пока что такие.
Мне необходимо было полученную программу которую я загружаю через RS перевести в двоичный код, а я её в hex формате загружал(придурок). Как с помощью утилиты nios2-elf-objcopy -O binary source.elf output.bin(пишу по памяти) перевёл её и загрузил и перешёл по адресу по которому загрузил + адресс смещения, то сразу заработало на одной железке, на другой там половина не работает и при этом всегда по разному не работает и часто разные функции работают или не работают(фарш в общем).
Так что задачку я решил. Ну как выйду с больничного то буду разбираться почему так странно работает. sm.gif Надеюсь я внятней написал задачу и решение.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 23:51
Рейтинг@Mail.ru


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