roboforum.ru

Технический форум по робототехнике.
Текущее время: 21 май 2025, 20:52

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: Как правильно расположить объекты в секции (GCC)
СообщениеДобавлено: 18 ноя 2011, 13:15 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Почему нонсенс, она просто не возвращает управление. Никогда.
Хорошо, как мне еще нужно было назвать кусок кода описанный на си как функция,
выглядящий для остального кода как функция, принимающий параметры в регистрах и на стеке как функция,
размещающий локальные переменные на стеке, как функция, но не возвращающий управление?
Тупо зацикливающийся в конце.

Например функция мэйн в огромном большинстве моих проектов не возвращает управление.

Я задал вполне конкретный вопрос. И в рамках этого вопроса описал условия полностью.
Есть там гуй или нету там гуя - к компилятору и линкеру никакого отношения не имеет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно расположить объекты в секции (GCC)
СообщениеДобавлено: 18 ноя 2011, 13:19 
Не в сети

Зарегистрирован: 27 авг 2011, 14:05
Сообщения: 47
Michael_K писал(а):
Так или иначе код придется разделять на непересекающиеся по ресурсам секции.
Так что проблему описанную в стартовом топике ваши "так называемые предложения" не решают никак.
И не надо тут оффтопить.

А теперь внимательно перечитайте, что я вам выше предлагал, про независимые программы. Вы делаете абсолютно тоже самое только какими-то жуткими и ненужными ухищрениями. То что вы делаете имело бы смысл, если две части были бы по большей части независимы, однако имели бы какую-то общую часть.
Прежде чем изобретать велосипед стоит посмотреть на готовые.
Вот, например, простенькое описание загрузчика от ST. Все виденые мною загрузчики для АВР сделаны аналогично.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно расположить объекты в секции (GCC)
СообщениеДобавлено: 18 ноя 2011, 13:23 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Цитата:
Словно умудренные жизненным опытом стервятники в пустыне, они смотрят вслед проползающим путникам.
На вопрос, где можно напиться, они долго обсуждают, нужна ли тебе вода и неизменно приходят к выводу, что нет, тебе, брат, вода ни к чему.
Неспешно перечисляют причины, по которым тебе лучше жить без воды.
И ни один из них не покажет в какой стороне колодец.


Добавлено спустя 2 минуты 13 секунд:
Адекватно на вопрос ответил только Vooon... и Сергей со второго раза.
Однако проблема была в баге компилятора (в GCC 4.2, говорят, исправлен)

Добавлено спустя 1 минуту 40 секунд:
Flexz писал(а):
Прежде чем изобретать велосипед стоит посмотреть на готовые.

Прежде чем отвечать на вопрос, нужно его понять.Проблема же не в том бутлоадер я располагаю по абсолютному адресу,
или мэйн или еще какой-то кусок кода. Проблема в том, что этот самый кусок кода, вход в который расположенный по абсолютному адресу, пользуется другими функциями и данными, которые, естественно, хочется расположить в его же секции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно расположить объекты в секции (GCC)
СообщениеДобавлено: 18 ноя 2011, 13:36 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Michael_K писал(а):
Словно умудренные жизненным опытом стервятники в пустыне, они смотрят вслед проползающим путникам.

Ну вот сразу стервятники.

Проблема выеденного яйца не стоит. Пишем функцию, которая осуществляет запись, в виде отдельной программы, загружаем в старшие алреса. Основное приложение - отдельная программа, загружаемая с нулевого адреса.

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно расположить объекты в секции (GCC)
СообщениеДобавлено: 18 ноя 2011, 13:55 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
То есть вы считаете, что это более простой и прямой способ? Нуну...
"Функция в виде отдельной программы" - это прикол тот еще. Потому что потребует полностью переписать линкер-скрипт и, возможно, стартап код (какая-нибудь случайно затесавшаяся инициализация стека доставит много радости). Я например с ходу не стал бы гарантировать, что там компилятор-с-линкером нагородят. А процесс отладки такой "функции в виде отдельной программы" представили?

И главное-то проблему оно не снимает - поменяются только названия - все равно линкеру нужно сказать, где в секции "текст" будет точка входа в "мэйн".


Последний раз редактировалось Michael_K 18 ноя 2011, 14:01, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно расположить объекты в секции (GCC)
СообщениеДобавлено: 18 ноя 2011, 14:01 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Отладка ничем не отличается от любой другой программы. В чем проблема-то? Считайте, что начала выполняться совершенно другая программа. какая разница как там стэк инициализируется? Скрипты за вас уже написали авторы бутлоадеров, для любых контроллеров

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно расположить объекты в секции (GCC)
СообщениеДобавлено: 18 ноя 2011, 14:03 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
:)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно расположить объекты в секции (GCC)
СообщениеДобавлено: 18 ноя 2011, 14:05 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Я это понимаю так, что вы уперлись в какое-то решение, которое сами придумали, и не желаете никого слушать, кто предлагает другие способы, возможно более простые и надежные

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно расположить объекты в секции (GCC)
СообщениеДобавлено: 18 ноя 2011, 14:13 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Вы же не отвечаете на поставленную задачу!!!
Попробуйте написать "функцию в виде отдельной программы" так чтобы точка входа в мэйн располагалась по заранее заданному адресу.
Условие - в мейн передаются аргументы и мэйн вызывает другие функции и обращается к таблицам констант (и об этом написано в стартовом топике). То есть функция мэйн - не единственная в секции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно расположить объекты в секции (GCC)
СообщениеДобавлено: 18 ноя 2011, 14:20 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Да ты просто странно пишешь вопросы. Я вот возился сейчас с бутлоадером для своего осцилла, все выглядит так, как говорит блайндмен. Есть программа, которая пишется в определенное место в мк (в моем случае это 0x8000000). Программа проверяет нажата ли определенная кнопка. Если да, то вводит МК в режим USB_DFU, который принимает по уарту основную программу и размещает ее в памяти МК начиная с адреса 0x8004000, если кнопка не нажата, то делает джамп то юзер аппликейшн, который, опять же, начинается с адреса 0х8004000. Причем все это можно сделать и без ДФУ - тупо при записи памяти указать начальный адрес, по которому хочешь писать. Хотя в .hex-е первой строкой прописывается адрес, в который надо класть.

А ты непонятно чего хочешь, да еще и злишься.

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно расположить объекты в секции (GCC)
СообщениеДобавлено: 18 ноя 2011, 14:23 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Michael_K, подсказать, как передать параметры в функцию main() бутлоадера?

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно расположить объекты в секции (GCC)
СообщениеДобавлено: 18 ноя 2011, 14:24 
Не в сети

Зарегистрирован: 27 авг 2011, 14:05
Сообщения: 47
Цитата:
Попробуйте написать "функцию в виде отдельной программы"...

Ну и в чем проблема-то? именно так это и делается.

Цитата:
линкеру нужно сказать, где в секции "текст" будет точка входа в "мэйн".

Нда.. Линкеру начхать на мейн, он не знает что это. В начале секции текст располагается ctr startup (как он туда попадает? ну посмотрите стартапы от любого ARM-а и соответствующие скрипты линкера), он инициализирует секции bss и data и под занавес вызывает main. Кажется вам стоит разобраться с базовыми понятиями, прежде чем браться за что-то более сложное.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно расположить объекты в секции (GCC)
СообщениеДобавлено: 18 ноя 2011, 14:26 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Кстати, топистартер говорил-где-то, что у него ARM? AVR? или что-то еще?

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно расположить объекты в секции (GCC)
СообщениеДобавлено: 18 ноя 2011, 14:27 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Хохо...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно расположить объекты в секции (GCC)
СообщениеДобавлено: 18 ноя 2011, 14:30 
Не в сети

Зарегистрирован: 27 авг 2011, 14:05
Сообщения: 47
blindman писал(а):
Кстати, топистартер говорил-где-то, что у него ARM? AVR? или что-то еще?

Нет он это тщательно скрывает.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO