Microchip XC8/XC16/XC32 破解
复制下列代码,另存为xclm.c,然后用mingw编译(推荐Code::Blocks的ide)生成xclm.exe,然后替换掉安装目录里面的同名文件即可。/******************************************************************************
* xclm.c - A replacement license server for Microchip embedded compilers
*
*****************************************************************************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
enum
{
LICENSE_FREE,
LICENSE_STANDARD,
LICENSE_PRO,
LICENSE_NULL,
LICENSE_NOCPP,
LICENSE_CPPFREE,
LICENSE_CPPFULL
};
/* Padded keystring for XC8 compiler */
const char XC8_KEY[] = "120205690315959428539973816151144999076498629234049888"
"179227155534183820578631309018645587360933525814619915"
"779526071941849199599867328321377639683720790016145394"
"178294936006671919157552224249424396156390966410329115"
"909578096551465127991840510571525598801543710978110203"
"982753256678760352233698494166181105701471577863949973"
"752378527793703095602570185318279000307654710756304884"
"332086971157374238079344503160762531771453544441183117"
"818224971852635709182448998796203508335756172022603393"
"785870328131267807990054177348691152537065623705744096"
"622171290262732073236149224291304052855537234103307757"
"779806424202430488281521000914602653822069627155202082"
"274335001015294801198690117625951676366998171835575234"
"880703719555742347294083595208861666202572853755813079"
"282586487282173705566196898952662018776810629200817792"
"338135876828426412432431480282173674506720693507626895"
"304345939375032966363775750624733239923482883107733905"
"27680200757984356120205690";
int main(int argc, char *argv[])
{
int license = LICENSE_FREE;
int ii;
for (ii = 0; ii < argc; ++ii)
{
if (!strcmp(argv, "swxc32") ||
!strcmp(argv, "swxc16") ||
!strcmp(argv, "swxc8"))
{
license = LICENSE_PRO;
}
else if (!strcmp(argv, "swxcpp32"))
{
license = LICENSE_CPPFULL;
}
else if (!strcmp(argv, "-hash"))
{
int index = atoi(argv);
printf("%.10s", &XC8_KEY);
}
}
return license;
}
沙发,楼主有编译好了没 。 本帖最后由 liansh2002 于 2013-6-13 15:56 编辑
感谢楼主,测试可用。
编译不需要IDE的,安装了MinGW后运行 gcc -o xclm xclm.c 就能编译了。 xclm.exe不知道编译结果跟楼上是否相同 感谢楼主! XC16 有人试过没有?如何看是否成功? 有用过的朋友将,将结果汇到此贴! 反正XC8测试可用,我装的时候选了Free版,没选60天试用Pro,现在可以用Pro优化级别。XC16和XC32没法试,因为装的时候选的是60天试用,现在还有59天……只能知道目前最高优化级别可用。 {:lol:}{:lol:}{:lol:}{:lol:} i55x 发表于 2013-6-13 22:35 static/image/common/back.gif
反正XC8测试可用,我装的时候选了Free版,没选60天试用Pro,现在可以用Pro优化级别。XC16和XC32没法试,因 ...
这个是哪里破解的?目前XC8使用正常 请问楼主对应是的哪个版本的XC8 ? 正想装个试试。 正需要,谢谢啦! 沙发,好东西 XC8测试可用,用3楼的编译方法,谢谢楼主和3楼 i55x 发表于 2013-6-13 22:35 static/image/common/back.gif
反正XC8测试可用,我装的时候选了Free版,没选60天试用Pro,现在可以用Pro优化级别。XC16和XC32没法试,因 ...
安装时是免费版,怎么更改为专业版? xc16测试了,但是不知道怎么看是什么版本怎么办
编译时候找不到license的错误是没有了 mark,以后试试。 我测试了XC16,编译后的RAM,flash用使量没有区别,是否还有设置什么地方?{:dizzy:} soosqt 发表于 2013-6-14 10:46 static/image/common/back.gif
我测试了XC16,编译后的RAM,flash用使量没有区别,是否还有设置什么地方? ...
优化等级设为最高(-O3)。 好东西,这个一定要试试! 用Workstation License版的XC8、XC16编译相同的工程,对比,木有问题啊。XC32没买,没测。 呵呵,试过的同学都留个记号吧。 本帖最后由 caoxuedong 于 2013-6-14 16:44 编辑
XC32测试有问题,编译器设置为O3,编译时自己跳回FREE,代码量没有任何变化。是不是
/* Padded keystring for XC8 compiler */
const char XC8_KEY[] =
这个字符串有专门针对XC32的呢? 之前没做优化,FLASH一下子就被用完了,那个郁闷啊,现在看来有希望了。 测试了一下XC8,可以使用Pro模式,优化还是显而易见的。
XC8未优化
优化后
PICC18-Pro
MPLAB中PICC18效果
caoxuedong 发表于 2013-6-14 16:36 static/image/common/back.gif
XC32测试有问题,编译器设置为O3,编译时自己跳回FREE,代码量没有任何变化。是不是
/* Padded keystring f ...
不懂别乱叫,不贴图什么意义也没有。 本帖最后由 caoxuedong 于 2013-6-14 21:41 编辑
i55x 发表于 2013-6-14 19:26 static/image/common/back.gif
不懂别乱叫,不贴图什么意义也没有。
楼主不要NB,你的这个也不是你原创,我在Sonsivri论坛早就看过,初期的破解版本确实不能破解XC32,如果你说可以,你贴图出来,在我这里既然不能测试出来,两种编译结果一样,贴两张一样的图有什么意义呢! caoxuedong 发表于 2013-6-14 21:32 static/image/common/back.gif
楼主不要NB,你的这个也不是你原创,我在Sonsivri论坛早就看过,初期的破解版本确实不能破解XC32,如果你 ...
既然你在Sonsivri看过,怎么不贴juvaan的版本呢?我现在就能开最高优化,既然两个版本出来的代码不一样,按你的逻辑贴出来有什么意义吗? 我是说我测试的结果和marcodassi的结果一样,总是停留在Free Mode,编译的代码长度没有发生变化,-O3似乎没有发生作用,总是自己变回FREE MODE. 为了证明23楼的caoxuedong不停地在撒谎,我特意在vmware虚拟机里面装了最新的XC32 1.21
安装的时候选用Free模式,不选择60天试用Pro。
打开开始页的sample code —— Explorer 16 PIC32MX Blinky,将toolchain改为XC32,同时将优化等级选为3。
破解前:
破解后
测试代码如下:#include <plib.h>
#include <stdint.h>
// Configuration Bit settings
// SYSCLK = 80 MHz (8MHz Crystal/ FPLLIDIV * FPLLMUL / FPLLODIV)
// PBCLK = 40 MHz
// Primary Osc w/PLL (XT+,HS+,EC+PLL)
// WDT OFF
// Other options are don't care
//
#pragma config FPLLMUL = MUL_20, FPLLIDIV = DIV_2, FPLLODIV = DIV_1, FWDTEN = OFF
#pragma config POSCMOD = HS, FNOSC = PRIPLL, FPBDIV = DIV_8
#define SYS_FREQ (80000000L)
void encipher(unsigned int num_rounds, uint32_t v, uint32_t const key) {
unsigned int i;
uint32_t v0=v, v1=v, sum=0, delta=0x9E3779B9;
for (i=0; i < num_rounds; i++) {
v0 += (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + key);
sum += delta;
v1 += (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + key[(sum>>11) & 3]);
}
v=v0; v=v1;
}
void decipher(unsigned int num_rounds, uint32_t v, uint32_t const key) {
unsigned int i;
uint32_t v0=v, v1=v, delta=0x9E3779B9, sum=delta*num_rounds;
for (i=0; i < num_rounds; i++) {
v1 -= (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + key[(sum>>11) & 3]);
sum -= delta;
v0 -= (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + key);
}
v=v0; v=v1;
}
int main(void)
{
unsigned int const key={0x55aa33b6,0x55aa33b6,0x55aa33b6,0x55aa33b6};
int i;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Configure the device for maximum performance but do not change the PBDIV
// Given the options, this function will change the flash wait states, RAM
// wait state and enable prefetch cache but will not change the PBDIV.
// The PBDIV value is already set via the pragma FPBDIV option above..
SYSTEMConfig(SYS_FREQ, SYS_CFG_WAIT_STATES | SYS_CFG_PCACHE);
// Explorer16 LEDs are on lower 8-bits of PORTA and to use all LEDs, JTAG port must be disabled.
mJTAGPortEnable(DEBUG_JTAGPORT_OFF);
// Make all lower 8-bits of PORTA as output. Turn them off before changing
// direction so that we don't have unexpected flashes
mPORTAClearBits(BIT_7 | BIT_6 | BIT_5 | BIT_5 | BIT_4 | \
BIT_3 | BIT_2 | BIT_1 | BIT_0 );
mPORTASetPinsDigitalOut( BIT_7 | BIT_6 | BIT_5 | BIT_5 | BIT_4 | \
BIT_3 | BIT_2 | BIT_1 | BIT_0 );
// Now blink all LEDs ON/OFF forever.
while(1)
{
mPORTAToggleBits(BIT_7 | BIT_6 | BIT_5 | BIT_5 | BIT_4 | \
BIT_3 | BIT_2 | BIT_1 | BIT_0 );
encipher(23, 0xd, key);
decipher(23, 0xd, key);
// Insert some delay
i = 1024*1024;
while(i--);
}
}
大家可以自行测试,顺便狠抽caoxuedong的耳光。 牛逼。
xc系列的编译器是微芯推的下一代编译器。
而且现在的软件代码库也逐渐脱离c18,c30系列了。
楼主这个和谐如果完美运行,那真是好福利。 都是为大家谋福利,楼主不必与上面那位网友较劲。 支持下。 xc8测试,可以优化,但是xc16,xc32跟不破解的一样,编译出来ram,flash的使用量都没有改变 soosqt 发表于 2013-6-15 14:44 static/image/common/back.gif
xc8测试,可以优化,但是xc16,xc32跟不破解的一样,编译出来ram,flash的使用量都没有改变 ...
你没选最高优化等级。 i55x 发表于 2013-6-15 15:01 static/image/common/back.gif
你没选最高优化等级。
有同样结果的测试出来了,不要每个和我测试结果一样的朋友,你都要狠抽耳光吧!{:titter:} 支持楼主,支持楼主 i55x 发表于 2013-6-15 15:01 static/image/common/back.gif
你没选最高优化等级。
已经选择优化等级为3了,但是编译出来的结果没有变化
是否还有哪里要设置?XC8有一个 PRO选项,但是XC16和XC32没有
soosqt 发表于 2013-6-15 15:44 static/image/common/back.gif
已经选择优化等级为3了,但是编译出来的结果没有变化
是否还有哪里要设置?XC8有一个 PRO选项,但是XC16 ...
第一,你要确认你的XC16是free版还是60天试用Pro版。
第二,你要确认-O3和-O0是否有代码量的差异,我测试XC32 Free版的-O3开关无效,出来的是-O0的代码量。 本帖最后由 i55x 于 2013-6-15 17:55 编辑
caoxuedong 发表于 2013-6-15 15:19 static/image/common/back.gif
有同样结果的测试出来了,不要每个和我测试结果一样的朋友,你都要狠抽耳光吧!...
滚一边凉快去,我没兴趣搭理你。
另外问大家一个问题,既然pic32是mips体系,为毛没人用mips-sde-elf-gcc这个免费的编译器? i55x 发表于 2013-6-15 16:06 static/image/common/back.gif
第一,你要确认你的XC16是free版还是60天试用Pro版。
第二,你要确认-O3和-O0是否有代码量的差异,我测试 ...
1,安装是选择的是free版本,确定的
2,-O3和-O0都是一样的结果
Total program memory used (bytes): 0xc9a2(51618) 39%
Total data memory used (bytes): 0x1290(4752) 58% 支持楼主。 soosqt 发表于 2013-6-15 16:25 static/image/common/back.gif
1,安装是选择的是free版本,确定的
2,-O3和-O0都是一样的结果
Total program memory used (bytes): ...
选择2或者s 编译的结果:
Total program memory used (bytes): 0xb91f(47391) 36%
otal data memory used (bytes): 0x128e(4750) 57% soosqt 发表于 2013-6-15 16:30 static/image/common/back.gif
选择2或者s 编译的结果:
Total program memory used (bytes): 0xb91f(47391) 36%
otal data m ...
我测试没问题,-O0、-O1、-O2、-O3一个比一个小,XC16 v1.11,你去下一个吧。 i55x 发表于 2013-6-15 16:07 static/image/common/back.gif
滚一边凉快去,我没兴趣搭理你。
这是探讨技术的地方,你从开始回复就是一副流氓虺虺架势,要知道你这个德行,我也没性趣搭理你。让大家看看你的回复,像一个做技术的说的话吗? 晕,微芯网站没找到XC16 v1.11,只有1.10的版本啊,还没用过MPLAB IDE X。
今天正好下载测试了下,用MPLAB IDE X v1.70 + xc8 v1.11 + xc16 v1.10,利用IDE自带的例程,测试了下,2个编译器确实可以优化了,也没提示错误,优化后RAM和FLASH都减小了,当然因自带的例程没有实质程序,所以比较不是很彻底,但还是可以看到编译后RAM和FLASH占用发生变化了。
楼主辛苦了,终于可以用新的编译器了,后续要和以前用c18 c30的做到项目做下比较,看看编译的正确性咋样。
xc32没用过,PIC32没做过项目,就没测试了 mark一个,备用 安装的时候选的free
测试的时候发现free模式下可以使用最高优化级别模式编译 只不过编译的output输出信息不断的出现“优化被限制,浏览官网购买编译器”信息
之后替换xclm.exe 正常使用最高优化级别 而且没有以上输出信息 很赞一下 不懂也顶顶 太好了。。。。。。 谢谢lz
lz是很牛b的技术强 今天又测试了XC8和XC32
free安装之后完美运行pro优化等级 图我就不再贴了
楼主犀利,感谢! 同样用XC8编译器Pro模式,在MPLAB IDE 8.91 及 MPLAB X IDE 1.8编译后差异 ,明显MPLAB IDE 8.91 优化好于MPLAB X IDE 1.8
楼主辛苦。很好很强大! 很久没搞pic,定定楼主 ! 本帖最后由 caoxuedong 于 2013-6-18 21:32 编辑
szeng 发表于 2013-6-18 15:52 static/image/common/back.gif
同样用XC8编译器Pro模式,在MPLAB IDE 8.91 及 MPLAB X IDE 1.8编译后差异 ,明显MPLAB IDE 8.91 优化好于M ...
看Microchip官网,估计MPLAB IDE 最后更新至v8.91也就到头了,说是到6月底就会停止更新,以后就要用又大又慢的MPLAB X IDE了。 XC8,XC16都可以使用。XC16测试了一下,用-Os模式优化效果最好。 试试看,本来想花几百块买XC8的。{:smile:} 顶!
支持!
楼主自己破解的,还是microchip的人故意放出来的啊?
XC8替换文件后还要设置吗?我没设置也小多了 这个破解方法确实是在sonsivri网站上有的,但是,还是感谢楼主发到这个论坛上来,如果这样也叫NB的话,那我们希望这样的NB人多点,说别人是NB的人少点。顺便说一下,xc32,xc16,xc8都可以用这个办法破解,破解完了后,pro模式可以使用,有优化。 这玩意怎么搞啊?MINGW下载好后怎么使用?哪个执行文件? 本帖最后由 cooleryou 于 2013-7-15 16:27 编辑
我用MPLAB+PICC9.83编译的代码如下:
用X+RC8编译后代码如下:
但是在左面RAM显示有问题:
总的看来RC8的编译效率还是赶不上PICC,而且IDE也有些问题,BUG多多。 {:titter:}{:titter:}{:titter:}{:titter:}{:titter:}{:titter:} 请教一下,XC16和XC32安装需要SERIEAL NUMBER才能安装?谁能提供一下?! 感谢,在PIC16F1503 可以用。 mark pic MPLAB X 破解 XC16的破解需要 将程序中的XC8_key[...]改成XC16_key么? cooleryou 发表于 2013-7-15 16:26 static/image/common/back.gif
我用MPLAB+PICC9.83编译的代码如下:
XC8不就是PICC吗,bin文件夹下连文件名都是一样的! 感谢分享! XC16真的变化不大,没有截图,实事求是的说。 这个不错,标注一下PIC编译器破解
为什么PIC的编译器是封闭的啊,使用开源编译器多好啊 i55x 发表于 2013-6-15 16:07 static/image/common/back.gif
滚一边凉快去,我没兴趣搭理你。
另外问大家一个问题,既然pic32是mips体系,为毛没人用mips-sde-elf-gc ...
可以用code sourcery啊,国外有人在用,只是搞起来很麻烦,外设什么的头文件什么的 谢谢,我的可以XC8 一直不敢尝试新的编译器,这下可以放心试用了,感谢楼主 XC16真的变化不大,没有截图,实事求是的说。
XC16 is identical to C30;
XC8 is the old (and highly trusted) PICC + PICC18. I am still using 9.6x of PICC.
C18 is dead - a good thing as that sucker is terrible. 请问这个方法XC32能不能用呢? PSIR 发表于 2013-9-12 14:12 static/image/common/back.gif
请问这个方法XC32能不能用呢?
你试试不就知道了 必须要标记的啊……坐等…… 本帖最后由 PSIR 于 2013-9-13 14:54 编辑
我用 XC32 做了一下测试,分别以原来的和用新的 xclm.exe 覆盖过,并且从 Level 0~Level s 五个层级的优化来比较,结果如下:
以下是未优化前 Level 0~Level s 的 Code Size
Level 0
Level 1
Level 2
Level 3
Level s
以下是用新的 xclm.exe 覆盖过原来并做 Level 0~Level s 优化的 Code Size
Level 0
Level 1
Level 2
Level 3
Level s
我发现上面的 Level 0 和 Level 3,其 Code Size 比原本未覆盖 xclm.exe 还大,不知道是什麽原因?
有没有人回答一下MinGW 是怎么使用的? 收藏备用 Mark!!!
Mark!!!
不明啥意思 mark....... mark
以后再用 感谢楼主 O(∩_∩)O谢谢分享 PIC单片机感觉用的比较麻烦,性能还不错.看看新版本编译器如何 >C18 is dead - a good thing as that sucker is terrible.
If you need USB, C18 is the only way to go. 谢谢楼主 很好用啊 好东西,收藏了,楼主辛苦 谢谢,非常好用 谢谢一楼、二楼!下一个来试试效果。 先收藏,以后有用。 Total program memory used (bytes): 0x5e0e(24078) 99%{:huffy:}{:huffy:}{:huffy:}{:huffy:}{:huffy:}{:huffy:}{:huffy:}{:huffy:} Total program memory used (bytes): 0x4faa(20394) 84% Total program memory used (bytes): 0x3f78(16248) 67%{:lol:}{:lol:}{:lol:}{:lol:}{:lol:}{:lol:} 十分感谢楼主,2013年一直苦于99%的程序代码!!有机会请您喝酒! 顺便狠抽 i55x 的耳光。 {:lol:}{:lol:}{:lol:}{:lol:}{:lol:}{:lol:}{:lol:}{:lol:}{:lol:}
页:
[1]
2