lpc.c
来自「某个ARM9板子的实际bootloader 对裁剪」· C语言 代码 · 共 76 行
C
76 行
/***************************************************************************** Copyright Storlink Corp 2005. All rights reserved. *--------------------------------------------------------------------------* Name : lpc.c* Description :
* Handle LPC module
** History*
* Date Writer Description
* ----------- ----------- -------------------------------------------------
* 04/19/2005 Gary Chen Implement from Jason's Redboot code
*****************************************************************************/#include <define.h>
#include <board_config.h>
#include <sl2312.h>
#include "lpc.h"unsigned char MBPnP_key[4]= {0x87, 0x01, 0x55, 0x55};void LPCEnterMBPnP(void){ int i; // unsigned char key[4] = {0x87, 0x01, 0x55, 0x55}; for (i = 0; i<4; i++) HAL_WRITE_UINT8(LPC_KEY_ADDR, MBPnP_key[i]);}void LPCExitMBPnP(void){ HAL_WRITE_UINT8(LPC_KEY_ADDR, 0x02); HAL_WRITE_UINT8(LPC_DATA_ADDR, 0x02);}void LPCSetConfig(char LdnNumber, char Index, char data){ LPCEnterMBPnP(); // Enter IT8712 MB PnP mode HAL_WRITE_UINT8(LPC_KEY_ADDR, 0x07); HAL_WRITE_UINT8(LPC_DATA_ADDR, LdnNumber); HAL_WRITE_UINT8(LPC_KEY_ADDR, Index); HAL_WRITE_UINT8(LPC_DATA_ADDR, data); LPCExitMBPnP();}char LPCGetConfig(char LdnNumber, char Index){ char rtn; LPCEnterMBPnP(); // Enter IT8712 MB PnP mode HAL_WRITE_UINT8(LPC_KEY_ADDR, 0x07); HAL_WRITE_UINT8(LPC_DATA_ADDR, LdnNumber); HAL_WRITE_UINT8(LPC_KEY_ADDR, Index); HAL_READ_UINT8(LPC_DATA_ADDR, rtn); LPCExitMBPnP(); return rtn;}int SearchIT8712(void){ unsigned char Id1, Id2; unsigned short Id; LPCEnterMBPnP(); HAL_WRITE_UINT8(LPC_KEY_ADDR, 0x20); /* chip id byte 1 */ HAL_READ_UINT8(LPC_DATA_ADDR, Id1); HAL_WRITE_UINT8(LPC_KEY_ADDR, 0x21); /* chip id byte 2 */ HAL_READ_UINT8(LPC_DATA_ADDR, Id2); Id = (Id1 << 8) | Id2;// diag_printf("ID is %x \n", Id); LPCExitMBPnP(); if (Id == 0x8712) return 0; else return 1;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?