芯片破解LPC2148更新用户程序
| 芯片破解在网上爬行了很久才找到一个介绍USBMEM_BOOTLOADER的且有源代码的论坛,用KEIL 编译后结果不能运行,后来才找到问题的根源: //usbhw.c void USB_Init (void) { PINSEL1 &= ~0xC000C000; //PINSEL1 |= 0x40004000; //这是原来的程序 PINSEL1 |= 0x80004000; /* Select USB Link, VBUS */ 原来得改一下才能用到我的板子上面。 另外,芯片破解原来的程序是在复位时检测P0.15是否为低来判断是进入用户程序,还是USB IAP程序,我针对我的板子改了一下,我用了两个按钮来控制它,当按下P0.21的按钮时运行用户程序,当按下P0.22的按钮时则运行USB IAP程序: 首先要在sbl_config.h中做一下修改: #define USER_START_SECTOR 2 //用户程序起始扇区 #define MAX_USER_SECTOR 26 //最大扇区 LPC2146是 14,LPC2148是26 #define ISP_ENTRY_GPIO_REG 0xE0028000 /* Port */ #define ISP_ENTRY_PIN21 21 /* User Code Pin */ //这里原来是 15 #define ISP_ENTRY_PIN22 22 /* USB IAP Pin */ //这个是增加的 然后把sbl_iap.c里面的相关内容修改一下: void check_isp_entry_pin(void) { while(1) { if(!( (*(volatile unsigned *)ISP_ENTRY_GPIO_REG) & (0x1<<isp_entry_pin21)) )[="" size][="" font][="" backcolor][="" color] { execute_user_code(); break; } if(!( (*(volatile unsigned *)ISP_ENTRY_GPIO_REG) & (0x1<<isp_entry_pin22)) )[="" size][="" font][="" backcolor][="" color] { break; // Enter ISP mode } } } |

芯片解密