#include <stdio.h>
typedef enum
{
PORT_LOCK_P00 = 0x00000002,
PORT_LOCK_P01 = 0x00000004,
PORT_LOCK_P02 = 0x00000008,
PORT_LOCK_P03 = 0x00000010,
PORT_LOCK_P04 = 0x00000020,
PORT_LOCK_P05 = 0x00000040,
PORT_LOCK_P06 = 0x00000080,
PORT_LOCK_P08 = 0x00000100,
PORT_LOCK_P09 = 0x00000200,
PORT_LOCK_P10 = 0x00000400,
PORT_LOCK_P11 = 0x00000800,
PORT_LOCK_P12 = 0x00001000,
PORT_LOCK_P17 = 0x00002000,
PORT_LOCK_P18 = 0x00004000,
PORT_LOCK_P19 = 0x00008000,
PORT_LOCK_P20 = 0x00010000,
PORT_LOCK_P21 = 0x00020000,
PORT_LOCK_P22 = 0x00040000,
PORT_LOCK_P23 = 0x00080000,
PORT_LOCK_P24 = 0x00100000,
PORT_LOCK_AP0 = 0x00200000,
PORT_LOCK_AP1 = 0x00400000,
PORT_LOCK_AP2 = 0x00800000,
PORT_LOCK_AP3 = 0x01000000,
PORT_LOCK_AP4 = 0x02000000,
PORT_LOCK_AP5 = 0x04000000,
PORT_LOCK_LVDS = 0x08000000
} port_lock_t;
const port_lock_t PortL_Array[] = {
PORT_LOCK_P00,
PORT_LOCK_P01,
PORT_LOCK_P02,
PORT_LOCK_P03,
PORT_LOCK_P04,
PORT_LOCK_P05,
PORT_LOCK_P06,
PORT_LOCK_P08,
PORT_LOCK_P09,
PORT_LOCK_P10,
PORT_LOCK_P11,
PORT_LOCK_P12,
PORT_LOCK_P17,
PORT_LOCK_P18,
PORT_LOCK_P19,
PORT_LOCK_P20,
PORT_LOCK_P21,
PORT_LOCK_P22,
PORT_LOCK_P23,
PORT_LOCK_P24,
PORT_LOCK_AP0,
PORT_LOCK_AP1,
PORT_LOCK_AP2,
PORT_LOCK_AP3,
PORT_LOCK_AP4,
PORT_LOCK_AP5,
PORT_LOCK_LVDS
};
const unsigned int CfgCnt = sizeof(PortL_Array) / sizeof(PortL_Array[0]);
void PORT_Unlock(port_lock_t port_unlock)
{
printf ("The value of port_unlock is hex integer %x \n", port_unlock
); }
void InitUnlock(const port_lock_t port[], unsigned char cnt)
{
unsigned long int msk;
unsigned char n;
msk = (unsigned long int)0x0;
for (n = 0; n < cnt; n++)
{
msk |= port[n];
}
PORT_Unlock(msk);
}
int main (void)
{
InitUnlock(PortL_Array, CfgCnt);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0eXBlZGVmIGVudW0KewogICAgUE9SVF9MT0NLX1AwMCAgPSAweDAwMDAwMDAyLAogICAgUE9SVF9MT0NLX1AwMSAgPSAweDAwMDAwMDA0LAogICAgUE9SVF9MT0NLX1AwMiAgPSAweDAwMDAwMDA4LAogICAgUE9SVF9MT0NLX1AwMyAgPSAweDAwMDAwMDEwLAogICAgUE9SVF9MT0NLX1AwNCAgPSAweDAwMDAwMDIwLAogICAgUE9SVF9MT0NLX1AwNSAgPSAweDAwMDAwMDQwLAogICAgUE9SVF9MT0NLX1AwNiAgPSAweDAwMDAwMDgwLAogICAgUE9SVF9MT0NLX1AwOCAgPSAweDAwMDAwMTAwLAogICAgUE9SVF9MT0NLX1AwOSAgPSAweDAwMDAwMjAwLAogICAgUE9SVF9MT0NLX1AxMCAgPSAweDAwMDAwNDAwLAogICAgUE9SVF9MT0NLX1AxMSAgPSAweDAwMDAwODAwLAogICAgUE9SVF9MT0NLX1AxMiAgPSAweDAwMDAxMDAwLAogICAgUE9SVF9MT0NLX1AxNyAgPSAweDAwMDAyMDAwLAogICAgUE9SVF9MT0NLX1AxOCAgPSAweDAwMDA0MDAwLAogICAgUE9SVF9MT0NLX1AxOSAgPSAweDAwMDA4MDAwLAogICAgUE9SVF9MT0NLX1AyMCAgPSAweDAwMDEwMDAwLAogICAgUE9SVF9MT0NLX1AyMSAgPSAweDAwMDIwMDAwLAogICAgUE9SVF9MT0NLX1AyMiAgPSAweDAwMDQwMDAwLAogICAgUE9SVF9MT0NLX1AyMyAgPSAweDAwMDgwMDAwLAogICAgUE9SVF9MT0NLX1AyNCAgPSAweDAwMTAwMDAwLAogICAgUE9SVF9MT0NLX0FQMCAgPSAweDAwMjAwMDAwLAogICAgUE9SVF9MT0NLX0FQMSAgPSAweDAwNDAwMDAwLAogICAgUE9SVF9MT0NLX0FQMiAgPSAweDAwODAwMDAwLAogICAgUE9SVF9MT0NLX0FQMyAgPSAweDAxMDAwMDAwLAogICAgUE9SVF9MT0NLX0FQNCAgPSAweDAyMDAwMDAwLAogICAgUE9SVF9MT0NLX0FQNSAgPSAweDA0MDAwMDAwLAogICAgUE9SVF9MT0NLX0xWRFMgPSAweDA4MDAwMDAwCn0gcG9ydF9sb2NrX3Q7Cgpjb25zdCBwb3J0X2xvY2tfdCBQb3J0TF9BcnJheVtdID0gewogICAgUE9SVF9MT0NLX1AwMCwKICAgIFBPUlRfTE9DS19QMDEsCiAgICBQT1JUX0xPQ0tfUDAyLAogICAgUE9SVF9MT0NLX1AwMywKICAgIFBPUlRfTE9DS19QMDQsCiAgICBQT1JUX0xPQ0tfUDA1LAogICAgUE9SVF9MT0NLX1AwNiwKICAgIFBPUlRfTE9DS19QMDgsCiAgICBQT1JUX0xPQ0tfUDA5LAogICAgUE9SVF9MT0NLX1AxMCwKICAgIFBPUlRfTE9DS19QMTEsCiAgICBQT1JUX0xPQ0tfUDEyLAogICAgUE9SVF9MT0NLX1AxNywKICAgIFBPUlRfTE9DS19QMTgsCiAgICBQT1JUX0xPQ0tfUDE5LAogICAgUE9SVF9MT0NLX1AyMCwKICAgIFBPUlRfTE9DS19QMjEsCiAgICBQT1JUX0xPQ0tfUDIyLAogICAgUE9SVF9MT0NLX1AyMywKICAgIFBPUlRfTE9DS19QMjQsCiAgICBQT1JUX0xPQ0tfQVAwLAogICAgUE9SVF9MT0NLX0FQMSwKICAgIFBPUlRfTE9DS19BUDIsCiAgICBQT1JUX0xPQ0tfQVAzLAogICAgUE9SVF9MT0NLX0FQNCwKICAgIFBPUlRfTE9DS19BUDUsCiAgICBQT1JUX0xPQ0tfTFZEUwp9OwoKY29uc3QgdW5zaWduZWQgaW50IENmZ0NudCA9IHNpemVvZihQb3J0TF9BcnJheSkgLyBzaXplb2YoUG9ydExfQXJyYXlbMF0pOwoKdm9pZCBQT1JUX1VubG9jayhwb3J0X2xvY2tfdCBwb3J0X3VubG9jaykKewogICAgcHJpbnRmICgiVGhlIHZhbHVlIG9mIHBvcnRfdW5sb2NrIGlzIGhleCBpbnRlZ2VyICV4IFxuIiwgcG9ydF91bmxvY2spOwp9Cgp2b2lkIEluaXRVbmxvY2soY29uc3QgcG9ydF9sb2NrX3QgcG9ydFtdLCB1bnNpZ25lZCBjaGFyIGNudCkKewogICAgdW5zaWduZWQgbG9uZyBpbnQgbXNrOwogICAgdW5zaWduZWQgY2hhciBuOwogICAgCiAgICBtc2sgPSAodW5zaWduZWQgbG9uZyBpbnQpMHgwOwoKICAgIGZvciAobiA9IDA7IG4gPCBjbnQ7IG4rKykKICAgIHsKCW1zayB8PSBwb3J0W25dOwogICAgfQoKICAgIFBPUlRfVW5sb2NrKG1zayk7Cn0KCmludCBtYWluICh2b2lkKQp7CiAgICBJbml0VW5sb2NrKFBvcnRMX0FycmF5LCBDZmdDbnQpOwoKICAgIHJldHVybiAwOwp9