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

|
Цитата(rezident @ Feb 27 2014, 19:38)  Сделать что "это"? Переменные вы и так обязаны объявлять в своей программе. Я пишу на ассемблере. Чтобы разместить код функции по определенному адресу, я пишу: Код RSEG MySegment Mul16u16uTo32u: ... RET А в файле XCL или в опциях линкера и прописываю: Код -Z(CODE)MySegment=1200-1300 Так вот: нельзя ли обойтись без файла XCL и опций линкера и описание сегмента расположить в файле, где расположен код функции.
|
|
|
|
|
Feb 27 2014, 16:56
|
Местный
  
Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199

|
Цитата(_Артём_ @ Feb 27 2014, 20:54)  Может и можно - посмотрите в документации есть ли у IAR директива ASEG или аналогичная. ASEG есть. И ASEGN есть. Какую директиву использовать? Не особо я силен в англицком. Подскажите в чем отличие этих директив друг от друга и от директивы RSEG? Вот их описание в документации: CODE Beginning an absolute segment Use ASEG to set the absolute mode of assembly, which is the default at the beginning of a module. If the parameter is omitted, the start address of the first segment is 0, and subsequent segments continue after the last address of the previous segment. Note: If a move of an immediate value to an absolute address, for example mov #0x1234, 0x300 is made in a relocatable or absolute segment, the offset is calculated as if the code begun at address 0x0000. The assembler does not take into account the placement of the segment.
Beginning a named absolute segment Use ASEGN to start a named absolute segment located at the address address. This directive has the advantage of allowing you to specify the memory type of the segment.
Beginning a relocatable segment Use RSEG to start a new segment. The assembler maintains separate location counters (initially set to zero) for all segments, which makes it possible to switch segments and mode anytime without having to save the current program location counter. Up to 65536 unique, relocatable segments can be defined in a single module.
Beginning a common segment Use COMMON to place data in memory at the same location as COMMON segments from other modules that have the same name. In other words, all COMMON segments of the same name start at the same location in memory and overlay each other. Obviously, the COMMON segment type should not be used for overlaid executable code. A typical application would be when you want several different routines to share a reusable, common area of memory for data. It can be practical to have the interrupt vector table in a COMMON segment, thereby allowing access from several routines. The final size of the COMMON segment is determined by the size of largest occurrence of this segment. The location in memory is determined by the XLINK -Z command; see the IAR Linker and Library Tools Reference Guide. Use the align parameter in any of the above directives to align the segment start address.
Сообщение отредактировал d7d1cd - Feb 27 2014, 17:28
|
|
|
|
Сообщений в этой теме
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 И снова здравствуйте. Теперь я умею в одном проект... Nov 17 2013, 09:56 Xenia Цитата(d7d1cd @ Nov 17 2013, 13:56) Подск... Nov 17 2013, 10:47  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, 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
|
|
|