Вход/Регистрация
Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
вернуться

Пак Дэниэл Дж.

Шрифт:

R 00 00 00 00

T 00 1В 80 7В 00 8F F6 00 00 87 С3 00 01 7В 00 00

R 00 00 00 00 00 07 00 02 00 0E 00 02

T 00 29 F6 00 00 C1 7А 26 ОС F6 00 00 87 41 51 7B

R 00 00 00 00 00 03 00 02

Т 00 37 00 00 79 00 00 0B

R 00 00 00 00 00 05 00 02

Заметим, что в верхней половине представленного объектного кода, содержатся директивы для программы линковщика, а в нижней половине читатель может увидеть шестнадцатеричные коды инструкций ассемблера МК семейства 68HC12.

На заключительной стадии представленный выше объектный код обрабатывается программой линковщика. В результате формируются три файла: interrupt.lst, interrupt.map и interrupt.s19.

Файл листинга программы interrupt.lst представляет собой текстовый файл, который содержит команды ассемблера, машинные коды этих команд и абсолютные адреса в памяти микроконтроллера, в которых эти коды располагаются. Сгенерированный линковщиком файл листинга представлен ниже:

.module interrupt.c

.area memory(abs)

.org 0хb1е

0B1Е _ _Timer_Overflow_interrupt_vector: :

0B1Е 8044 .word _TOIISR

.area data

0800 _second::

0800 .blkb 1

.area idata

– -- 0000 00 .byte 0

.area data

.area text

802А _main: :

;#include <383HC12-ver1.h>

;void TOIISR(void) ;

;#pragma interrupt_handler TOIISR

;

;#pragma abs_address:0x0B1E

;void(*Timer_Overflow_interrupt_vector[]) ={TOIISR};

;#pragma end_abs_address

;

;unsigned char second=0x00;

;

;void main(void)

;{

;TSCR=0x80;

802А C680 ldab #128

802С 7В0086 stab 0х86

;TMSK2=0x80;

802F C680 ldab #128

8031 7B008D stab 0x8d

;TFLG2=0x80;

8034 C680 ldab #128

8036 7B008F stab 0x8f

;DDRA=0xFF;

8039 C6FF ldab #255

803В 7В0002 stab 0x2

;CLI;

803Е 10EF cli

8040 L3:

8040 L4:

8040 20FE bra L3

8042 X0:

;while (1) {};

;EXIT;

8042 3F swi

; }

8043 L2:

8043 .dbline 0; func end

8043 3D rts

8044 _TOIISR: :

;

; void TOIISR(void) {

;TFLG2=0x80;

8044 C680 ldab #128

8046 7B008F stab 0x8f

;second += 1;

8049 f60800 ldab _second

804C 87 clra

804D C30001 addd #1

8050 7B0800 stab _second

;if(second == 122)

8053 F60800 ldab _second

8056 C17A cmрb #122

8058 260C bnе L7

;{

;PORTA = ~PORTA;

; vol

805A F60000 ldab 0

805D 87 clra

805E 41 comа

805F 51 comb

8060 7B0000 stab 0

;second = 0x00;

8063 790800 clr _second

;}

8066 L7:

;}

8066 L6:

8066 .dbline 0; func end

8066 0B rti

  • Читать дальше
  • 1
  • ...
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: