Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: iar c и регистры
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
vic481
Добрый день всем! Профи, подскажите, пожалуйста, можно ли из IAR С работать с регистрами напрямую? Конкретней- при действиях с переменной компилер все рано ее сует в R9-R15 и все действия производятся в регистром, а потом новое значение переменной вытаскивается обратно. Можно ли сразу писать в конкретный регистр и оперировать с ним без ассемблерых вставок? Вопрос может показаться странным, но мне дествительно хотелось бы этого. Спасибо.
diper
Не понятоно что вы хотите. Пример в студию.
vic481
ну, например

static unsigned int b;
b=0x001E;b&=0x7f;b|=0x40;

получается
mov.w R14,&0x202
and.w #0x7F,R14
bis.w #0x40,R14
mov.w R14,&0x202

хотя последняя строка не совсем понятна... Я бы хотел напрямую из си писать в R14 и делать действия непосредственно с ним, что-то вроде R14=0x1e,R14&=0x7f,R14=0x40; т.е сделать свои переменные R9-R15 жестко привязанные в одноименным регистрам процессора, подобно @ и pragma location
diper
Код
__no_init int __regvar x @ __R4;

Темнеменее вы не ответили на вопрос: зачем это нужно? Хотите посорвноваться с компилятором в оптимизации?
vic481
Нет, где уж мне... smile.gif . просто есть дизасссемблированная прошивка, я пытаюсь восстановить по ней исходник на си, в принципе, все получается, но чтобы не было головной боли с отслеживанием переменных, было бы здорово, если сабж получился, тем более, что странная закономерность- в дизассемблированной прошиве используются только r10-r15, нигде нет меньших регистров. по ряду признаков, уверен исходник был на иар си, осталось только разобраться с регистрами.
А так как Вы написали, можно только с R4 и R5! ? я пробовал с остальными- компилер ругается!
diper
Часть ответов можно получить прочитав MSP430 IAR C/C++ Compiler
Reference Guide. У иара было несколько версий, они могут что то делать по разному, у каждого свой Guide. Если цель получить исходник соответствующий функционалу прошивки, то имхо выбранный способ неверный. Я бы разбирался в ассме что делает программы и писал прогу с нуля по аналогии. Если цель получить исходник который после компиляции будет совпадать с прошивкой, то геройству храбрых поем мы песню smile.gif
VAI
Цитата
Если цель получить исходник который после компиляции будет совпадать с прошивкой

то, наверное, дешевле будет у автора купить исходник. :-D
vic481
to diper: на асме у меня есть свой вариант, который по функционалу аналогичен. Что ж, попробую поэксперименитировать smile.gif

to VAI: я это делаю пока для самоудовлетворения и по времени не ограничен!
diper
vic481, вы решили изучить С после асма? Тогда просто забудьте об асме и напишите программу на С. В ней будет много глупостей, т.к. будете мыслить в стиле асма, но потом это пройдет.

smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.