ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
24 ноября
16658
Сергей Борщ (14.11.2004 17:41, просмотров: 633)
Я тут спрашивал про CV AVR, никто точного решения не дал, но я его нашел. Может кому пригодится http://www.caxapa.ru/mcu/wwwboard.html?id=16441
1: Как разместить некую асмовую функцию по определенному адресу в памяти кода? А вот как:
#asm
	.CSEG
Magic:				;****Store current address location
	.org	необходимый адрес
MyFunc:
	ROR	R16
	RET

	.org	Magic		;****Restore address location
#endasm
2: Как в таблицу векторов прерываний занести RJMP на мой асмовый обработчик (который вообще зашивается отдельно и известен только его адрес) Вот так (при этом за счет #pragma_asmfunction для обработчика не будет сгенерировано ни одной команды кроме RJMP в таблице векторов):
#asm("Magic2:")
#pragma asm_function+

#asm("	.ORG	необходимый адрес")
interrupt [TIM1_OVF] void TIMER1_OVF(void) {
}

#asm("	.ORG	Magic2")
#pragma asm_function-