Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
26.08.2010, 21:35
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
|
Компилятор С Pic18
Какой компилятор создает такие конструкции?
Я имею ввиду прыжки с точки входа п/п(функции) на конец и обратно ?
Все п/п (функции) оформлены так же .
Правда часть не имет точек входа и как следствие нет перехода ни на одну метку п/п.
Между некоторыми п/п разделители .
И Сишный ли компилятор?
PHP код:
|
L191:
NOP
BRA L7
L19:
BCF TRISC,4,A
BSF TRISC,3,A
BRA L8
MOVLW 0x01
MOVLB 0x00
MOVWF 0x81,BANKED
BRA L9
L8:
MOVLW 0x01
MOVLB 0x00
MOVWF 0x81,BANKED
L9:
BRA L10
L11:
NOP
NOP
BRA L10
L10:
MOVLB 0x00
DECFSZ 0x81,F,BANKED
BRA L11
BSF TRISC,3,A
MOVLW 0x04
MOVLB 0x00
MOVWF 0x81,BANKED
BRA L12
MOVLW 0x01
MOVLB 0x00
MOVWF 0x81,BANKED
L12:
BRA L13
L14:
NOP
NOP
BRA L13
L13:
MOVLB 0x00
DECFSZ 0x81,F,BANKED
BRA L14
BSF TRISC,4,A
MOVLW 0x05
MOVLB 0x00
MOVWF 0x81,BANKED
BRA L15
MOVLW 0x01
MOVLB 0x00
MOVWF 0x81,BANKED
L15:
BRA L16
L17:
NOP
NOP
BRA L16
L16:
MOVLB 0x00
DECFSZ 0x81,F,BANKED
BRA L17
BSF TRISC,4,A
BRA L18
L18:
RETURN
NOP
L7:
BRA L19
|
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 26.08.2010 в 21:42.
|
|
|
|
27.08.2010, 14:40
|
|
Прописка
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
|
Re: Компилятор С Pic18
Сообщение от dosikus
|
Какой компилятор создает такие конструкции?
|
Такое ощущение, что исходный текст был на ассемблере и написан (приведенный фрагмент, я так понял, это результат работы дизассемблера?). Сам текст был напичкан вызовами макросов с условными директивами, оттого и столько точек, где программа не получает управления. Но посмотри, сколько схожих фрагментов (особенно с movlb). Вызов -›L7-›L19, правда, не вписывается. Надо остальной код видеть (в частности: инициализацию, прерывание (вход и выход).
|
|
|
|
27.08.2010, 18:03
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
|
Re: Компилятор С Pic18
testerplus,
Дизассемблер от PicIde .
В Mplab метки не раставляет (или я туплю), более того после Mplab не собирается.
Прошивка одного девайса от немцев , защиты не было .
Если тебе не в лом, выложу hex и дизассемблированный .
Чип 18f458
Сам девайс блок перефирии , связь с головным по CAN.
10 реле , 8 аналоговых входов(0-10v), 8 аналоговых выходов (0-10v).
RS232 ( Max232 стоит , но связь не реализована).
Аналоговые выходы DAC M62393 + LM324.
Сами блоки являются дополнением и в нашей конфигурации не используются . Дык что халява .
Плата 4х слойная .
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 27.08.2010 в 18:13.
|
|
|
|
27.08.2010, 18:19
|
|
Прописка
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
|
Re: Компилятор С Pic18
Сообщение от dosikus
|
Если тебе не в лом, выложу hex и дизассемблированный .
Чип 18f458
Сам девайс блок перефирии , связь с головным по CAN.
10 реле , 8 аналоговых входов(0-10v), 8 аналоговых выходов (0-10v).
RS232 ( Max232 стоит , но связь не реализована).
Аналоговые выходы DAC M62393 + LM324.
|
К вечеру в IDA гляну. А что в конечном счете получить-то нужно?
|
|
|
|
27.08.2010, 18:22
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
|
Re: Компилятор С Pic18
Собственно, когда копался был крайне удивлен такими конструкциями .
И теперь интересно : или это быдло код или какой то компилятор типа Basic так дуркует.
А потом естественно бум делать выводы о компетенции кодописателей.
__________________
Осторожно , злой кот
|
|
|
|
28.08.2010, 01:33
|
|
Прописка
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
|
Re: Компилятор С Pic18
Сообщение от dosikus
|
Собственно, когда копался был крайне удивлен такими конструкциями .
И теперь интересно : или это быдло код или какой то компилятор типа Basic так дуркует.
А потом естественно бум делать выводы о компетенции кодописателей.
|
Посмотрел: очень похож на хайтек с отключенной оптимизацией (вполне реально, т.к. они могли работать в лайт-режиме). Приемы с множественными bra-›bra-›bra в конец - в начало - в конец - в начало - это именно его заморочки (без оптимизации). Далее, сохранение контекста в прерывании - тоже хайтековское: fsr'ы, pc'ы, ... и 16 регистров btemp. Наконец, хайтековский прием - размещать константы в ROM, начиная с адреса на 1 больше размера RAM (в данном случае в адресе 0x600).
Есть, конечно, непонятки: во-первых, действительно слишком много мертвого кода, т.е. никогда не получающего управление; во-вторых, есть несколько неопознаннызх инструкций (пример по адресу 0x1f2); они все обходятся BRA, но что-то не припомню за хайтеком таких фокусов; в-третьих, не видно очистки памяти при запуске и выполнения CLRWDT (хайтек так всегда детает).
|
|
|
Сказали "Спасибо" testerplus
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:33.
|
|