Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Компилятор С Pic18

Непрочитано 26.08.2010, 21:35  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Компилятор С 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.
dosikus вне форума  
Непрочитано 27.08.2010, 14:40  
testerplus
Прописка
 
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
testerplus на пути к лучшему
По умолчанию Re: Компилятор С Pic18

Сообщение от dosikus Посмотреть сообщение
Какой компилятор создает такие конструкции?
Такое ощущение, что исходный текст был на ассемблере и написан (приведенный фрагмент, я так понял, это результат работы дизассемблера?). Сам текст был напичкан вызовами макросов с условными директивами, оттого и столько точек, где программа не получает управления. Но посмотри, сколько схожих фрагментов (особенно с movlb). Вызов -›L7-›L19, правда, не вписывается. Надо остальной код видеть (в частности: инициализацию, прерывание (вход и выход).
testerplus вне форума  
Непрочитано 27.08.2010, 18:03  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Компилятор С Pic18

testerplus,
Дизассемблер от PicIde .
В Mplab метки не раставляет (или я туплю), более того после Mplab не собирается.
Прошивка одного девайса от немцев , защиты не было .
Если тебе не в лом, выложу hex и дизассемблированный .
Чип 18f458
Сам девайс блок перефирии , связь с головным по CAN.
10 реле , 8 аналоговых входов(0-10v), 8 аналоговых выходов (0-10v).
RS232 ( Max232 стоит , но связь не реализована).
Аналоговые выходы DAC M62393 + LM324.
Сами блоки являются дополнением и в нашей конфигурации не используются . Дык что халява .
Плата 4х слойная .
Вложения:
Тип файла: rar DOL234_100083348.rar (36.7 Кб, 49 просмотров)
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 27.08.2010 в 18:13.
dosikus вне форума  
Непрочитано 27.08.2010, 18:19  
testerplus
Прописка
 
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
testerplus на пути к лучшему
По умолчанию Re: Компилятор С Pic18

Сообщение от dosikus Посмотреть сообщение
Если тебе не в лом, выложу hex и дизассемблированный .
Чип 18f458
Сам девайс блок перефирии , связь с головным по CAN.
10 реле , 8 аналоговых входов(0-10v), 8 аналоговых выходов (0-10v).
RS232 ( Max232 стоит , но связь не реализована).
Аналоговые выходы DAC M62393 + LM324.
К вечеру в IDA гляну. А что в конечном счете получить-то нужно?
testerplus вне форума  
Непрочитано 27.08.2010, 18:22  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Компилятор С Pic18

Собственно, когда копался был крайне удивлен такими конструкциями .
И теперь интересно : или это быдло код или какой то компилятор типа Basic так дуркует.
А потом естественно бум делать выводы о компетенции кодописателей.
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 28.08.2010, 01:33  
testerplus
Прописка
 
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
testerplus на пути к лучшему
По умолчанию Re: Компилятор С Pic18

Сообщение от dosikus Посмотреть сообщение
Собственно, когда копался был крайне удивлен такими конструкциями .
И теперь интересно : или это быдло код или какой то компилятор типа Basic так дуркует.
А потом естественно бум делать выводы о компетенции кодописателей.
Посмотрел: очень похож на хайтек с отключенной оптимизацией (вполне реально, т.к. они могли работать в лайт-режиме). Приемы с множественными bra-›bra-›bra в конец - в начало - в конец - в начало - это именно его заморочки (без оптимизации). Далее, сохранение контекста в прерывании - тоже хайтековское: fsr'ы, pc'ы, ... и 16 регистров btemp. Наконец, хайтековский прием - размещать константы в ROM, начиная с адреса на 1 больше размера RAM (в данном случае в адресе 0x600).

Есть, конечно, непонятки: во-первых, действительно слишком много мертвого кода, т.е. никогда не получающего управление; во-вторых, есть несколько неопознаннызх инструкций (пример по адресу 0x1f2); они все обходятся BRA, но что-то не припомню за хайтеком таких фокусов; в-третьих, не видно очистки памяти при запуске и выполнения CLRWDT (хайтек так всегда детает).
testerplus вне форума  
Сказали "Спасибо" testerplus
dosikus (06.09.2010)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ для PIC18 alberio Микроконтроллеры, АЦП, память и т.д 5 07.07.2010 17:48
Автономный программатор для PIC18 avartemiy Микроконтроллеры, АЦП, память и т.д 3 23.04.2010 12:34
Си-шный компилятор в AVR Studio меняет последовательность команд svv11 Микроконтроллеры, АЦП, память и т.д 29 21.03.2010 05:47
Помогите с bootloader от HI-TECH PIC18 maxNTF Микроконтроллеры, АЦП, память и т.д 0 12.03.2010 17:35
[Решено] Компилятор PICC и Proteus Кот Баюн Proteus, KiCAD и другие ECAD 7 30.11.2009 01:47


Часовой пояс GMT +4, время: 21:36.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.