Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проясните конструкцию
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
SasaVitebsk
Несколько раз пользовался документами фирмы TI. Обычно они радуют своей лаконичностью и "ненавороченностью". Обычно вопросов не возникало. Сам я с MSP430 не работал и пока не планирую. Сейчас при изучении с документом slaa037 возникли проблемы. Сама теория описана весьма скудно. Пытаюсь разобраться "по программе". И тут возникли проблемы. С одним участком возникли проблемы.
Приведу выдержки:
Код
**************************************************
* Running this filter takes 113 cycles
**************************************************
;*****************************************************
; New simpler filter at following specification
; Freq_Stop: 2.5KHz, Attenuation_Stop: 40dB
; Freq_Pass: 1.4KHz, Attenuation_Pass: 1dB
; Order of filter = 5
;*****************************************************
filters:
bis #INTERRUPT_TOGGLE,global_status
mov #WDF_PARMS,mem_ptr
.word 4f16h
.word 0000h
.word 498fh
.word 0000h
.word 4f17h
.word 0008h
.word 8607h
.word 4708h
.word 1108h
.word 4806h
.word 1108h
.word 1108h
.word 1108h
.word 1108h
.word 1108h
.word 8806h
.word 8f16h
.word 0008h
.word 4f9fh
.word 0006h
.word 0008h
.word 468fh
.word 0006h
.word 8706h
.word 4f17h
.word 0004h
.word 8907h
.word 4708h
.word 1108h
.word 1108h
.word 1108h
.word 4809h
.word 1108h
.word 1108h
.word 1108h
.word 8809h
.word 5f19h
.word 0004h
.word 8907h
.word 4f9fh
.word 0002h
.word 0004h
.word 478fh
.word 0002h
.word 8906h
mov R6,bit_data
;**************************************************************
; Low pass filter output stored in R6
; R6 get turned into a analogue value after some hard limiting
;**************************************************************
add #80h,R6
tst R6
jge non_negative
mov #0,R6
non_negative
cmp #0ffh,R6
jlo non_ceiling
mov #0ffh,R6
non_ceiling
mov.b R6,&P0OUT
exit_D_A
reti

Предполагаю что это таблица идущая по тексту программы. Но не вижу к ней обращения. Короче одни вопросы.

Поясните пожалуйста, что автор здесь делает?
SSerge
это тоже код, деассемблировал вручную начало:
Код
.word 4f16h        mov    0(R15),R6
.word 0000h
.word 498fh        mov    R9,0(R15)
.word 0000h
.word 4f17h        mov    8(R15),R7
.word 0008h
.word 8607h        sub    R6,R7
.word 4708h        mov    R7,R8
.word 1108h        rra    R8
SasaVitebsk
Цитата(SSerge @ Jul 21 2009, 03:18) *
это тоже код, деассемблировал вручную начало:

То есть это такой способ скрыть реализацию. Зачем же тогда апнот писать?

Может кто поможет с дизасемблированием? Не хочется из-за этого спец пакет ставить, а в ручную замучиешься.

Заранее благодарю.
MrYuran
Цитата(SasaVitebsk @ Jul 21 2009, 10:03) *
Может кто поможет с дизасемблированием? Не хочется из-за этого спец пакет ставить, а в ручную замучиешься.

online asm/disasm
Вот первые 2 слова:
Цитата
Disassembling the following words:
0x4f16 0x0000
Results in the following assembler instruction:
mov 0(R15), R6 (3 cycles, 2 words)

Правда, таскать туда-сюда тоже неудобно..
Зато просто и не надо ничего ставить
SasaVitebsk
Спасибо. Годится. smile.gif
Сергей Борщ
Не, фигня какая-то. Ну не будут в апноте прятать код таким нелепым образом. "Зачем тогда аппнот писать" (с)SasaVitebsk. Подозреваю, что чтение находится где-то еще. Счас гляну.

Цитата(Сергей Борщ @ Jul 21 2009, 10:28) *
Ну не будут в апноте прятать код таким нелепым образом.
Таки спрятали. Редиски.
Код
00003136 <filters>:
    .global filters
filters:

    mov #0x200,r15
    3136:    3f 40 00 02     mov    #512,    r15;#0x0200
    313a:    16 4f 00 00     mov    0(r15),    r6;0x0000(r15)
    313e:    8f 49 00 00     mov    r9,    0(r15);0x0000(r15)
    3142:    17 4f 08 00     mov    8(r15),    r7;0x0008(r15)
    3146:    07 86           sub    r6,    r7    
    3148:    08 47           mov    r7,    r8    
    314a:    08 11           rra    r8        
    314c:    06 48           mov    r8,    r6    
    314e:    08 11           rra    r8        
    3150:    08 11           rra    r8        
    3152:    08 11           rra    r8        
    3154:    08 11           rra    r8        
    3156:    08 11           rra    r8        
    3158:    06 88           sub    r8,    r6    
    315a:    16 8f 08 00     sub    8(r15),    r6;0x0008(r15)
    315e:    9f 4f 06 00     mov    6(r15),    8(r15);0x0006(r15), 0x0008(r15)
    3162:    08 00
    3164:    8f 46 06 00     mov    r6,    6(r15);0x0006(r15)
    3168:    06 87           sub    r7,    r6    
    316a:    17 4f 04 00     mov    4(r15),    r7;0x0004(r15)
    316e:    07 89           sub    r9,    r7    
    3170:    08 47           mov    r7,    r8    
    3172:    08 11           rra    r8        
    3174:    08 11           rra    r8        
    3176:    08 11           rra    r8        
    3178:    09 48           mov    r8,    r9    
    317a:    08 11           rra    r8        
    317c:    08 11           rra    r8        
    317e:    08 11           rra    r8        
    3180:    09 88           sub    r8,    r9    
    3182:    19 5f 04 00     add    4(r15),    r9;0x0004(r15)
    3186:    07 89           sub    r9,    r7    
    3188:    9f 4f 02 00     mov    2(r15),    4(r15);0x0002(r15), 0x0004(r15)
    318c:    04 00
    318e:    8f 47 02 00     mov    r7,    2(r15);0x0002(r15)
    3192:    06 89           sub    r9,    r6
AHTOXA
Цитата(Сергей Борщ @ Jul 21 2009, 13:53) *
Таки спрятали. Редиски.


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