//这个是矩阵键盘映射表,使用内核定义的宏KEY()来建立
//#defineKEY(row, col,val) ((((row)& (MATRIX_MAX_ROWS - 1)) << 24) |\
//(((col)& (MATRIX_MAX_COLS - 1)) << 16) |\
//((val)& 0xffff))
//从上面的定义来看KEY用于唯一确认一个值,用于将(row,col,val)转换为一个单一个32位的值。
//这样存储起来,比较节省空间。高高字节用于存储行号,高低字节用于存储列号,低高和低低字节用于保存值。
//如此一来,将二维坐标(x,y)及值val转换为一个单一的32int数据。
//但是取出来的时候还得使用特殊的宏来操作。
//将扫描码映射为内核定义的标准键值,以方便上层应用程序使用。
staticintmx6sl_evk_keymap[] = {
KEY(0,0, KEY_SELECT), //映射矩阵(0,0)处按键为内核标准的KEY_SELECT键码。
KEY(0,1, KEY_BACK),
KEY(0,2, KEY_F1), //映射矩阵(0,2)处按键为内核标准的KEY_F1键码。
KEY(0,3, KEY_F2), //映射矩阵(0,3)处按键为内核标准的KEY_F2键码。
//内核自己定义的键码在linux/input.h中定义。
KEY(1,0, KEY_F3),
KEY(1,1, KEY_F4),
KEY(1,2, KEY_F5),
KEY(1,3, KEY_MENU),
KEY(2,0, KEY_PREVIOUS),
KEY(2,1, KEY_NEXT),
KEY(2,2, KEY_HOME),
KEY(2,3, KEY_NEXT),
KEY(3,0, KEY_UP),
KEY(3,1, KEY_LEFT),
KEY(3,2, KEY_RIGHT),