|
Использование асмовых вставок в Keil uVision 3, как првильно подключать модули |
|
|
|
Nov 25 2007, 22:10
|
Частый гость
 
Группа: Свой
Сообщений: 153
Регистрация: 15-05-06
Из: Николаев
Пользователь №: 17 119

|
Появилась необходимость сделать асмовую вставку в сишный код. Для этого предлагается использовать директивы: #pragma asm ... #pragma endasm
Когда делаешь что-то подобное в проекте, необходимо в Source Group на файле в опциях указать галочки Generate Assembler SCR files Assemble SCR files тогда начинает компилировать код, но делать вставки в подключаемых файлах через #include не разрешает.. если файл принудительно добавить в проект как файл main.c и указать єти же опции галочками, то вроде тоже компилирует, но при этом переменные, которые были объявлены в этом файле не видны в других инклудах, как это было раньше
Расскажите ненмого подробней, как правильно делать асмовые вставки, чтоб их можно было компилировать в любом файле или же как правильно подключать модули, чтоб можно было корректно дергать из них функции и переменные и использовать в других модулях. Насколько я понял функции в других инклудах можно использовать если описать их прототип в файле, где и собираюсь использовать, но как быть с перменными? Их так просто использовать не хочет, если они описаны в файлах, добавленных к Source Group. Писать все в одном файле не хочется.
Каждый подключаемый файл описываю в виде:
// FILE.C --имя файла // тут описываю прототипы функций из других модулей void XXX();
//*****************************************************************************
#ifndef FILEС #define FILEС
#include "main.h" #include "ХХХХ.c" // для использования функций из других модулей
..... #endif
Как должно быть?
|
|
|
|
|
 |
Ответов
|
Nov 26 2007, 14:29
|
Частый гость
 
Группа: Свой
Сообщений: 153
Регистрация: 15-05-06
Из: Николаев
Пользователь №: 17 119

|
Цитата(repairDV @ Nov 26 2007, 14:30)  В этом разделе 51 уже есть ответ на этот вопрос. Пролистайте все страницы. Там всё конкретно расписано: соответствующие коды в Си и Асм. http://electronix.ru/forum/index.php?showtopic=29192спасибо меня все же интересует как использовать вставку "на лету", нежели заранее описанные функции, т.е. выполнить только отдельные операции на асме, вместо СИшного синтаксиса
|
|
|
|
|
Nov 26 2007, 16:23
|
Частый гость
 
Группа: Свой
Сообщений: 153
Регистрация: 15-05-06
Из: Николаев
Пользователь №: 17 119

|
Цитата(rezident @ Nov 26 2007, 16:54)  Своими асм-вставками вы можете сильно затруднить компилятору оптимизацию исходного кода и свести на "нет" эффект от их использования. и все же меня интересует именно эта возможность, раз она есть и как ей пользоваться так, чтоб она работала, не зависимо от результатов компилирования... да и листинг просмотреть, сравнить и проследить за эффектом--это не сложно ведь
|
|
|
|
Сообщений в этой теме
alvol Использование асмовых вставок в Keil uVision 3 Nov 25 2007, 22:10 rezident В подавляющем количестве случаев нет особой необхо... Nov 26 2007, 03:36 alvol Цитата(rezident @ Nov 26 2007, 05:36) В п... Nov 26 2007, 11:11     alvol Цитата(777777 @ Nov 27 2007, 08:52) А нел... Nov 27 2007, 12:53      777777 Цитата(alvol @ Nov 27 2007, 15:53) как ра... Nov 28 2007, 07:54       alvol Цитата(777777 @ Nov 28 2007, 09:54) В Си ... Nov 28 2007, 19:18  repairDV Цитата(alvol @ Nov 27 2007, 00:29) меня в... Nov 27 2007, 07:10
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|