Keil

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View
Пpивет!

Как в Кейле делать ассемблеpные вставки?

Пока.

Re: Keil
Hемедленно нажми на RESET, Dmitriy Shustov!


 DS> Как в Кейле делать ассемблеpные вставки?

  #pragma asm
  #pragma endasm


Re: Keil
DS>> Как в Кейле делать ассемблеpные вставки?

KF>   #pragma asm
KF>   #pragma endasm

У меня mVision2 V2.39 выдает

EX1C.C(67): error C272: 'asm/endasm' requires src-control to be active

в хелпе про src-control толком не нашел ничего - только то, что этот
модуль не подключен :-(


--
Rifkat < Team /Grave\ >
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

Re: Keil

Quoted text here. Click to load it

--------- file.c --------
#pragma SRC    ...
// C-code
...
#pragma asm
;asm-code
...
#pragma endasm
// C-code
...


В первой строке можно явно указать имя выходного ассемблерного файла
#pragma SRC(file.a51)
Иногда это удобно, так как по умолчанию Keil C выдает файл с расширением
*.src

На 79 стр. C51.PDF написано как эту опцию включить для конкретного файла из
командной строки
либо в проекте uVision:

-----------------------------
C51.PDF----------------------------------------------------
Keil Software - Cx51 Compiler User's Guide 79
SRC
Abbreviation: None.
Arguments: An optional filename in parentheses.
Default: None.
чVision2 Control: Can be set under чVision2 as follows:
Right click on the file in the Project Window - Files tab
Choose Options for: to open Options - Properties
page
Enable Generate Assembler SRC file
Description: Use the SRC directive to create an assembler source file
instead of an object file. This source file may be assembled
with the A51 assembler.
If a filename is not specified in parentheses, the base name
and path of the C source file are used with the .SRC
extension.
NOTE
The compiler cannot simultaneously produce a source file
and an object file.
See Also: ASM, ENDASM
Example: C51 SAMPLE.C SRC
C51 SAMPLE.C SRC(SML.A51)
----------------------------------------------------------------------------
----------------------
А на 166 странице целая глава о технологии использования директив
SRC/ASM/ENDASM.



Re: Keil
Quoted text here. Click to load it

БОльшое спасибо!

--
Rifkat < Team /Grave\ >
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

Re: Keil
Hello Rifkat.

14 дек 04 09:28, Rifkat Abdulin wrote to Kirill Frolov:

 DS>>> Как в Кейле делать ассемблеpные вставки?
 KF>>   #pragma asm
 KF>>   #pragma endasm
 RA> У меня mVision2 V2.39 выдает
 RA> EX1C.C(67): error C272: 'asm/endasm' requires src-control to be active
 RA> в хелпе про src-control толком не нашел ничего - только то, что этот
 RA> модуль не подключен :-(
Директива asm подразумевает, что в начале файла стоит директива
#pragma src
(или в командной строке). При этом файл компилируется в ассемблер,
компилировать в объектник с #pragma asm Keil не умеет. Возможно, что не на
всяких eval версиях директива src работает. Я имел в виду c51. В некоторых
случаях можно обойтись "функциями" из intrins.h - _nop_() и др. Еще по
наблюдениям (с51 v. 7.06) при компиляции .src файла, полученного из .c в
котором находится main() выдает какие-то предупреждения и линкер не строит
дерево вызовов оверлейных сегментов данных. Уж не знаю чьи ручки виноваты, мои
или Кейла. А вообще, если нужен асм, то я пишу на асме всю функцию, так проблем
меньше. Все равно применительно к Keil C ни о какой переносимости речи не может
идти.

Sergey


Site Timeline