Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

Re: MPLAB X IDE

Пн май 02, 2022 17:50:00

Ради интереса установил MPASM X IDE v5.35 и при компиляции получил сообщение, что:
MPASM is not supported on 64 bit Operating Systems. Please consider migrating your project "QWERTY" configuration "default" to XC8 Assembler or continue to use a previously released IDE.
Видно в этом вся "закавыка" и была. Ну да ладно, для меня пока и MPLAB X IDE v2.35 с избытком хватит. За совет спасибо, обязательно изучим рекомендованный ресурс.

Re: MPLAB X IDE

Пн май 02, 2022 19:12:42

Ради интереса установил MPASM X IDE v5.35 и при компиляции получил сообщение, что:
MPASM is not supported on 64 bit Operating Systems.

Вам это сообщение как то помешало работать? У вас не собрался работающий проект? Или вам не о чем поговорить?
Милейший, у меня примерно полсотни 8-битных коммерческих проектов сейчас собраны именно на 5.35 и только 16-разрядные на 5.45 и то лишь потому, что некоторые из них сделаны на новейших чипах поддерживаемых в полной мере, начиная с 5.45 и старше. Всё на АСМе.
Один из них, который есть на домашнем компе:
Изображение

Re: MPLAB X IDE

Пт май 13, 2022 15:39:36

Написал альтернативный кряк(оптимизация Pro) для компиляторов XC8(PIC/AVR)/XC16/XC32.
Ничего патчить не нужно, работает даже в Linux\Win11
Ссыль.

Re: MPLAB X IDE

Чт июл 28, 2022 21:42:47

пару слов, как и что делает кряк?
в частности вот это
Код:
...
sudo update-binfmts --install xclm-hack /opt/microchip/xc8/v2.36/bin/xclm-hack --magic `(hexdump -e '16/1 "%02x"' -n 64 /opt/microchip/xc8/v2.36/bin/xclm | sed -e 's/../\\\x&/g')`
sudo service binfmt-support start

Re: MPLAB X IDE

Чт июл 28, 2022 22:36:17

sunjob, binfmts работает как демон(служба в фоне), оно отслеживает любой указанный формат при исполнении его, если в заголовке ELF(исполняемого линукс) файла найдет HEX код, который указан в формате ("x7f\x45\....") -- оно будет запускать/заменять любой сервис, подменяя этот файл на тот, который указали(или например исполнять этот файл через какой-нибудь отладчик, к примеру).

У меня binfmts работал для запуска 32битных исполняемых файлов в 64бит системе(можете найти в интернете инструкцию) - практически также работает как этот кряк.

Re: MPLAB X IDE

Пт июл 29, 2022 01:15:34

спасибо!

Re: MPLAB X IDE

Пн авг 01, 2022 19:17:57

Здраствуйте уважаемые коты, при изучении MPLAB X IDE вроде начало получатся, уже накидал несколько функций кода, вроде всё работало пока не начал объединять всё воедино. А именно написал функцию Delay_ms(), всё ок, запустил прерывания от таймера тоже всё ОК. Когда сложил всё вместе и тут всё поплыло, если работает Delay_ms() то программа вылетает в рестарт или работает не корректно, при использовании цикла for(i=0;i<800000;i++) (long i) тоже начинает работать некорректно(почему то цикл ускоряется раз в 10 :? ). Стоит выключить прерывание от таймера и всё начинает работать как надо 0_о :facepalm:
Ссылка на проект: https://drive.google.com/file/d/12bHBic ... sp=sharing
Если надо могу выложить в виде текста на странице, там просто несколько файлов, объединённых в один проект.

Добавлено after 31 minute 44 seconds:
Цикл пауза реализован был так:
Код:
void main()
  Init();
  while(1)
  {
     for(i=0;i<800000;i++){}
     LED1INV();

  }

Re: MPLAB X IDE

Пн авг 01, 2022 22:07:03

alex_, что-то вы намудрили с таймером.
Там проще некуда, желательно делать как все делают, прерывание в скажем 1мс записывать в long переменную millis.
Например как устроен таймер у меня в main(я не разделял всё, т.к. там несколько строчек)
Код:
....
....
#define _XTAL_FREQ 8000000          // Required for Timer1(millis,delay) and Timer2(PWM) (specify clock 8MHz)
#include <xc.h>

volatile unsigned long millis = 0;

void __interrupt() isr(void) {
    if (TMR1IF) {
        TMR1IF = 0;             //Clear interrupt Timer1 flag
        unsigned short tpr = _XTAL_FREQ/1000;
        tpr = 0xFFFF - tpr;
        TMR1H = tpr >> 8;       //Set Initial Value of Timer1
        TMR1L = tpr & 0xFF;     //*
        millis++;
    }
}

unsigned long _millis(void) {
    return millis;
}

void _delay_ms(unsigned long value) {
    unsigned long curMillis = millis;
    while((millis - curMillis) < value);
    millis = curMillis;
}

void setup_timer1(void) {
    OSCCON = 0b01110010;    //8MHZ internal clock.

    // Set up TIMER1 to tick at 1ms intervals.
    // The oscillator of Timer1 ticks at FOSC(without prescaler).
    // That is 8MHz or 1/8000000 seconds per tick.
    // or 0.000000125s, or 0.000125ms, so 1 ms is 8000 ticks.
    TMR1CS1 = 0;           //System Clock (FOSC) for Timer1
    TMR1CS0 = 1;           //*
    unsigned short tpr = _XTAL_FREQ/1000;
    tpr = 0xFFFF - tpr;
    TMR1H = tpr >> 8;      //Set Initial Value of Timer1
    TMR1L = tpr & 0xFF;    //*
    TMR1IF = 0;            //Clear interrupt Timer1 flag
    TMR1IE = 1;            //Enable Timer1 Overflow Interrupt
    TMR1ON = 1;            //Turn on TMR1

    // Enable the interrupt system
    PEIE = 1;          // Enable Peripheral Interrupt
    GIE = 1;           // Enable Global Interrupt
}

void main(void)
{
    setup_timer1();

    while(1) {

    }
....
....


Помимо полноценной функции _delay_ms тут есть еще _millis которой можно сравнивать время(например она нужна для работы с кнопками(дребезг и задержка нажатия))
У меня частота прямая 8Mhz, Если у Вас прескаляр, то нужно делить еще это значение.

Учился по этой ссылке
http://zattouka.net/GarageHouse/micon/M ... RtoLED.htm
(Google переводчик Вам в помощь)
Последний раз редактировалось Deoptim Пн авг 01, 2022 22:18:14, всего редактировалось 1 раз.

Re: MPLAB X IDE

Пн авг 01, 2022 22:17:22

alex_, что-то вы намудрили с таймером

Не исключено, но судя по примеру вроде делал все тоже самое, и самое интересное что ведь работает, пока ещё чего нибудь не добавишь :dont_know:
С другой стороны, чего это надо добавить в таймер чтобы while заглючило :shock:
В примере просто 2 таймера первый пока выкл, пока со вторым не разобрался, + прерывание по входу но пока тоже выкл, хотя оно когда было вкл вроде не мешало

Re: MPLAB X IDE

Вт авг 02, 2022 14:04:36

Прерывание завелось, после того как поменял одно слово в обработчике прерывания

было void __ISR (_TIMER_2_VECTOR, IPL4SRS ) T2Interrupt(void)
стало void __ISR (_TIMER_2_VECTOR, IPL4AUTO) T2Interrupt(void)

Пока ещё не разобрался по чему, но в режиме SRS контроллер входит в прерывание, далее пару микросекунд и вылетаем на перезагрузку :?
Deoptim, тут дело уже в векторном прерывании, на 8 битный контроллерах всё было тоже ок, а тут не туда вектор запулишь и усё.
Сокращение вышеописанного цикла в while(1) тоже было связано с бесконечным рестартом, не успевал досчитать до конца.

Re: MPLAB X IDE

Чт авг 25, 2022 19:40:41

Что то совсем сюда никто не заходит :(
Копая IDE наткнулся на очередные грабли: была написана функция Delay(ms, us, cyc). Посчитав и прогнав через симулятор выставил коэффициенты чтобы +- попадало, рассчитано было исходя из тактовой частоты 80МГц -> nop 12.5 ns. Но при заливке я сильно удивился когда увидел что nop затрачивает 100ns в 8 раз больше :shock:
И самое интересное что таймеры были посчитаны исходя из 80МГц и там всё совпало, как будто где то какой то предделитель пропустил :facepalm:
Пример кода:
Спойлер
Код:
// DEVCFG3
#pragma config USERID = 0xFFFF          // Enter Hexadecimal value (Enter Hexadecimal value)

// DEVCFG2
#pragma config FPLLIDIV = DIV_2         // PLL Input Divider (2x Divider)
#pragma config FPLLMUL = MUL_20         // PLL Multiplier (20x Multiplier)
#pragma config UPLLIDIV = DIV_2         // USB PLL Input Divider (2x Divider)
#pragma config UPLLEN = ON              // USB PLL Enable (Enabled)
#pragma config FPLLODIV = DIV_1         // System PLL Output Clock Divider (PLL Divide by 1)

// DEVCFG1
#pragma config FNOSC = PRIPLL           // Oscillator Selection Bits (Primary Osc w/PLL (XT+,HS+,EC+PLL))
#pragma config FSOSCEN = ON             // Secondary Oscillator Enable (Enabled)
#pragma config IESO = OFF               // Internal/External Switch Over (Disabled)
#pragma config POSCMOD = XT             // Primary Oscillator Configuration (XT osc mode)
#pragma config OSCIOFNC = OFF           // CLKO Output Signal Active on the OSCO Pin (Disabled)
#pragma config FPBDIV = DIV_1           // Peripheral Clock Divisor (Pb_Clk is Sys_Clk/1)
#pragma config FCKSM = CSDCMD           // Clock Switching and Monitor Selection (Clock Switch Disable, FSCM Disabled)
#pragma config WDTPS = PS8192           // Watchdog Timer Postscaler (1:8192)
#pragma config FWDTEN = OFF             // Watchdog Timer Enable (WDT Disabled (SWDTEN Bit Controls))

// DEVCFG0
#pragma config DEBUG = OFF              // Background Debugger Enable (Debugger is disabled)
#pragma config ICESEL = ICS_PGx2        // ICE/ICD Comm Channel Select (ICE EMUC2/EMUD2 pins shared with PGC2/PGD2)
#pragma config PWP = OFF                // Program Flash Write Protect (Disable)
#pragma config BWP = OFF                // Boot Flash Write Protect bit (Protection Disabled)
#pragma config CP = OFF                 // Code Protect (Protection Disabled)



#define _XTAL_FREQ 80000000

#include <xc.h>



// Макросы и определения
#define Clear_WDT() (WDTCONbits.WDTCLR=1)   // сброс сторожевого таймера

#define Led1 LATAbits.LATA10

#define LED3SET()   LATESET = _LATE_LATE2_MASK;
#define LED3CLR()   LATECLR = _LATE_LATE2_MASK;
#define LED3INV()   LATEINV = _LATE_LATE2_MASK;

//----------
void main(void)
{
    DDPCONbits.JTAGEN = 0;  // Отключили JTAG port освободить порты RB10/11/12/RB13
    Clear_WDT();            // сброс сторожевого таймера
    // настройка портов микроконтроллера
    //RA 0-15
    TRISA = 0b0000000000000000;             // регистр направления данных
    PORTA = 0b0000000000000000;               // регистр приема данных
    LATA  = 0b0000000000000000;               // регистр передаваемых данных
    ODCA  = 0b0000000000000000;               // регистр настройки "открытого коллектора"
   
    //RB 0-15
    TRISB = 0b0000000000000000;             // регистр направления данных
    PORTB = 0b0000000000000000;               // регистр приема данных
    LATB  = 0b0000000000000000;               // регистр передаваемых данных
    ODCB  = 0b0000000000000000;               // регистр настройки "открытого коллектора"

    //RC 12-15
    TRISC = 0b0000000000000000;             // регистр направления данных
    PORTC = 0b0000000000000000;               // регистр приема данных
    LATC  = 0b0000000000000000;               // регистр передаваемых данных
    ODCC  = 0b0000000000000000;               // регистр настройки "открытого коллектора"

    //RD 0-11
    TRISD = 0b0000000000000000;             // регистр направления данных
    PORTD = 0b0000000000000000;               // регистр приема данных
    LATD  = 0b0000000000000000;               // регистр передаваемых данных
    ODCD  = 0b0000000000000000;               // регистр настройки "открытого коллектора"

    //RE 0-7
    TRISE = 0b0000000000000000;             // регистр направления данных
    PORTE = 0b0000000000000000;               // регистр приема данных
    LATE  = 0b0000000000000000;               // регистр передаваемых данных
    ODCE  = 0b0000000000000000;               // регистр настройки "открытого коллектора"

    //RF 0-1, 3-5
    TRISF = 0b0000000000000000;             // регистр направления данных
    PORTF = 0b0000000000000000;               // регистр приема данных
    LATF  = 0b0000000000000000;               // регистр передаваемых данных
    ODCF  = 0b0000000000000000;               // регистр настройки "открытого коллектора"

    //RG 2-3, 6-9
    TRISG = 0b0000000000000000;             // регистр направления данных
    PORTG = 0b0000000000000000;               // регистр приема данных
    LATG  = 0b0000000000000000;               // регистр передаваемых данных
    ODCG  = 0b0000000000000000;               // регистр настройки "открытого коллектора"

   
//----------
    do
    {
               
        LED3SET();
        // 10 us
        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
       
        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
       
       
       
        LED3CLR();
        // 10 us
        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
       
        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
       
    }while(1);
   
}

Значение регистра OSCCON=0х 01 45 33 22, на выходе получаем частоту 50КГц 10мкс на фронт и 10мкс на спад, по 100ns на NOP :facepalm:
COSC = 011 => Primary Oscillator with PLL module (XTPLL, HSPLL or ECPLL) 8МГц
FPLLIDIV = 001 = Divide by 2 8/2=4МГц
PLL Multiplier = 20x Multiplier 4*20=80Мгц
PLL Output Divider = PLL Divide by 1 =80МГц
Ну и вроде это всё, что связано с настройкой системной частоты, или я что то пропустил :?

Re: MPLAB X IDE

Чт авг 25, 2022 21:08:31

Что то совсем сюда никто не заходит.....или я что то пропустил :?
Пропустили конечно.
Можно только догадываться, что речь идет о PIC32. :wink: Кстати, там есть немного разные ядра MIPS32. Поэтому следовало бы указать о каком чипе речь.
Не вникал в даташит, но в регистре управляющем редукцией ядра часто дефолт совсем не единичный делитель...
Плюс к этому, чтобы понять почему у вас задержка не реализуется согласно расчету, следует посмотреть листинг дизасма. Особенно в части реализации ЦИКЛА.
Ну и не надо столько нопов городить. Достаточно нескольких (2...3) с разным количеством по нулю и единице в порту.

Re: MPLAB X IDE

Чт авг 25, 2022 21:31:28

PIC32MX460f512L, нопов наставил чтобы проблему было видно наверняка(если прошить контроллер), в жизни столько нопов само собой не поставлю :)
Дизасм пришлю завтра. но самое интересное в компиляторе микроси(недоардуина) нопы выполняются положенные им 12,5 нс, начал копать дизасм(микроси) но пока не силён в асме и не выявил корень проблемы.

Re: MPLAB X IDE

Чт авг 25, 2022 21:38:04

пока не силён в асме

Там все просто. Есть инструкции не выполняющие ветвления - эти почти все одноцикловые. А вот с ветвлениями все сложно из-за перезагрузки конвейера. Там может быть много циклов... Поэтому я и говорю про дизасм ЦИКЛА. Или нужно сравнивать ветви с разным количеством нопов. Вывод в порт тоже не быстрый.

Re: MPLAB X IDE

Чт авг 25, 2022 22:16:43

КРАМ писал(а):Там все просто.

Как бы да, но пока не особо разбираюсь. Предварительно (не утверждаю в последней инстанции) но в цикле ветвления не увидел(дизасм), хотя могу и ошибаться. Нопов специально накидал много чтобы периферия оказывала как можно меньше влияния на расчёты в том числе и переход while(1). Весь материал на работе сейчас не могу его предоставить (

Re: MPLAB X IDE

Пт авг 26, 2022 14:07:58

MPLAB
Спойлер
Код:
!void main(void)
!{
!    DDPCONbits.JTAGEN = 0;  // Отключили JTAG port освободить порты RB10/11/12/RB13
0x9D000000: LUI V0, -16511
0x9D000004: LBU A0, -3584(V0)
0x9D00000C: INS A0, ZERO, 3, 1
0x9D000010: SB A0, -3584(V0)
!    Clear_WDT();            // сброс сторожевого таймера
0x9D000008: LUI V1, -16512
0x9D000014: LHU A0, 0(V1)
0x9D000020: ADDIU A2, ZERO, 1
0x9D000024: INS A0, A2, 0, 1
0x9D000028: SH A0, 0(V1)
!    // настройка портов микроконтроллера
!    //RA 0-15
!    TRISA = 0b0000000000000000;             // регистр направления данных
0x9D000018: LUI V0, -16504
0x9D000030: SW ZERO, 24576(V0)
!    PORTA = 0b0000000000000000;               // регистр приема данных
0x9D000038: SW ZERO, 24592(V0)
!    LATA  = 0b0000000000000000;               // регистр передаваемых данных
0x9D00003C: SW ZERO, 24608(V0)
!    ODCA  = 0b0000000000000000;               // регистр настройки "открытого коллектора"
0x9D000040: SW ZERO, 24624(V0)
!   
!    //RB 0-15
!    TRISB = 0b0000000000000000;             // регистр направления данных
0x9D000044: SW ZERO, 24640(V0)
!    PORTB = 0b0000000000000000;               // регистр приема данных
0x9D000048: SW ZERO, 24656(V0)
!    LATB  = 0b0000000000000000;               // регистр передаваемых данных
0x9D00004C: SW ZERO, 24672(V0)
!    ODCB  = 0b0000000000000000;               // регистр настройки "открытого коллектора"
0x9D000050: SW ZERO, 24688(V0)
!    //RC 12-15
!    TRISC = 0b0000000000000000;             // регистр направления данных
0x9D000054: SW ZERO, 24704(V0)
!    PORTC = 0b0000000000000000;               // регистр приема данных
0x9D000058: SW ZERO, 24720(V0)
!    LATC  = 0b0000000000000000;               // регистр передаваемых данных
0x9D00005C: SW ZERO, 24736(V0)
!    ODCC  = 0b0000000000000000;               // регистр настройки "открытого коллектора"
0x9D000060: SW ZERO, 24752(V0)
!    //RD 0-11
!    TRISD = 0b0000000000000000;             // регистр направления данных
0x9D000064: SW ZERO, 24768(V0)
!    PORTD = 0b0000000000000000;               // регистр приема данных
0x9D000068: SW ZERO, 24784(V0)
!    LATD  = 0b0000000000000000;               // регистр передаваемых данных
0x9D00006C: SW ZERO, 24800(V0)
!    ODCD  = 0b0000000000000000;               // регистр настройки "открытого коллектора"
0x9D000070: SW ZERO, 24816(V0)
!    //RE 0-7
!    TRISE = 0b0000000000000000;             // регистр направления данных
0x9D000074: SW ZERO, 24832(V0)
!    PORTE = 0b0000000000000000;               // регистр приема данных
0x9D000078: SW ZERO, 24848(V0)
!    LATE  = 0b0000000000000000;               // регистр передаваемых данных
0x9D00007C: SW ZERO, 24864(V0)
!    ODCE  = 0b0000000000000000;               // регистр настройки "открытого коллектора"
0x9D000080: SW ZERO, 24880(V0)
!    //RF 0-1, 3-5
!    TRISF = 0b0000000000000000;             // регистр направления данных
0x9D000084: SW ZERO, 24896(V0)
!    PORTF = 0b0000000000000000;               // регистр приема данных
0x9D000088: SW ZERO, 24912(V0)
!    LATF  = 0b0000000000000000;               // регистр передаваемых данных
0x9D00008C: SW ZERO, 24928(V0)
!    ODCF  = 0b0000000000000000;               // регистр настройки "открытого коллектора"
0x9D000090: SW ZERO, 24944(V0)
!    //RG 2-3, 6-9
!    TRISG = 0b0000000000000000;             // регистр направления данных
0x9D000094: SW ZERO, 24960(V0)
!    PORTG = 0b0000000000000000;               // регистр приема данных
0x9D000098: SW ZERO, 24976(V0)
!    LATG  = 0b0000000000000000;               // регистр передаваемых данных
0x9D00009C: SW ZERO, 24992(V0)
!    ODCG  = 0b0000000000000000;               // регистр настройки "открытого коллектора"
0x9D0000A0: SW ZERO, 25008(V0)
!   
!//----------
!    do
!    {
!               
!        LED3SET();
0x9D00001C: ADDIU A1, ZERO, 4
0x9D0000A4: SW A1, 24872(V0)
!        // 10 us
!        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
0x9D0000A8: NOP
0x9D0000AC: NOP
0x9D0000B0: NOP
0x9D0000B4: NOP
0x9D0000B8: NOP
0x9D0000BC: NOP
0x9D0000C0: NOP
0x9D0000C4: NOP
0x9D0000C8: NOP
0x9D0000CC: NOP
!        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
0x9D0000D0: NOP
0x9D0000D4: NOP
0x9D0000D8: NOP
0x9D0000DC: NOP
0x9D0000E0: NOP
0x9D0000E4: NOP
0x9D0000E8: NOP
0x9D0000EC: NOP
0x9D0000F0: NOP
0x9D0000F4: NOP
!        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
0x9D0000F8: NOP
0x9D0000FC: NOP
0x9D000100: NOP
0x9D000104: NOP
0x9D000108: NOP
0x9D00010C: NOP
0x9D000110: NOP
0x9D000114: NOP
0x9D000118: NOP
0x9D00011C: NOP
!        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
0x9D000120: NOP
0x9D000124: NOP
0x9D000128: NOP
0x9D00012C: NOP
0x9D000130: NOP
0x9D000134: NOP
0x9D000138: NOP
0x9D00013C: NOP
0x9D000140: NOP
0x9D000144: NOP
!        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
0x9D000148: NOP
0x9D00014C: NOP
0x9D000150: NOP
0x9D000154: NOP
0x9D000158: NOP
0x9D00015C: NOP
0x9D000160: NOP
0x9D000164: NOP
0x9D000168: NOP
0x9D00016C: NOP
!       
!        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
0x9D000170: NOP
0x9D000174: NOP
0x9D000178: NOP
0x9D00017C: NOP
0x9D000180: NOP
0x9D000184: NOP
0x9D000188: NOP
0x9D00018C: NOP
0x9D000190: NOP
0x9D000194: NOP
!        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
0x9D000198: NOP
0x9D00019C: NOP
0x9D0001A0: NOP
0x9D0001A4: NOP
0x9D0001A8: NOP
0x9D0001AC: NOP
0x9D0001B0: NOP
0x9D0001B4: NOP
0x9D0001B8: NOP
0x9D0001BC: NOP
!        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
0x9D0001C0: NOP
0x9D0001C4: NOP
0x9D0001C8: NOP
0x9D0001CC: NOP
0x9D0001D0: NOP
0x9D0001D4: NOP
0x9D0001D8: NOP
0x9D0001DC: NOP
0x9D0001E0: NOP
0x9D0001E4: NOP
!        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
0x9D0001E8: NOP
0x9D0001EC: NOP
0x9D0001F0: NOP
0x9D0001F4: NOP
0x9D0001F8: NOP
0x9D0001FC: NOP
0x9D000200: NOP
0x9D000204: NOP
0x9D000208: NOP
0x9D00020C: NOP
!        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
0x9D000210: NOP
0x9D000214: NOP
0x9D000218: NOP
0x9D00021C: NOP
0x9D000220: NOP
0x9D000224: NOP
0x9D000228: NOP
0x9D00022C: NOP
0x9D000230: NOP
0x9D000234: NOP
!       
!       
!       
!        LED3CLR();
0x9D00002C: ADDU A0, V0, ZERO
0x9D000034: ADDIU V1, ZERO, 4
0x9D000238: LUI V0, -16504
0x9D00023C: SW V1, 24868(A0)
!        // 10 us
!        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
0x9D000240: NOP
0x9D000244: NOP
0x9D000248: NOP
0x9D00024C: NOP
0x9D000250: NOP
0x9D000254: NOP
0x9D000258: NOP
0x9D00025C: NOP
0x9D000260: NOP
0x9D000264: NOP
!        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
0x9D000268: NOP
0x9D00026C: NOP
0x9D000270: NOP
0x9D000274: NOP
0x9D000278: NOP
0x9D00027C: NOP
0x9D000280: NOP
0x9D000284: NOP
0x9D000288: NOP
0x9D00028C: NOP
!        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
0x9D000290: NOP
0x9D000294: NOP
0x9D000298: NOP
0x9D00029C: NOP
0x9D0002A0: NOP
0x9D0002A4: NOP
0x9D0002A8: NOP
0x9D0002AC: NOP
0x9D0002B0: NOP
0x9D0002B4: NOP
!        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
0x9D0002B8: NOP
0x9D0002BC: NOP
0x9D0002C0: NOP
0x9D0002C4: NOP
0x9D0002C8: NOP
0x9D0002CC: NOP
0x9D0002D0: NOP
0x9D0002D4: NOP
0x9D0002D8: NOP
0x9D0002DC: NOP
!        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
0x9D0002E0: NOP
0x9D0002E4: NOP
0x9D0002E8: NOP
0x9D0002EC: NOP
0x9D0002F0: NOP
0x9D0002F4: NOP
0x9D0002F8: NOP
0x9D0002FC: NOP
0x9D000300: NOP
0x9D000304: NOP
!       
!        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
0x9D000308: NOP
0x9D00030C: NOP
0x9D000310: NOP
0x9D000314: NOP
0x9D000318: NOP
0x9D00031C: NOP
0x9D000320: NOP
0x9D000324: NOP
0x9D000328: NOP
0x9D00032C: NOP
!        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
0x9D000330: NOP
0x9D000334: NOP
0x9D000338: NOP
0x9D00033C: NOP
0x9D000340: NOP
0x9D000344: NOP
0x9D000348: NOP
0x9D00034C: NOP
0x9D000350: NOP
0x9D000354: NOP
!        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
0x9D000358: NOP
0x9D00035C: NOP
0x9D000360: NOP
0x9D000364: NOP
0x9D000368: NOP
0x9D00036C: NOP
0x9D000370: NOP
0x9D000374: NOP
0x9D000378: NOP
0x9D00037C: NOP
!        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
0x9D000380: NOP
0x9D000384: NOP
0x9D000388: NOP
0x9D00038C: NOP
0x9D000390: NOP
0x9D000394: NOP
0x9D000398: NOP
0x9D00039C: NOP
0x9D0003A0: NOP
0x9D0003A4: NOP
!        asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");   asm ("nop");asm ("nop");asm ("nop");asm ("nop");asm ("nop");
0x9D0003A8: NOP
0x9D0003AC: NOP
0x9D0003B0: NOP
0x9D0003B4: NOP
0x9D0003B8: NOP
0x9D0003BC: NOP
0x9D0003C0: NOP
0x9D0003C4: NOP
0x9D0003C8: NOP
0x9D0003CC: J 0x9D0000A4
0x9D0003D0: NOP


MikroC
Спойлер
Код:

;Address Opcode         ASM
____SysVT:
0x9FC01180        0x0B400008  J        ___GenExcept
0x9FC01184        0x70000000  NOP       
; end of ____SysVT
____BootVT:
0xBFC00380        0x3C1E9D00  LUI        R30, 40192
0xBFC00384        0x37DE0038  ORI        R30, R30, 56
0xBFC00388        0x03C00008  JR        R30
0xBFC0038C        0x70000000  NOP       
; end of ____BootVT
_main:
;Led.c, 4 ::                 void main() {
0x9D000050        0x0F4000F0  JAL        2634023872
0x9D000054        0x70000000  NOP       
;Led.c, 6 ::                 LED3_dir = 0;
0x9D000058        0x34020004  ORI        R2, R0, 4
0x9D00005C        0x3C1EBF88  LUI        R30, 49032
0x9D000060        0xAFC26104  SW        R2, 24836(R30)
;Led.c, 7 ::                 DDPCONbits.JTAGEN = 0;
0x9D000064        0x3C1EBF81  LUI        R30, 49025
0x9D000068        0x93C2F200  LBU        R2, -3584(R30)
0x9D00006C        0x7C0218C4  INS        R2, R0, 3, 1
0x9D000070        0x3C1EBF81  LUI        R30, 49025
0x9D000074        0xA3C2F200  SB        R2, -3584(R30)
;Led.c, 10 ::                 while(1)
L_main0:
;Led.c, 13 ::                 LED3=1;
0x9D000078        0x34020004  ORI        R2, R0, 4
0x9D00007C        0x3C1EBF88  LUI        R30, 49032
0x9D000080        0xAFC26128  SW        R2, 24872(R30)
;Led.c, 15 ::                 asm nop;asm nop;asm nop;asm nop;asm nop;   asm nop;asm nop;asm nop;asm nop;asm nop;
0x9D000084        0x70000000  NOP       
0x9D000088        0x70000000  NOP       
0x9D00008C        0x70000000  NOP       
0x9D000090        0x70000000  NOP       
0x9D000094        0x70000000  NOP       
0x9D000098        0x70000000  NOP       
0x9D00009C        0x70000000  NOP       
0x9D0000A0        0x70000000  NOP       
0x9D0000A4        0x70000000  NOP       
0x9D0000A8        0x70000000  NOP       
;Led.c, 16 ::                 asm nop;asm nop;asm nop;asm nop;asm nop;   asm nop;asm nop;asm nop;asm nop;asm nop;
0x9D0000AC        0x70000000  NOP       
0x9D0000B0        0x70000000  NOP       
0x9D0000B4        0x70000000  NOP       
0x9D0000B8        0x70000000  NOP       
0x9D0000BC        0x70000000  NOP       
0x9D0000C0        0x70000000  NOP       
0x9D0000C4        0x70000000  NOP       
0x9D0000C8        0x70000000  NOP       
0x9D0000CC        0x70000000  NOP       
0x9D0000D0        0x70000000  NOP       
;Led.c, 17 ::                 asm nop;asm nop;asm nop;asm nop;asm nop;   asm nop;asm nop;asm nop;asm nop;asm nop;
0x9D0000D4        0x70000000  NOP       
0x9D0000D8        0x70000000  NOP       
0x9D0000DC        0x70000000  NOP       
0x9D0000E0        0x70000000  NOP       
0x9D0000E4        0x70000000  NOP       
0x9D0000E8        0x70000000  NOP       
0x9D0000EC        0x70000000  NOP       
0x9D0000F0        0x70000000  NOP       
0x9D0000F4        0x70000000  NOP       
0x9D0000F8        0x70000000  NOP       
;Led.c, 18 ::                 asm nop;asm nop;asm nop;asm nop;asm nop;   asm nop;asm nop;asm nop;asm nop;asm nop;
0x9D0000FC        0x70000000  NOP       
0x9D000100        0x70000000  NOP       
0x9D000104        0x70000000  NOP       
0x9D000108        0x70000000  NOP       
0x9D00010C        0x70000000  NOP       
0x9D000110        0x70000000  NOP       
0x9D000114        0x70000000  NOP       
0x9D000118        0x70000000  NOP       
0x9D00011C        0x70000000  NOP       
0x9D000120        0x70000000  NOP       
;Led.c, 19 ::                 asm nop;asm nop;asm nop;asm nop;asm nop;   asm nop;asm nop;asm nop;asm nop;asm nop;
0x9D000124        0x70000000  NOP       
0x9D000128        0x70000000  NOP       
0x9D00012C        0x70000000  NOP       
0x9D000130        0x70000000  NOP       
0x9D000134        0x70000000  NOP       
0x9D000138        0x70000000  NOP       
0x9D00013C        0x70000000  NOP       
0x9D000140        0x70000000  NOP       
0x9D000144        0x70000000  NOP       
0x9D000148        0x70000000  NOP       
;Led.c, 21 ::                 asm nop;asm nop;asm nop;asm nop;asm nop;   asm nop;asm nop;asm nop;asm nop;asm nop;
0x9D00014C        0x70000000  NOP       
0x9D000150        0x70000000  NOP       
0x9D000154        0x70000000  NOP       
0x9D000158        0x70000000  NOP       
0x9D00015C        0x70000000  NOP       
0x9D000160        0x70000000  NOP       
0x9D000164        0x70000000  NOP       
0x9D000168        0x70000000  NOP       
0x9D00016C        0x70000000  NOP       
0x9D000170        0x70000000  NOP       
;Led.c, 22 ::                 asm nop;asm nop;asm nop;asm nop;asm nop;   asm nop;asm nop;asm nop;asm nop;asm nop;
0x9D000174        0x70000000  NOP       
0x9D000178        0x70000000  NOP       
0x9D00017C        0x70000000  NOP       
0x9D000180        0x70000000  NOP       
0x9D000184        0x70000000  NOP       
0x9D000188        0x70000000  NOP       
0x9D00018C        0x70000000  NOP       
0x9D000190        0x70000000  NOP       
0x9D000194        0x70000000  NOP       
0x9D000198        0x70000000  NOP       
;Led.c, 23 ::                 asm nop;asm nop;asm nop;asm nop;asm nop;   asm nop;asm nop;asm nop;asm nop;asm nop;
0x9D00019C        0x70000000  NOP       
0x9D0001A0        0x70000000  NOP       
0x9D0001A4        0x70000000  NOP       
0x9D0001A8        0x70000000  NOP       
0x9D0001AC        0x70000000  NOP       
0x9D0001B0        0x70000000  NOP       
0x9D0001B4        0x70000000  NOP       
0x9D0001B8        0x70000000  NOP       
0x9D0001BC        0x70000000  NOP       
0x9D0001C0        0x70000000  NOP       
;Led.c, 24 ::                 asm nop;asm nop;asm nop;asm nop;asm nop;   asm nop;asm nop;asm nop;asm nop;asm nop;
0x9D0001C4        0x70000000  NOP       
0x9D0001C8        0x70000000  NOP       
0x9D0001CC        0x70000000  NOP       
0x9D0001D0        0x70000000  NOP       
0x9D0001D4        0x70000000  NOP       
0x9D0001D8        0x70000000  NOP       
0x9D0001DC        0x70000000  NOP       
0x9D0001E0        0x70000000  NOP       
0x9D0001E4        0x70000000  NOP       
0x9D0001E8        0x70000000  NOP       
;Led.c, 25 ::                 asm nop;asm nop;asm nop;asm nop;asm nop;   asm nop;asm nop;asm nop;asm nop;asm nop;
0x9D0001EC        0x70000000  NOP       
0x9D0001F0        0x70000000  NOP       
0x9D0001F4        0x70000000  NOP       
0x9D0001F8        0x70000000  NOP       
0x9D0001FC        0x70000000  NOP       
0x9D000200        0x70000000  NOP       
0x9D000204        0x70000000  NOP       
0x9D000208        0x70000000  NOP       
0x9D00020C        0x70000000  NOP       
0x9D000210        0x70000000  NOP       
;Led.c, 29 ::                 LED3=0;
0x9D000214        0x34020004  ORI        R2, R0, 4
0x9D000218        0x3C1EBF88  LUI        R30, 49032
0x9D00021C        0xAFC26124  SW        R2, 24868(R30)
;Led.c, 31 ::                 asm nop;asm nop;asm nop;asm nop;asm nop;   asm nop;asm nop;asm nop;asm nop;asm nop;
0x9D000220        0x70000000  NOP       
0x9D000224        0x70000000  NOP       
0x9D000228        0x70000000  NOP       
0x9D00022C        0x70000000  NOP       
0x9D000230        0x70000000  NOP       
0x9D000234        0x70000000  NOP       
0x9D000238        0x70000000  NOP       
0x9D00023C        0x70000000  NOP       
0x9D000240        0x70000000  NOP       
0x9D000244        0x70000000  NOP       
;Led.c, 32 ::                 asm nop;asm nop;asm nop;asm nop;asm nop;   asm nop;asm nop;asm nop;asm nop;asm nop;
0x9D000248        0x70000000  NOP       
0x9D00024C        0x70000000  NOP       
0x9D000250        0x70000000  NOP       
0x9D000254        0x70000000  NOP       
0x9D000258        0x70000000  NOP       
0x9D00025C        0x70000000  NOP       
0x9D000260        0x70000000  NOP       
0x9D000264        0x70000000  NOP       
0x9D000268        0x70000000  NOP       
0x9D00026C        0x70000000  NOP       
;Led.c, 33 ::                 asm nop;asm nop;asm nop;asm nop;asm nop;   asm nop;asm nop;asm nop;asm nop;asm nop;
0x9D000270        0x70000000  NOP       
0x9D000274        0x70000000  NOP       
0x9D000278        0x70000000  NOP       
0x9D00027C        0x70000000  NOP       
0x9D000280        0x70000000  NOP       
0x9D000284        0x70000000  NOP       
0x9D000288        0x70000000  NOP       
0x9D00028C        0x70000000  NOP       
0x9D000290        0x70000000  NOP       
0x9D000294        0x70000000  NOP       
;Led.c, 34 ::                 asm nop;asm nop;asm nop;asm nop;asm nop;   asm nop;asm nop;asm nop;asm nop;asm nop;
0x9D000298        0x70000000  NOP       
0x9D00029C        0x70000000  NOP       
0x9D0002A0        0x70000000  NOP       
0x9D0002A4        0x70000000  NOP       
0x9D0002A8        0x70000000  NOP       
0x9D0002AC        0x70000000  NOP       
0x9D0002B0        0x70000000  NOP       
0x9D0002B4        0x70000000  NOP       
0x9D0002B8        0x70000000  NOP       
0x9D0002BC        0x70000000  NOP       
;Led.c, 35 ::                 asm nop;asm nop;asm nop;asm nop;asm nop;   asm nop;asm nop;asm nop;asm nop;asm nop;
0x9D0002C0        0x70000000  NOP       
0x9D0002C4        0x70000000  NOP       
0x9D0002C8        0x70000000  NOP       
0x9D0002CC        0x70000000  NOP       
0x9D0002D0        0x70000000  NOP       
0x9D0002D4        0x70000000  NOP       
0x9D0002D8        0x70000000  NOP       
0x9D0002DC        0x70000000  NOP       
0x9D0002E0        0x70000000  NOP       
0x9D0002E4        0x70000000  NOP       
;Led.c, 37 ::                 asm nop;asm nop;asm nop;asm nop;asm nop;   asm nop;asm nop;asm nop;asm nop;asm nop;
0x9D0002E8        0x70000000  NOP       
0x9D0002EC        0x70000000  NOP       
0x9D0002F0        0x70000000  NOP       
0x9D0002F4        0x70000000  NOP       
0x9D0002F8        0x70000000  NOP       
0x9D0002FC        0x70000000  NOP       
0x9D000300        0x70000000  NOP       
0x9D000304        0x70000000  NOP       
0x9D000308        0x70000000  NOP       
0x9D00030C        0x70000000  NOP       
;Led.c, 38 ::                 asm nop;asm nop;asm nop;asm nop;asm nop;   asm nop;asm nop;asm nop;asm nop;asm nop;
0x9D000310        0x70000000  NOP       
0x9D000314        0x70000000  NOP       
0x9D000318        0x70000000  NOP       
0x9D00031C        0x70000000  NOP       
0x9D000320        0x70000000  NOP       
0x9D000324        0x70000000  NOP       
0x9D000328        0x70000000  NOP       
0x9D00032C        0x70000000  NOP       
0x9D000330        0x70000000  NOP       
0x9D000334        0x70000000  NOP       
;Led.c, 39 ::                 asm nop;asm nop;asm nop;asm nop;asm nop;   asm nop;asm nop;asm nop;asm nop;asm nop;
0x9D000338        0x70000000  NOP       
0x9D00033C        0x70000000  NOP       
0x9D000340        0x70000000  NOP       
0x9D000344        0x70000000  NOP       
0x9D000348        0x70000000  NOP       
0x9D00034C        0x70000000  NOP       
0x9D000350        0x70000000  NOP       
0x9D000354        0x70000000  NOP       
0x9D000358        0x70000000  NOP       
0x9D00035C        0x70000000  NOP       
;Led.c, 40 ::                 asm nop;asm nop;asm nop;asm nop;asm nop;   asm nop;asm nop;asm nop;asm nop;asm nop;
0x9D000360        0x70000000  NOP       
0x9D000364        0x70000000  NOP       
0x9D000368        0x70000000  NOP       
0x9D00036C        0x70000000  NOP       
0x9D000370        0x70000000  NOP       
0x9D000374        0x70000000  NOP       
0x9D000378        0x70000000  NOP       
0x9D00037C        0x70000000  NOP       
0x9D000380        0x70000000  NOP       
0x9D000384        0x70000000  NOP       
;Led.c, 41 ::                 asm nop;asm nop;asm nop;asm nop;asm nop;   asm nop;asm nop;asm nop;asm nop;asm nop;
0x9D000388        0x70000000  NOP       
0x9D00038C        0x70000000  NOP       
0x9D000390        0x70000000  NOP       
0x9D000394        0x70000000  NOP       
0x9D000398        0x70000000  NOP       
0x9D00039C        0x70000000  NOP       
0x9D0003A0        0x70000000  NOP       
0x9D0003A4        0x70000000  NOP       
0x9D0003A8        0x70000000  NOP       
0x9D0003AC        0x70000000  NOP       
;Led.c, 43 ::                 }
0x9D0003B0        0x0B40001E  J        L_main0
0x9D0003B4        0x70000000  NOP       
;Led.c, 44 ::                 }
L_end_main:
L__main_end_loop:
0x9D0003B8        0x0B4000EE  J        L__main_end_loop
0x9D0003BC        0x70000000  NOP       
; end of _main
___FillZeros:
;__Lib_System.c, 161 ::                 
0x9D000000        0x27BDFFFC  ADDIU        SP, SP, -4
;__Lib_System.c, 163 ::                 
L___FillZeros0:
;__Lib_System.c, 164 ::                 
0x9D000004        0x12F60004  BEQ        R23, R22, L___FillZeros1
;__Lib_System.c, 165 ::                 
0x9D000008        0x70000000  NOP       
;__Lib_System.c, 166 ::                 
L____FillZeros4:
;__Lib_System.c, 167 ::                 
0x9D00000C        0xAEE00000  SW        R0, 0(R23)
;__Lib_System.c, 168 ::                 
0x9D000010        0x0B400001  J        L___FillZeros0
;__Lib_System.c, 169 ::                 
0x9D000014        0x26F70004  ADDIU        R23, R23, 4
;__Lib_System.c, 170 ::                 
L___FillZeros1:
;__Lib_System.c, 172 ::                 
L_end___FillZeros:
0x9D000018        0x03E00008  JR        RA
0x9D00001C        0x27BD0004  ADDIU        SP, SP, 4
; end of ___FillZeros
___BootStartUp:
;__Lib_System.c, 68 ::                 
0xBFC00000        0x27BDFFFC  ADDIU        SP, SP, -4
;__Lib_System.c, 72 ::                 
0xBFC00004        0x70000000  NOP       
;__Lib_System.c, 73 ::                 
0xBFC00008        0x70000000  NOP       
;__Lib_System.c, 74 ::                 
0xBFC0000C        0x70000000  NOP       
;__Lib_System.c, 75 ::                 
0xBFC00010        0x70000000  NOP       
;__Lib_System.c, 76 ::                 
0xBFC00014        0x70000000  NOP       
;__Lib_System.c, 77 ::                 
0xBFC00018        0x70000000  NOP       
;__Lib_System.c, 78 ::                 
0xBFC0001C        0x70000000  NOP       
;__Lib_System.c, 79 ::                 
0xBFC00020        0x70000000  NOP       
;__Lib_System.c, 80 ::                 
0xBFC00024        0x70000000  NOP       
;__Lib_System.c, 81 ::                 
0xBFC00028        0x70000000  NOP       
;__Lib_System.c, 82 ::                 
0xBFC0002C        0x70000000  NOP       
;__Lib_System.c, 83 ::                 
0xBFC00030        0x70000000  NOP       
;__Lib_System.c, 84 ::                 
0xBFC00034        0x70000000  NOP       
;__Lib_System.c, 85 ::                 
0xBFC00038        0x70000000  NOP       
;__Lib_System.c, 86 ::                 
0xBFC0003C        0x70000000  NOP       
;__Lib_System.c, 87 ::                 
0xBFC00040        0x70000000  NOP       
;__Lib_System.c, 88 ::                 
0xBFC00044        0x70000000  NOP       
;__Lib_System.c, 89 ::                 
0xBFC00048        0x70000000  NOP       
;__Lib_System.c, 90 ::                 
0xBFC0004C        0x70000000  NOP       
;__Lib_System.c, 91 ::                 
0xBFC00050        0x70000000  NOP       
;__Lib_System.c, 94 ::                 
0xBFC00054        0x3C1DA000  LUI        SP, 40960
0xBFC00058        0x37BD7FFC  ORI        SP, SP, 32764
;__Lib_System.c, 95 ::                 
0xBFC0005C        0x3C01A000  LUI        GP, 40960
0xBFC00060        0x34218000  ORI        GP, GP, 32768
;__Lib_System.c, 99 ::                 
0xBFC00064        0x401E6002  MFC0        R30, 12, 2
;__Lib_System.c, 100 ::                 
0xBFC00068        0x03C0E00A  MOVZ        R28, R30, R0
;__Lib_System.c, 101 ::                 
0xBFC0006C        0x7FDB1E80  EXT        R27, R30, 26, 4
;__Lib_System.c, 102 ::                 
0xBFC00070        0x7F7E4984  INS        R30, R27, 6, 4
;__Lib_System.c, 103 ::                 
0xBFC00074        0x409E6002  MTC0        R30, 12, 2
;__Lib_System.c, 104 ::                 
0xBFC00078        0x41C10800  WRPGPR        GP, GP
;__Lib_System.c, 105 ::                 
0xBFC0007C        0x409C6002  MTC0        R28, 12, 2
;__Lib_System.c, 111 ::                 
0xBFC00080        0x3C02A421  LUI        R2, 42017
0xBFC00084        0x34420583  ORI        R2, R2, 1411
0xBFC00088        0x0040F00A  MOVZ        R30, R2, R0
0xBFC0008C        0x409E8000  MTC0        R30, 16, 0
;__Lib_System.c, 114 ::                 
0xBFC00090        0x0000100A  MOVZ        R2, R0, R0
0xBFC00094        0x0040F00A  MOVZ        R30, R2, R0
0xBFC00098        0x409E4800  MTC0        R30, 9, 0
;__Lib_System.c, 117 ::                 
0xBFC0009C        0x3C02FFFF  LUI        R2, 65535
0xBFC000A0        0x3442FFFF  ORI        R2, R2, 65535
0xBFC000A4        0x0040F00A  MOVZ        R30, R2, R0
0xBFC000A8        0x409E5800  MTC0        R30, 11, 0
;__Lib_System.c, 119 ::                 
0xBFC000AC        0x3C029FC0  LUI        R2, 40896
0xBFC000B0        0x34421000  ORI        R2, R2, 4096
0xBFC000B4        0x0040F00A  MOVZ        R30, R2, R0
0xBFC000B8        0x409E7801  MTC0        R30, 15, 1
;__Lib_System.c, 121 ::                 
0xBFC000BC        0x34020020  ORI        R2, R0, 32
0xBFC000C0        0x0040F00A  MOVZ        R30, R2, R0
0xBFC000C4        0x409E6001  MTC0        R30, 12, 1
;__Lib_System.c, 123 ::                 
0xBFC000C8        0x3C020400  LUI        R2, 1024
0xBFC000CC        0x0040F00A  MOVZ        R30, R2, R0
0xBFC000D0        0x409E6002  MTC0        R30, 12, 2
;__Lib_System.c, 124 ::                 
0xBFC000D4        0x0000100A  MOVZ        R2, R0, R0
0xBFC000D8        0x0040F00A  MOVZ        R30, R2, R0
0xBFC000DC        0x409E6003  MTC0        R30, 12, 3
;__Lib_System.c, 129 ::                 
0xBFC000E0        0x3C020010  LUI        R2, 16
0xBFC000E4        0x0040F00A  MOVZ        R30, R2, R0
0xBFC000E8        0x409E6000  MTC0        R30, 12, 0
;__Lib_System.c, 132 ::                 
0xBFC000EC        0x34020032  ORI        R2, R0, 50
0xBFC000F0        0x3C1EBF88  LUI        R30, 49032
0xBFC000F4        0xAFC24000  SW        R2, 16384(R30)
;__Lib_System.c, 137 ::                 
0xBFC000F8        0x34021000  ORI        R2, R0, 4096
0xBFC000FC        0x3C1EBF88  LUI        R30, 49032
0xBFC00100        0xAFC21000  SW        R2, 4096(R30)
;__Lib_System.c, 143 ::                 
0xBFC00104        0x3C020080  LUI        R2, 128
0xBFC00108        0x0040F00A  MOVZ        R30, R2, R0
0xBFC0010C        0x409E6800  MTC0        R30, 13, 0
;__Lib_System.c, 149 ::                 
0xBFC00110        0x3C1E9D00  LUI        R30, hi_addr(_main+0)
;__Lib_System.c, 150 ::                 
0xBFC00114        0x37DE0050  ORI        R30, R30, lo_addr(_main+0)
;__Lib_System.c, 152 ::                 
0xBFC00118        0x03C00008  JR        R30
;__Lib_System.c, 153 ::                 
0xBFC0011C        0x70000000  NOP       
;__Lib_System.c, 155 ::                 
L_end___BootStartUp:
0xBFC00120        0x03E00008  JR        RA
0xBFC00124        0x27BD0004  ADDIU        SP, SP, 4
; end of ___BootStartUp
___BootGenExcept:
;__Lib_System.c, 56 ::                 
0x9D000038        0x27BDFFFC  ADDIU        SP, SP, -4
;__Lib_System.c, 57 ::                 
L___BootGenExcept6:
;__Lib_System.c, 58 ::                 
0x9D00003C        0x0B40000F  J        L___BootGenExcept6
0x9D000040        0x70000000  NOP       
;__Lib_System.c, 59 ::                 
L_end___BootGenExcept:
0x9D000044        0x27BD0004  ADDIU        SP, SP, 4
0x9D000048        0x42000018  ERET       
0x9D00004C        0x70000000  NOP       
; end of ___BootGenExcept
___GenExcept:
;__Lib_System.c, 61 ::                 
0x9D000020        0x27BDFFFC  ADDIU        SP, SP, -4
;__Lib_System.c, 62 ::                 
L___GenExcept8:
;__Lib_System.c, 63 ::                 
0x9D000024        0x0B400009  J        L___GenExcept8
0x9D000028        0x70000000  NOP       
;__Lib_System.c, 64 ::                 
L_end___GenExcept:
0x9D00002C        0x27BD0004  ADDIU        SP, SP, 4
0x9D000030        0x42000018  ERET       
0x9D000034        0x70000000  NOP       
; end of ___GenExcept
0x9D0003C0        0x03E0C80A  MOVZ        R25, RA, R0
0x9D0003C4        0x3C170000  LUI        R23, 0
0x9D0003C8        0x36F70000  ORI        R23, R23, 0
0x9D0003CC        0x3C160000  LUI        R22, 0
0x9D0003D0        0x36D60000  ORI        R22, R22, 0
0x9D0003D4        0x0F400000  JAL        ___FillZeros
0x9D0003D8        0x70000000  NOP       
0x9D0003DC        0x0320F80A  MOVZ        RA, R25, R0
0x9D0003E0        0x03E00008  JR        RA
0x9D0003E4        0x70000000  NOP       
Symbol List:
//** Routines locations **
//ADDRESS    SIZE    PROCEDURE
//----------
0x9D000000      [32]    ___FillZeros
0x9D000020      [24]    ___GenExcept
0x9D000038      [24]    ___BootGenExcept
0x9D000050     [880]    _main
0xBFC00000     [296]    ___BootStartUp
//** Variables locations **
//ADDRESS    SIZE    VARIABLE
//----------

Re: MPLAB X IDE

Пн авг 29, 2022 10:09:11

Решил приложить осциллограммы для правдоподобности

MPLAB
Изображение

MikroC
Изображение

Из дизассемблера видно что код один и тот же, в микроси только перед стартом идёт некая конфигурация, которая и позволяет работать чипу на положенных ему 80МГц. Конфигурационная строка чипа в обоих случаях одинаковая: :102FF000FFFFFFFFD979F8FF7BC96DFFFFFFFF7F60 и была расписана выше.

Re: MPLAB X IDE

Пн авг 29, 2022 22:31:09

Похоже 32 пиками мало кто балуется, судя по куче ответов (
Гугл конечно в помощь, но несколько дней стучания головой об стену это, что то с чем то.
КРАМ, был в какой то степени прав, тут уже далеко не простое АЛУ, где послал команду и он тебе посчитал за n'ое количество тактов. Тут есть кеш, сопроцессор и задерржка чтения шлеш памяти, если это не настроишь то и получишь то же что и у меня.
Раньше это решалось строкой: SYSTEMConfig(SYS_FREQ, SYS_CFG_WAIT_STATES | SYS_CFG_PCACHE);
Сейчас фиг, надо доб библиотетеку хармони ставить, а ручками пока ещё не разобрался как и что нужно настроить :(

Re: MPLAB X IDE

Чт сен 01, 2022 17:32:11

По пикам похоже сказать некому, или не там запостил.
Ладно вопрос по теме:
Есть глобальные переменные которые находятся в файле Global.h
Всё объявлено через #ifndef, чтобы было подключено только 1 раз, чтобы файлы имели доступ к объявленным переменным. Почти в каждом .c файле идёт подключение к файлу Global.h, в компиляторе XC32v2.5 всё работало отлично, но после обновления компилятора до версии 4.1 вываливает кучу ошибок на тему многократного определения переменных как будто #ifndef не работает. :dont_know:
И ещё выпилили функцию itoa() :(

Re: MPLAB X IDE

Чт сен 01, 2022 20:47:14

alex_, <xc.h> подключали? Он также должен быть на уровне вашего Global.h(а не в нём) и первым в очереди xc.h, потом Global.h
Ответить