|
Вопрос по IAR, Настройки среды программирования |
|
|
|
 |
Ответов
|
Nov 17 2013, 09:56
|
Местный
  
Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199

|
И снова здравствуйте. Теперь я умею в одном проекте использовать код на С++ и на ассемблере. Но вот возник вопрос... У меня в проекте 3 функции, написанные на С++. Все они не принимают параметров и не возвращают их (работают с глобальными переменными). Вызываются они одна за другой. Настроив линкер, я указал, что функции у меня расположены в определенной области памяти. В отладчике я вижу, что мои функции расположились в указанной мной области памяти в таком же порядке, как происходит их вызов. Далее я самую первую функцию пишу на ассемблере, так же указав сегмент расположения этой функции. Порядок вызова функций я не меняю, однако после всего этого я вижу, что функция, написанная на ассемблере, расположилась в памяти после функций, написанных на С++ (хотя вызывается первая). Подскажите, почему эта функция на С++ была первая в памяти, а на ассемблере стала последней? И еще: конечно это не особо критично, но подскажите, возможно ли указать линкеру не только расположение функций, но и порядок их размещения в памяти?
|
|
|
|
|
Nov 17 2013, 10:47
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(d7d1cd @ Nov 17 2013, 13:56)  Подскажите, почему эта функция на С++ была первая в памяти, а на ассемблере стала последней? И еще: конечно это не особо критично, но подскажите, возможно ли указать линкеру не только расположение функций, но и порядок их размещения в памяти? У IAR компиляторы языка С/С++ и языка ассемблера раздельные! В вашем случае это icc430.exe и a430.exe. Поэтому сишные функции окажутся откомпилированными в одном объектном модуле, а ассемблерные функции в другом. А дальше все зависит от того, в каком порядке их соберет линкер. Видимо у него make такой, что первыми в очереди на сборку идут сишные модули, а ассемблерные за ними. Впрочем, попробуйте переставить порядок следования сишного и ассемблерного модулей в проекте. Если это у вас получится, то, вероятно, и порядок следования функций тоже изменится. P.S. А не все ли вам равно, в каком порядке функции следуют внутри сегмента кода? Зарекаться на этот порядок в проектах, в общем-то, неприлично.
|
|
|
|
Сообщений в этой теме
d7d1cd Вопрос по IAR Nov 8 2013, 18:19 Xenia Цитата(d7d1cd @ Nov 8 2013, 22:19) Подска... Nov 8 2013, 18:35 d7d1cd При попытке компиляции IAR выдает ошибку Fatal Err... Nov 9 2013, 04:51 Xenia Цитата(d7d1cd @ Nov 9 2013, 08:51) Спасиб... Nov 9 2013, 15:56  d7d1cd Цитата(Xenia @ Nov 9 2013, 19:56) А потом... Nov 9 2013, 17:31   Xenia Цитата(d7d1cd @ Nov 9 2013, 21:31) По рас... Nov 9 2013, 20:19 d7d1cd Попытался указать переменной конкретный адрес. Нич... Nov 10 2013, 10:30 Xenia Цитата(d7d1cd @ Nov 10 2013, 14:30) В код... Nov 10 2013, 12:25  d7d1cd Сделал объявление переменной глобально, то есть вн... Nov 10 2013, 13:42   Xenia Цитата(d7d1cd @ Nov 10 2013, 17:42) Все х... Nov 10 2013, 13:53 d7d1cd Хорошо. А возможно ли какой-то локальной переменно... Nov 10 2013, 14:04 SSerge Цитата(d7d1cd @ Nov 10 2013, 21:04) Возмо... Nov 10 2013, 14:45  d7d1cd Цитата(SSerge @ Nov 10 2013, 18:45) Остав... Nov 10 2013, 14:57   rezident Цитата(d7d1cd @ Nov 10 2013, 19:57) Если ... Nov 11 2013, 20:28 Xenia Цитата(d7d1cd @ Nov 10 2013, 18:04) Хорош... Nov 10 2013, 14:53 d7d1cd Уважаемый rezident, объяснения как всегда на высот... Nov 12 2013, 05:02 Xenia Цитата(d7d1cd @ Nov 12 2013, 09:02) Хочет... Nov 12 2013, 09:33  d7d1cd Цитата(Xenia @ Nov 12 2013, 13:33) ...нап... Nov 12 2013, 10:01   MrYuran Цитата(d7d1cd @ Nov 12 2013, 14:01) Как п... Nov 13 2013, 06:34 d7d1cd Создал я проект, добавил в него файл. В этом файле... Nov 13 2013, 09:09 MrYuran Прямо так и вызывать, предварительно объявив прото... Nov 13 2013, 09:26 d7d1cd Попробовал следовать Вашему совету. Файл с функцие... Nov 13 2013, 10:19 MrYuran Цитата(d7d1cd @ Nov 13 2013, 14:19) Скажи... Nov 13 2013, 10:53 d7d1cd Ошибка Bad instruction. Возникает в строке ассембл... Nov 13 2013, 11:02 d7d1cd Сделал я проект. Прикладываю его сюда. В этом прое... Nov 14 2013, 07:48 rezident Цитата(d7d1cd @ Nov 14 2013, 12:48) Сдела... Nov 14 2013, 15:20 d7d1cd Спасибо всем за помощь! Наконец то я победил к... Nov 14 2013, 17:28  d7d1cd Цитата(Xenia @ Nov 17 2013, 14:47) У IAR ... Nov 17 2013, 11:08   Xenia Цитата(d7d1cd @ Nov 17 2013, 15:08) Пока ... Nov 17 2013, 12:01    d7d1cd Цитата(Xenia @ Nov 17 2013, 16:01) ...вы ... Nov 17 2013, 12:49     Xenia Цитата(d7d1cd @ Nov 17 2013, 16:49) Как ж... Nov 17 2013, 13:13 d7d1cd И снова здравствуйте. Подскажите, пожалуйста, как ... Nov 22 2013, 07:29 Xenia Цитата(d7d1cd @ Nov 22 2013, 11:29) Подск... Nov 22 2013, 11:23 d7d1cd Спасибо, Xenia. Я пока не пробовал в компиляторе, ... Nov 22 2013, 16:36 d7d1cd Все получилось. Спасибо. Есть еще вопрос по распол... Nov 23 2013, 16:53 Xenia Цитата(d7d1cd @ Nov 23 2013, 20:53) Спаси... Nov 23 2013, 18:01 d7d1cd Я пытался свою задачу выполнить следующим образом.... Nov 24 2013, 07:04 Xenia Цитата(d7d1cd @ Nov 24 2013, 11:04) Все з... Nov 24 2013, 17:58 d7d1cd А чем, собственно, отличаются конфигурации Debug и... Nov 25 2013, 15:21 Xenia Цитата(d7d1cd @ Nov 25 2013, 19:21) А чем... Nov 25 2013, 21:12 d7d1cd Привет всем. Снова вопрос по среде программировани... Dec 28 2013, 15:06 d7d1cd Разобрался в своем вопросе. Необходимо перед объяв... Jan 1 2014, 13:25 d7d1cd Решил один вопрос, появился другой. Задам тут, мож... Jan 4 2014, 09:09 rezident Цитата(d7d1cd @ Jan 4 2014, 14:09) А нель... Jan 4 2014, 15:31 d7d1cd Спасибо за помощь! Jan 4 2014, 17:15 d7d1cd Уже устал биться с линкером. Помогите...
У меня в ... Jan 6 2014, 13:29 rezident Цитата(d7d1cd @ Jan 6 2014, 18:29) Я попр... Jan 6 2014, 13:52  d7d1cd Цитата(rezident @ Jan 6 2014, 17:52) Прил... Jan 6 2014, 14:59 SM Сделайте еще одну секцию с кодом, с другим именем,... Jan 6 2014, 15:30 d7d1cd Цитата(SM @ Jan 6 2014, 19:30) Сделайте е... Jan 6 2014, 15:46  SM Цитата(d7d1cd @ Jan 6 2014, 19:46) Я пони... Jan 6 2014, 16:57   d7d1cd Цитата(SM @ Jan 6 2014, 20:57) Вообще, об... Jan 6 2014, 17:16    SM Цитата(d7d1cd @ Jan 6 2014, 21:16) Тогда ... Jan 6 2014, 19:17 d7d1cd Итак, у меня снова возник вопрос по системе програ... Feb 27 2014, 15:30 rezident Цитата(d7d1cd @ Feb 27 2014, 20:30) А воз... Feb 27 2014, 15:38  d7d1cd Цитата(rezident @ Feb 27 2014, 19:38) Сде... Feb 27 2014, 16:09   _Артём_ Цитата(d7d1cd @ Feb 27 2014, 20:09) [code... Feb 27 2014, 16:54    d7d1cd Цитата(_Артём_ @ Feb 27 2014, 20:54) Може... Feb 27 2014, 16:56     _Артём_ Цитата(d7d1cd @ Feb 27 2014, 20:56) ASEG ... Feb 27 2014, 17:23 d7d1cd Вроде разобрался как использовать директиву ASEG:
... Feb 28 2014, 13:39 d7d1cd При создании проекта на ассемблере я вижу, что ест... Mar 11 2014, 13:20
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|