Ukladani nastaveni v programu pro MCU
Zdeněk Aster
Zdenek.Aster na seznam.cz
Středa Červen 1 18:16:03 CEST 2016
Tak ješte jeden pokus, já bych to zkontroloval, ale koukal jsem zběžně na
pár asm instrukcí picu co tam jsou a velmi rychle mě to přešlo :-)
; LST file generated by mikroListExporter - v.2.0
; Date/Time: 1. 6. 2016 18:15:00
;----------------------------------------------
;Address Opcode ASM
0x0000 0xF000EF28 GOTO 80
0x0004 0x0000 NOP
0x0006 0x0000 NOP
0x0008 0xF000EF00 GOTO 0
0x000C 0x0000 NOP
0x000E 0x0000 NOP
0x0010 0x0000 NOP
0x0012 0x0000 NOP
0x0014 0x0000 NOP
0x0016 0x0000 NOP
0x0018 0xD7F3 BRA 0
_writeeeprom:
;MyProject.mpas,19 :: begin
;MyProject.mpas,20 :: for n:=0 to size do begin
0x001C 0x6A01 CLRF R1
0x001E 0x6A02 CLRF R2
L__writeeeprom1:
0x0020 0x5002 MOVF R2, 0
0x0022 0x5C44 SUBWF FARG_writeeeprom_size+1, 0
0x0024 0xE102 BNZ L__writeeeprom8
0x0026 0x5001 MOVF R1, 0
0x0028 0x5C43 SUBWF FARG_writeeeprom_size, 0
L__writeeeprom8:
0x002A 0xE311 BNC L__writeeeprom5
;MyProject.mpas,21 :: x := Oblast^[n]; // v X je vzdy dato
alespon doufam
0x002C 0x5001 MOVF R1, 0
0x002E 0x2441 ADDWF FARG_writeeeprom_oblast, 0
0x0030 0x6EE9 MOVWF FSR0L
0x0032 0x5002 MOVF R2, 0
0x0034 0x2042 ADDWFC FARG_writeeeprom_oblast+1, 0
0x0036 0x6EEA MOVWF FSR0H
0x0038 0xF003CFEE MOVFF POSTINC0, R3
;MyProject.mpas,22 :: end;
0x003C 0x5002 MOVF R2, 0
0x003E 0x1844 XORWF FARG_writeeeprom_size+1, 0
0x0040 0xE102 BNZ L__writeeeprom9
0x0042 0x5043 MOVF FARG_writeeeprom_size, 0
0x0044 0x1801 XORWF R1, 0
L__writeeeprom9:
0x0046 0xE003 BZ L__writeeeprom5
0x0048 0x4A01 INFSNZ R1, 1
0x004A 0x2A02 INCF R2, 1
0x004C 0xD7E9 BRA L__writeeeprom1
L__writeeeprom5:
;MyProject.mpas,23 :: end;
L_end_writeeeprom:
0x004E 0x0012 RETURN 0
; end of _writeeeprom
_main:
;MyProject.mpas,28 :: begin
;MyProject.mpas,30 :: writeeeprom( PBytearray(@X1), SizeOf(X
1), 0 );
0x0050 0x0E36 MOVLW _X1
0x0052 0x6E41 MOVWF FARG_writeeeprom_oblast
0x0054 0x0E00 MOVLW hi_addr(_X1)
0x0056 0x6E42 MOVWF FARG_writeeeprom_oblast+1
0x0058 0x0E0B MOVLW 11
0x005A 0x6E43 MOVWF FARG_writeeeprom_size
0x005C 0x0E00 MOVLW 0
0x005E 0x6E44 MOVWF FARG_writeeeprom_size+1
0x0060 0x6A45 CLRF FARG_writeeeprom_pozice
0x0062 0x6A46 CLRF FARG_writeeeprom_pozice+1
0x0064 0xDFDB RCALL _writeeeprom
;MyProject.mpas,31 :: writeeeprom( PBytearray(@X2), SizeOf(X
2), 0 );
0x0066 0x0E15 MOVLW _X2
0x0068 0x6E41 MOVWF FARG_writeeeprom_oblast
0x006A 0x0E00 MOVLW hi_addr(_X2)
0x006C 0x6E42 MOVWF FARG_writeeeprom_oblast+1
0x006E 0x0E21 MOVLW 33
0x0070 0x6E43 MOVWF FARG_writeeeprom_size
0x0072 0x0E00 MOVLW 0
0x0074 0x6E44 MOVWF FARG_writeeeprom_size+1
0x0076 0x6A45 CLRF FARG_writeeeprom_pozice
0x0078 0x6A46 CLRF FARG_writeeeprom_pozice+1
0x007A 0xDFD0 RCALL _writeeeprom
;MyProject.mpas,32 :: end.
L_end_main:
0x007C 0xD7FF BRA $+0
; end of _main
Symbol List:
//** Routines locations **
//ADDRESS SIZE PROCEDURE
//----------------------------------------------
0x001C [52] _writeeeprom
0x0050 [46] _main
//** Variables locations **
//ADDRESS SIZE VARIABLE
//----------------------------------------------
0x0000 [1] R0
0x0001 [2] writeeeprom_n
0x0001 [1] R1
0x0002 [1] R2
0x0003 [1] writeeeprom_x
0x0003 [1] R3
0x0004 [4] Get_Fosc_kHz_local_result
0x0004 [1] R4
0x0005 [1] R5
0x0006 [1] R6
0x0007 [1] R7
0x0008 [1] R8
0x0009 [1] R9
0x000A [1] R10
0x000B [1] R11
0x000C [1] R12
0x000D [1] R13
0x000E [1] R14
0x000F [1] R15
0x0010 [1] R16
0x0011 [1] R17
0x0012 [1] R18
0x0013 [1] R19
0x0014 [1] R20
0x0015 [33] _X2
0x0036 [11] _X1
0x0041 [2] FARG_writeeeprom_oblast
0x0043 [2] FARG_writeeeprom_size
0x0045 [2] FARG_writeeeprom_pozice
---------- Původní zpráva ----------
Od: Jan Waclawek <konfera na efton.sk>
Komu: HW-news <hw-list na list.hw.cz>
Datum: 1. 6. 2016 18:06:04
Předmět: Re: Ukladani nastaveni v programu pro MCU
"x by chcelo volatile alebo globalne alebo oboje. Takto samotny zapis do x
(a aj citanie zo zdroja) ten chytrak vyoptimalizoval... ;-)
Zda sa, ze tie pointre su len jednobytove.
wek
PS. Ten odpor je opodstatneny... ;-)
----- Original Message ---------------
>Přiznám, se že PIC vůbec neznám a vždycky jsem měl k němu odpor, přiznávám
>že neopodstatněný :-) Ale tohle je výsledek.
>
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list"
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20160601/d07828bd/attachment.html>
Další informace o konferenci Hw-list