MPLAB X IDE

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Сообщение alex_ »

КРАМ писал(а):Там все просто.
Как бы да, но пока не особо разбираюсь. Предварительно (не утверждаю в последней инстанции) но в цикле ветвления не увидел(дизасм), хотя могу и ошибаться. Нопов специально накидал много чтобы периферия оказывала как можно меньше влияния на расчёты в том числе и переход while(1). Весь материал на работе сейчас не могу его предоставить (
Реклама
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Сообщение alex_ »

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
//----------------------------------------------
Реклама
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Сообщение alex_ »

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

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

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

Из дизассемблера видно что код один и тот же, в микроси только перед стартом идёт некая конфигурация, которая и позволяет работать чипу на положенных ему 80МГц. Конфигурационная строка чипа в обоих случаях одинаковая: :102FF000FFFFFFFFD979F8FF7BC96DFFFFFFFF7F60 и была расписана выше.
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Сообщение alex_ »

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

Сообщение alex_ »

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

Сообщение Deoptim »

alex_, <xc.h> подключали? Он также должен быть на уровне вашего Global.h(а не в нём) и первым в очереди xc.h, потом Global.h
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25862
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="alex_",url="/forum/viewtopic.php?p=4281716#p4281716"]Есть глобальные переменные которые находятся в файле Global.h
Всё объявлено через #ifndef, чтобы было подключено только 1 раз, чтобы файлы .с имели доступ к объявленным переменным. Почти в каждом .c файле идёт подключение к файлу Global.h, в компиляторе XC32v2.5 всё работало отлично[/uquote]
Вообще то НЕ ДОЛЖНО было работать.
Какое отношение #ifndef имеет к ПЕРЕМЕННЫМ? Это условие К ДЕФАЙНАМ, а не к переменным.
Я канешна не великий знаток Си, но правила требуют объявления внешних к файлу глобальных переменных через extern. И никаких других способов я не знаю.
А так да, я тоже сделал аналогичный финт на XC8 года два назад (версия вроде бы 2.01), но когда решил повторить это в Кейле для АРМов, то был немедленно послан матом эррором.
ЗЫ. К вопросу о целесообразности заявленного.
Проблема с глобальными переменными лишь говорит о том, что код написан ..... (вставьте сами, чтобы не обижаться).
Глобальных переменных много быть не должно. А остальным не в падлу и extern приклеить. :)))
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Сообщение alex_ »

Deoptim писал(а):alex_, <xc.h> подключали?
Ага, иначе бы и в версии 2,5 не заработало. С этим косяком я уже разобрался, больше не забываю подключить xc :)))
КРАМ, всё же компиляторы микроси и XC очень отличаются, по началу я даже офигевал от того как он это делает, а именно XC каждый файл .с он обрабатывает отдельно а потом склеивает всё вместе. Микроси же все инклуды подключает в общую кучу получая один файл и его разом компилирует за одно и оптимизирует. За счёт этого не надо каждый раз инклудить <xc.h> в каждом .с файле, и в экстернах смысл пропадает постольку компилятор в итоге видит только один склеенный файл main.c в котором все переменные и все функции проекта.
Друг Кота
Аватара пользователя
Сообщения: 25862
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="alex_",url="/forum/viewtopic.php?p=4282067#p4282067"]в экстернах смысл пропадает постольку компилятор в итоге[/uquote]
Не нужно собственную частную целесообразность распространять на стандарт языка.
Не все что удобно будет безопасно. Объявление переменных - это выделение памяти, а определение литералов и собственных типов - это просто инструкции препроцессора. Поэтому в этих РАЗНЫХ процессах действуют РАЗНЫЕ правила.
И если Микрочип решил причесать вольности в компиляторе, то это их право и святая обязанность. Иначе переносимости не добъешься.
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Сообщение alex_ »

Я абсолютно не спорю с Микрочипом, я про то, что насколько сильно микроси отклонились от языка, такое чувство (при переносе кода), как будто с китайского на татарский переводишь. Хотя не спорю, микроси удобнее и старт быстрее.
Не все что удобно будет безопасно.
Поэтому и слажу с него, глюки оптимизатора задолбали настолько, что готов все свои проекты перенести на МПЛаб.
А кстати насколько язык c позволяет партировать код из MPLAB в среду CubeIDE, что планируется в ближайшем будущем.
Друг Кота
Аватара пользователя
Сообщения: 25862
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="alex_",url="/forum/viewtopic.php?p=4282106#p4282106"]из MPLAB в среду CubeIDE[/uquote]
Я не пользуюсь средой STM-а. Предпочитаю Keil. В Keil переносится на ура. Но нужно понимать, что переносится только аппаратно независимый код. То есть инициализацию, драйверы и обработчики прерываний нужно писать заново.
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Сообщение alex_ »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4282109#p4282109"]То есть инициализацию, драйверы и обработчики прерываний нужно писать заново.[/uquote]
Это да, знаем, проходили :)
mikroC for PIC32 -> mikroC for ARM
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Сообщение alex_ »

Ботлоадером никто из гармонии случайно не пользовался? Я проект создал, залил, а где программу взять которая бы взаимодействовала с этим загрузчиком или она где то в самой среде MPLAB'a. Нашёл на просторах интернета пакет с программой PIC32UBL.exe (AN1388_Source_Code_2014_02_14), но это старьё уже не работает :facepalm:
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Сообщение alex_ »

Ещё один момент выяснил дойдя до bootloader'a, настройки я храню за пределами основной прошивки, чтобы при перезаписи настроек не потереть прошивку, делал это вот так

Код: Выделить всё

const unsigned char __attribute__((address(0x1D020000))) ConstTST []= {1,2,3,4,5,6,7,8,9,0};
Когда я открыл файл прошивки то несколько приофигел, если я использую одну константу компилятор ещё переваривает, если 2 константы с разными адресами, то тупо делит прошивку и часть ее располагает между этими константами, где по идее ничего лишнего быть не должно :kill:
---
Основная прошивка должна лежать по адресу 0x1D000000-0x1D011000, после деления получаем 0x1D000000-0x1D00ECD0 и 0x1D020000-0x1D022010, константы располагаются по адресам 0x1D020000, 0x1D021000, 0x1D022000, и как раз оказываются в прошивке. А в диапазоне: 0x1D00ECD0 - 0x1D020000 одни FF :facepalm:
Модератор
Аватара пользователя
Сообщения: 4618
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

alex_ писал(а):то тупо делит прошивку и часть ее располагает между этими константами, где по идее ничего лишнего быть не должно
Кто ж такое Вам сказал, что не должно ?
Вы зарезервировали для своих нужд эти адреса ? Скорее всего - нет. А компилятору пофиг, свободно - он забрал :))
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Сообщение alex_ »

Спасибо за наводку, поскольку среда для меня новая, ещё не во всём разобрался.
Зарезервировал память строкой: -mreserve=prog@0x1D020000:0x1D023000, но теперь константы туда положить не могу :facepalm:
Модератор
Аватара пользователя
Сообщения: 4618
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

Вы если вмешиваетесь в адресацию, то делать это необходимо с помощью скрипта линкера.
Родился
Сообщения: 6
Зарегистрирован: Пт окт 28, 2022 14:28:02

Сообщение Александр МК »

Добрый день!
Подскажите, как передать extern char * _Lidata; из main.c в *.s?

Пробую использовать даташит, поэтому не заморачиваюсь с именами переменных. Проц в макете 877А


#include "main.h"
#include <xc.h>
//==============
unsigned int volt;
float inp_volt;
float akb_volt;
float out_volt;
unsigned char inp;
unsigned char akb;
unsigned char out;
unsigned char log, low_akb;
unsigned char uart;
unsigned char temp;
#define Baud_rate 9600
volatile unsigned char temp2;
extern char * _Lidata;

void barfunc();

void UART_Initialize()
{
TRISC=0X00;




Программа на асм:

#include <xc.inc>

psect barfunc,local,class=CODE,delta=2 ; PIC10/12/16
; psect barfunc,local,class=CODE,reloc=2 ; PIC18

global _ds19 ; extern of bar function goes in the C source file
_ds19:

movwf PORTA

; movf PORTA,w ; here we use a symbol defined via xc.inc


return
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 151
Зарегистрирован: Ср дек 01, 2021 15:09:09

Сообщение PenguinChik »

Добрый день.
Подскажите, при написании программы на ассемблере, используются большие или маленькие буквы? Я повторил пример из самоучителя, там было написано большими буквами, у меня повылазили ошибки при компиляции. Видел, что многие используют маленькие буквы. Размер букв имеет значение в ассемблере или нет?
Друг Кота
Аватара пользователя
Сообщения: 25862
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Для написания резервированного синтаксиса ассемблера не имеет. Для остального кода зависит от настроек среды, но по дефолту имеет значение. То есть имена регистров и своих переменных чувствительны к регистру.
Ответить

Вернуться в «PIC»