|
Вопрос по IAR, Настройки среды программирования |
|
|
|
 |
Ответов
|
Nov 12 2013, 09:33
|

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

|
Цитата(d7d1cd @ Nov 12 2013, 09:02)  Хочется подробнее узнать про функции, написанные полностью на ассемблере. Как я полагаю в этих функциях для переменных можно будет использовать любые РОН, а не только R4 и R5. Подскажите ссылку на документацию (если возможно - на русском языке). IAR поддерживает сборку проекта, состоящего из C/C++ и ассеблерных файлов/модулей, различая их по расширению. Книжек о том, как програмировать на этих языках для MSP430, можно легко надыбать в интернете, но мой совет будет простой: написать на языке C функцию, нуждающуюся в переложении на ассемблер, в отдельном файле, откомпилировать проект с установкой, чтобы выдавало ассемблерный листинг. После чего редактируешь листинг по своему вкусу, использя те регистры, какие хочется, а затем подменяешь в проекте второй файл на асемблерный. Я, кстати, сама так МК-шному ассемблеру училась - книг не читала, а писала по образу и подобию того, как компилятор компилирует сишные образцы. Правда, к этому времени я на других ассемблерах уже умела программировать - это, видимо, тоже помогало. А из книг было достаточно таблицы инструкций и IAR-ского руководства EW430_AssemblerReference.pdf Думаю, что самая большая тут трудность не в том, чтобы на ассемблеру выучиться, а в том, чтобы соблюсти условности, позволяющие линкеру связывать объектные модули от двух разных языков. Т.к. проблема чаще возникает в том, что на ассемблере порой приходится искать доступ к глобальным переменным и массивам, определенным в сишной части проекта.
|
|
|
|
|
Nov 12 2013, 10:01
|
Местный
  
Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199

|
Цитата(Xenia @ Nov 12 2013, 13:33)  ...написать на языке C функцию, нуждающуюся в переложении на ассемблер, в отдельном файле, откомпилировать проект с установкой, чтобы выдавало ассемблерный листинг. После чего редактируешь листинг по своему вкусу, используя те регистры, какие хочется, а затем подменяешь в проекте второй файл на ассемблерный. Если Вас не затруднит, можете сделать пошаговое описание выше сказанного? Просто я в IAR совсем новичок. Ранее программировал только на C++Builder. Например, на С написать функцию, которая принимает 2 параметра и возвращает сумму квадратов этих параметров. Как потом реализацию этой функции вывести в ассемблерный листинг?
|
|
|
|
Сообщений в этой теме
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   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, 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
|
|
|