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

 
 
> назначение startup.s ассемлерных файлов, at91sam7x + gcc + Eclise
xelax
сообщение Aug 3 2007, 07:22
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 370
Регистрация: 7-11-06
Пользователь №: 22 035



Вел раньше свои разработки на филипсовых армах lpc использовал при этом IAR. Теперь необходимо перейти на atmel'овские армы и использовать gnu'сный gcc.

Имеется at91sam7x256 evalution kit плата. Скачал и установил Eclipse и YAGARTO gcc. Скачал и скомпилил start example с сайта атмела. Всё получилось, загрузилось и заработало. Но.... Очень много нового и непонятного.

И самое непонятное для меня смысл ассемблеровских стартапных исходников (видел подобное в Keil). wacko.gif
Вот собственно вопросы знатокам gcc:
1. Глубокий смысл этих файлов каков?
2. Можно как-нибудь обойтись без них или переписать на С?

З.Ы. В IARе у меня ничего погдобного не было, всё что нужно я инициализировал сам в коде, использовал настройки проекта и настраивал xcl файлы линкера. Этого хватало.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Stanislav
сообщение Aug 3 2007, 10:25
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(xelax @ Aug 3 2007, 11:22) *
Вот собственно вопросы знатокам gcc:
1. Глубокий смысл этих файлов каков?..
Инициализация С-шной среды (глобальных переменных, стэка, прерываний и т.д.)
Цитата(xelax @ Aug 3 2007, 11:22) *
...2. Можно как-нибудь обойтись без них или переписать на С?
Нельзя. Для запуска процедуры main означенные действия должны быть выполнены. См. стандарты C/C++.


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
Paramon
сообщение Aug 3 2007, 11:30
Сообщение #3


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

Группа: Участник
Сообщений: 128
Регистрация: 5-10-06
Пользователь №: 20 997



Цитата(Stanislav @ Aug 3 2007, 14:25) *
Инициализация С-шной среды (глобальных переменных, стэка, прерываний и т.д.)
Нельзя. Для запуска процедуры main означенные действия должны быть выполнены. См. стандарты C/C++.


А если уже давно всё инициализировано, а требутся отдельно (в другом проекте) скомпилить подгружаемый в озу код?
Весь день бьюсь! Всё безрезультатно!
Go to the top of the page
 
+Quote Post
v_shamaev
сообщение Aug 5 2007, 10:30
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 304
Регистрация: 5-07-04
Из: г. Москва
Пользователь №: 259



Цитата(Paramon @ Aug 3 2007, 15:30) *
А если уже давно всё инициализировано, а требутся отдельно (в другом проекте) скомпилить подгружаемый в озу код?
Весь день бьюсь! Всё безрезультатно!

Скомпилить никто не препятствует. Скорее всего вы хотите получить .elf а это уже "собрать" называется, ну в данном случае я бы и посмотрел на правила построения подгружаемых модулей - оверлеи или динамические библиотеки. Там main() не нужен, а сл-но и стартап не прилинковывется. Если хотите грубо вычистить (хаком) - тогда собственный ld-скрипт, убрать в нем стартап, и прописать стартовую процедуру. И ключи линкеру соответствующие.


--------------------
Водку пьянствовать и безобразия нарушать!!!
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 24th July 2025 - 03:01
Рейтинг@Mail.ru


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