kopia lustrzana https://github.com/cv007/XC3216
79 wiersze
2.7 KiB
Plaintext
79 wiersze
2.7 KiB
Plaintext
Here is the info needed to remove restrictions on the GPL licensed XC8-AVR compiler
|
|
|
|
This is done on a Linux pc, so only refers to the Linux version.
|
|
|
|
|
|
change data at file offset specified for the 3 files cc1,cc1plus,lto1
|
|
|
|
objdump will show the global var virtual addresses, and the .data section virtual address
|
|
is used to figure out where the vars are located in the file-
|
|
virtual var address - virtual section base address + section file offset = var file offset
|
|
|
|
The vars and what they do can be found in the gpl source code available from microchip.
|
|
|
|
This example is for version 2.20 and and the same method will work for later versions also (until they
|
|
change their methods). Earlier versions did not use global variables so another method was used which
|
|
was a little more difficult as you needed to modify the code instead.
|
|
|
|
==cc1==
|
|
|
|
objdump -T cc1 | grep license_valid
|
|
|
|
00000000017fe880 g DO .data 0000000000000008 Base mchp_xccov_license_valid
|
|
00000000017fe878 g DO .data 0000000000000008 Base mchp_avr_license_valid
|
|
|
|
objdump -h cc1 | grep " .data "
|
|
|
|
25 .data 000086f0 00000000017f6860 00000000017f6860 011f6860 2**5
|
|
|
|
cc1-
|
|
0x17fe878 - 0x17f6860 = 0x8018 +011f6860 = file offset 0x11fe878 - change FFFFFFFFFFFFFFFF to 0200000000000000
|
|
0x17fe880 - 0x17f6860 = 0x8020 +011f6860 = file offset 0x11fe880 - change FFFFFFFFFFFFFFFF to 0900000000000000
|
|
|
|
|
|
|
|
==cc1plus==
|
|
|
|
objdump -T cc1plus | grep license_valid
|
|
|
|
0000000001985980 g DO .data 0000000000000008 Base mchp_xccov_license_valid
|
|
0000000001985978 g DO .data 0000000000000008 Base mchp_avr_license_valid
|
|
|
|
objdump -h cc1plus | grep " .data "
|
|
|
|
25 .data 000087d0 000000000197d880 000000000197d880 0137d880 2**5
|
|
|
|
cc1plus-
|
|
0x1985978 - 0x197d880 = 80F8 +0x137d880 = file offset 0x1385978 - change FFFFFFFFFFFFFFFF to 0200000000000000
|
|
0x1985980 - 0x197d880 = 8100 +0x137d880 = file offset 0x1385980 - change FFFFFFFFFFFFFFFF to 0900000000000000
|
|
|
|
|
|
|
|
==lto1==
|
|
|
|
objdump -T lto1 | grep license_valid
|
|
|
|
0000000001713660 g DO .data 0000000000000008 Base mchp_xccov_license_valid
|
|
0000000001713658 g DO .data 0000000000000008 Base mchp_avr_license_valid
|
|
|
|
|
|
objdump -h lto1 | grep " .data "
|
|
|
|
25 .data 000083d0 000000000170b960 000000000170b960 0110b960 2**5
|
|
|
|
lto1-
|
|
0x1713658 - 0x170b960 = 7CF8 +0x110b960 = file offset 0x1113658 - change FFFFFFFFFFFFFFFF to 0200000000000000
|
|
0x1713660 - 0x170b960 = 7D00 +0x110b960 = file offset 0x1113660 - change FFFFFFFFFFFFFFFF to 0900000000000000
|
|
|
|
|
|
|
|
Version 2.31 - Windows
|
|
|
|
from FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
|
to 02 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00
|
|
file offset
|
|
cc1.exe 0xC98648
|
|
cc1plus.exe 0xDC03A8
|
|
lto1.exe 0xC10CA8
|
|
|