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

 
 
> ASM для NIOS2, для начинающих
AndriAno
сообщение Feb 9 2009, 11:12
Сообщение #1


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

Группа: Свой
Сообщений: 103
Регистрация: 17-03-06
Из: Томск
Пользователь №: 15 319



Начинаю разбираться с NIOS2
Создал несколько простых проектов в Срр
поработал с таймерами, шинами, обработкой прерываний.
Возникло несколько вопросов к знатокам:
  • Cистема к моему довольно незначительному коду добавляет свой весьма внушительный стартап код, из-за которого прошивка не помещается в onchip memory(пришлось .rodata писать в EPCS). Есть ли возможность уменьшить или совсем убрать этот служебный код?
  • Для ускорения работы системы хочется писать программу на ASM. Нашел список инструкций, вроде бы разобрался с использованием прерываний(через custom instructions). Включил в проект файл с кодом, но получил следующее: alt_main.c:161: undefined reference to `main'

Что посоветуете??
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Methane
сообщение Feb 9 2009, 11:16
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(AndriAno @ Feb 9 2009, 13:12) *
Что посоветуете??

Отключить стартап. Как именно вы компилируете и собираете программу?
Go to the top of the page
 
+Quote Post
AndriAno
сообщение Feb 9 2009, 12:07
Сообщение #3


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

Группа: Свой
Сообщений: 103
Регистрация: 17-03-06
Из: Томск
Пользователь №: 15 319



Цитата(Methane @ Feb 9 2009, 14:16) *
Отключить стартап. Как именно вы компилируете и собираете программу?


В SOPC Builder создаю систему, получаю .sopc файл
В NIOS II создаю новый проект с указанием этого файла.

Затем создается С/С++ application(пустую папку создать иначе не дает),
создаю source folder , и в ней prject_asm.s
в нем объявляю .global main

как я понимаю main вызывается из alt_main()
Go to the top of the page
 
+Quote Post
Methane
сообщение Feb 9 2009, 12:22
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



А ручную, из командной строки?
Посмотрите ключи для gcc --nostdlib --nostartfiles --nodefaultlib итд. Это для gcc

Сообщение отредактировал Omen_13 - Feb 15 2009, 19:21
Go to the top of the page
 
+Quote Post
AndriAno
сообщение Feb 9 2009, 12:40
Сообщение #5


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

Группа: Свой
Сообщений: 103
Регистрация: 17-03-06
Из: Томск
Пользователь №: 15 319



Цитата(Methane @ Feb 9 2009, 15:22) *
А ручную, из командной строки?


А если без командной строки??
Существует возможность???
gcc как я понимаю ниосовский??
Go to the top of the page
 
+Quote Post
Methane
сообщение Feb 10 2009, 10:33
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(AndriAno @ Feb 9 2009, 14:40) *
А если без командной строки??
Существует возможность???
gcc как я понимаю ниосовский??

Да. Ниосовский. Я говорю как сделать, с помощью GCC вообще, не конкретно для ниоса. Можно переписать скрипт линкера (.ld), и написать свой стартап. Так вы всегда точно будете знать что у вас в проекте происходит, и в случае чего как и что пофиксить/ изменить.
Go to the top of the page
 
+Quote Post
AndriAno
сообщение Feb 10 2009, 11:06
Сообщение #7


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

Группа: Свой
Сообщений: 103
Регистрация: 17-03-06
Из: Томск
Пользователь №: 15 319



Цитата(Methane @ Feb 10 2009, 14:33) *
Я говорю как сделать, с помощью GCC вообще, не конкретно для ниоса.

При работе под виндой пользовать gcc приходиться ОЧЕНЬ редко, поэтому навыков использования компилятора через командную строку порой нехватает.
Цитата
Можно переписать скрипт линкера (.ld), и написать свой стартап.

В такие дебри еще не лазил. всего несколько дней с ниосом работаю. пока просто закоментил всё лишнее на мой взгляд, в стандартом стартапе.
Go to the top of the page
 
+Quote Post
Methane
сообщение Feb 10 2009, 11:18
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(AndriAno @ Feb 10 2009, 13:06) *
В такие дебри еще не лазил. всего несколько дней с ниосом работаю. пока просто закоментил всё лишнее на мой взгляд, в стандартом стартапе.

Строго говоря, вы можете писать свою ассемблерную программу, прямо в стартапе. При необходимости прилинковывая Cишные функции. Какие ключики указать компилятору я уже указала. В настройках проекта должна быть возможность.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- AndriAno   ASM для NIOS2   Feb 9 2009, 11:12
|- - Stewart Little   Цитата(AndriAno @ Feb 9 2009, 15:40) А ес...   Feb 10 2009, 09:03
||- - AndriAno   Цитата(Stewart Little @ Feb 10 2009, 13:0...   Feb 10 2009, 10:20
- - vadimuzzz   в настройках линкера есть полезная опция "ген...   Feb 10 2009, 12:30
- - AndriAno   Спасибо всем за померную помощь. У меня теперь воз...   Feb 13 2009, 11:23
|- - Stewart Little   Цитата(AndriAno @ Feb 13 2009, 14:23) нем...   Feb 13 2009, 12:19
|- - AndriAno   Цитата(Stewart Little @ Feb 13 2009, 15:1...   Feb 16 2009, 04:12
|- - id_gene   Цитата(AndriAno @ Feb 16 2009, 07:12) Ну ...   Feb 17 2009, 08:13
|- - AndriAno   Цитата(id_gene @ Feb 17 2009, 12:13) Цита...   Mar 2 2009, 04:03
- - PeterD   Я вот собрал свой проект на ASM вот по этому приме...   Mar 18 2009, 08:48
|- - PeterD   http://www.ict.kth.se/courses/IS1200/2008-...etup/...   Mar 18 2009, 11:33
- - PeterD   Господа подозреваю что Я один здесь такой тупой но...   Mar 24 2009, 11:47


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

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 12:13
Рейтинг@Mail.ru


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