¡¡
ÕªÒª£º½éÉÜ»ùÓÚS3C4510BϵͳµÄÆô¶¯Á÷³Ì£»Ïêϸ½éÉÜRemap£¨ÖØÓ³É䣩µÄʵÏÖ¹ý³Ì¼°²¿·Ö¹Ø¼ü´úÂ룬¸ø³öÆô¶¯´úÂëÖÐÒì³£ÖжÏÏòÁ¿µÄ´¦Àí¡£
¹Ø¼ü´Ê£ºRemap µØÖ·ÖØÓ³Éä S3C4510B Òì³£ÖжÏ
½üÄêÀ´£¬Ëæ×Å32Î»Ð¾Æ¬ÖÆÔì¼¼ÊõµÄ²»¶ÏÍêÉÆ£¬ÖÆÔì³É±¾²»¶Ï½µµÍ£¬¹úÄÚµÄ32λMCUÊг¡Ò²¿ªÊ¼»ð±¬ÆðÀ´¡£Ô½À´Ô½¶àµÄ¹¤³Ìʦ¿ªÊ¼½«¿ª·¢Ä¿¹â´Ó8Î»×ªÒÆµ½32λ΢´¦ÀíÆ÷ÉÏ£¬»ùÓÚ32λMCUµÄ²úÆ·ÈçÓêºó´ºËñ°ã²ã³ö²»ÇӦÓÃÁìÓòº¸ÇÁËÕÆÉÏÉ豸¡¢¼ÒÓõçÆ÷¡¢ÍøÂçÉ豸¡¢ÎÞÏßͨÐÅ¡¢¹¤Òµ¿ØÖƵȡ£ÔÚ32λ΢¿ØÖÆÐ¾Æ¬ÁìÓò£¬ARM¼Ü¹¹µÄоƬռÁ˽ü70%µÄÊг¡¡£±¾ÎÄÖÐËùÓõ½µÄ´¦ÀíÆ÷ÕýÊÇSamsung¹«Ë¾Éú²úµÄ»ùÓÚARM¼Ü¹¹µÄS3C4510B¡£
1 S3C4510B¼ò½é
S3C4510BÊÇÒ»¿î»ùÓÚÒÔÌ«ÍøÏµÍ³µÄ¸ßÐԼ۱ȡ¢¸ßÐÔÄܵÄ16/32λRISC΢´¦ÀíÆ÷¡£Ð¾Æ¬²¿¼¯³ÉÁË8KBµÄCache/SRAMºÍEthernet¿ØÖÆÆ÷£¬¼õÉÙÁËÕû¸öϵͳµÄ³É±¾¡£Æ¬Íâ¿ÉÀ©Õ¹ROM¡¢Flash¡¢SDRAMµÈ´æ´¢Ð¾Æ¬£¬¿ÉÒÔÒÆÖ²¦ÌClinuxµÈ¸´ÔӵIJÙ×÷ϵͳ¡£ÀûÓòÙ×÷ϵͳÍêÉÆµÄTCP/IPÐÒéÕ»³ä·Ö·¢»ÓоƬµÄÍøÂ繦ÄÜ
¡£S3C4510BоƬÄÚ²¿Ã»ÓгÌÐò´æ´¢Æ÷£¬ËùÓгÌÐò¶¼±»´æ´¢ÔÚÆ¬ÍâÀ©Õ¹µÄROMºÍFlashÖС£¿ªÊ¼Æô¶¯Ê±£¬´æÓÐÆô¶¯´úÂëµÄROM»òFlash½«±»Ó³ÉäΪ0x00µØÖ·£¬ÏµÍ³´Ó´Ë¿ªÊ¼ÔËÐС£µ«ÔÚʵ¼ÊÓ¦ÓÃÖУ¬ÎªÌá¸ßϵͳµÄʵʱÐÔ£¬¼Ó¿ì´úÂëµÄÖ´ÐÐËÙ¶È£¬ÏµÍ³Æô¶¯ºó³ÌÐòÍùÍùÒª±»°áÒÆµ½RAMÖУ¬ÒòΪRAMµÄ´æÈ¡ËÙ¶ÈÒª±ÈROM¿ìµÃ¶à£¬ÕâÑù´ó´óÌáÉýϵͳµÄÐÔÄÜ¡£ÓÉÓÚS3C4510BоƬÖеÄÒì³£ÖжÏÈë¿ÚµØÖ·±»¹Ì¶¨ÔÚ0x00¿ªÊ¼µÄ8¸ö×ÖÖУ¬ÏµÍ³Ö»Äܽ«µØÖ·¿Õ¼äÖØÐ·ÖÅ䣬°ÑRAMÓ³Éäµ½0x00µØÖ·´¦£¬ÕâÕýÊÇRemapµÄÔÒòËùÔÚ¡£
S3C4510BÄÚ²¿Óм¸¸öÌØÊâ¼Ä´æÆ÷£¬ÓÃÓÚʵÏÖµØÖ·¿Õ¼äºÍоƬÄÚÍâ´æ´¢½éÖʵÄÓ³Éä¡£Õ⼸¸ö¼Ä´æÆ÷µÄ¼ò½éÈçÏ£º
SYSCFG£ºÉèÖÃÌØÊâ¼Ä´æÆ÷µÄÆðʼµØÖ·ºÍƬÄÚSRAMµÄÆðʼµØÖ·¡£
EXTDBWTH£ºÉèÖø÷Bank¼Ä´æÆ÷ËùÓ³ÉäоƬµÄÊý¾ÝÏß¿í¶È¡£
ROMCON0¡«ROMCON5£ºÉèÖÃϵͳÄÚÆ¬À©Õ¹ROMºÍFlashµÄÆðʼºÍÖÕÖ¹µØÖ·¡£
DRAMCON0¡«DRAMCON3£ºÉèÖÃϵͳÄÚÆ¬ÍâÀ©Õ¹RAMµÄÆðʼºÍÖÕÖ¹µØÖ·¡£
S3C4510BоƬÄÚÌØÊâ¼Ä´æÆ÷¶ÎµÄÎïÀíµØÖ·Îª0x3ff0000£¬¸÷ÌØÊâ¼Ä´æÆ÷µÄÆ«ÒÆµØÖ·Ïê¼ûS3C4510BµÄ¼¼ÊõÊֲᡣ
2 S3C4510BϵͳÖÐRemapµÄʵÏÖ
µØÖ·¿Õ¼äµÄÖØÐ·ÖÅ䣬Óë´¦ÀíÆ÷µÄÓ²¼þ½á¹¹½ôÃÜÏà¹Ø¡£×ÜÌåÀ´Ëµ£¬32λϵͳÖеĵØÖ·ÖØÓ³Éä»úÖÆ¿ÉÒÔ·ÖΪÁ½ÖÖÇé¿ö£ºÒ»ÀàÊÇ´¦ÀíÆ÷ÄÚ²¿×¨ÃŵļĴæÆ÷¿ÉÒÔÍê³ÉRemap£¬ÕâÑùÖ»Ð轫Remap¼Ä´æÆ÷µÄÏàӦλÖÃ1£¬ÓÉÓ²¼þÂß¼À´Íê³ÉµØÖ·µÄÖØÐÂÓ³É䣬ÈçAtmel AT91xxϵÁУ»ÁíÒ»ÀàûÓÐרÃŵÄRemap¿ØÖƼĴæÆ÷£¬ÐèÒªÖØÐ¸Äд´¦ÀíÆ÷ÄÚ²¿ÓÃÓÚ¿ØÖÆMemoryÆðÖ¹µØÖ·µÄBank¼Ä´æÆ÷£¬À´ÊµÏÖRemap¹ý³Ì¡£S3C4510BÊôÓÚµÚ¶þÖÖÇé¿ö¡£
2.1 Ó²¼þϵͳ½á¹¹¼°µØÖ··ÖÅä
ΪÀýÓÚ¶ÔµØÖ·ÖØÓ³ÉäµÄ¹ý³Ì½øÐзÖÎö£¬Í¼1¸ø³öÁ˱¾ÈËÓÃÓÚ²âÊԵĻù±¾S3C4510BµÄϵͳӲ¼þ½á¹¹¡£ÎÄÖиø³öµÄËùÓÐÁ÷³Ì¼°´úÂë¶¼¾¹ýÁ˲âÊÔ¡£
´ËϵͳÊÇÒÔSamsung¹«Ë¾¸ø³öµÄ²âÊÔ°åΪ²Î¿¼½¨Á¢µÄ£¬ÆäÖÐROMµÄÈÝÁ¿Îª512KB£¬8λÊý¾Ý×ÜÏߣ¬RemapǰµÄµØÖ··¶Î§Îª0x0000000¡«0x0100000,RemapºóµÄµØÖ··¶Î§Îª0x1000000¡«0x1100000£»RAMµÄÈÝÁ¿Îª16MB£¬32λÊý¾Ý×ÜÏߣ¬RemapǰµÄµØÖ··¶Î§Îª0x0100000¡«0x100000,RemapºóµÄµØÖ··¶Î§Îª0x0000000¡«0x1000000£»FlashµÄÈÝÁ¿Îª2MB£¬16λÊý¾Ý×ÜÏߣ¬RemapǰºóµØÖ·²»±ä£¬¾ùΪ0x1100000¡«0x1300000¡£RemapǰºóµÄµØÖ·Ó³Éä¹ØÏµÈçͼ2Ëùʾ¡£
2.2 ϵͳÆô¶¯¹ý³Ì¼°RemapʵÏÖ
ϵͳµÄµØÖ·ÖØÓ³ÉäÓ¦¸ÃÔÚϵͳµÄÆô¶¯ÖÐÍê³É£¬ÒÔÏÂÊÇS3C4510BµÄRemapÆô¶¯¹ý³Ì¡£
¢ÙÏµÍ³ÌØÊâ¼Ä´æÆ÷µÄÉèÖá£Ö÷ÒªÊÇÅäÖÃÈçÉÏËùÊöµÄÓÃÓÚʵÏÖµØÖ·¿Õ¼äºÍоƬÄÚÍâ´æ´¢½éÖÊÓ³ÉäµÄ¼Ä´æÆ÷£¬ÔÚ±¾ÏµÍ³ÖÐÅäÖÃÈçÏ£º
SYSCFG=0x87ffff90
EXTDBWTH=0x3001
ROMCON0=0x01000060
ROMCON1=0x13044060
DRAMCON0=0x11004060
¢Ú³õʼ»¯ÏµÍ³¶ÑÕ»¡£ÔÚARM7µÄÌåϵ½á¹¹Öй²ÓÐÆßÖÖ¹¤×÷ģʽ£¬²»Í¬µÄģʽÓв»··¶ÑÕ»Ö¸Õ룬»¥²»¸ÉÈÅ¡£¸÷ģʽ¶ÔÓ¦ÓÚ²»··Òì³£Öжϣ¬ÖÁÓÚÄÄЩģʽµÄ¶ÑÕ»ÐèÒª³õʼ»¯È¡¾öÓÚÓû§Ê¹ÓÃÁËÄÄЩÖжϣ¬ÒÔ¼°ÏµÍ³ÐèÒª´¦ÀíЩÒì³£ÀàÐÍ¡£Ò»°ãÀ´Ëµ£¬¹ÜÀíÕߣ¨SVC£©¶ÑÕ»±ØÐëÉèÖã¬Èç¹ûʹÓÃÁËIRQÖжϣ¬ÔòIRQ¶ÑÕ»Ò²±ØÐëÉèÖá£ÓÐÒ»µãÐèҪעÒâµÄÊÇ£¬Îª±£Ö¤Remapºó³ÌÐòÔËÐÐÕý³££¬ËùÓжÑÕ»Ó¦ÉèÖÃÔÚRAMµÄ¸ß¶ËµØÖ·ÖС£
¢Û³õʼ»¯I/O¿Ú¡¢UART¡¢¶¨Ê±Æ÷¡¢ÖжϿØÖÆÆ÷ÒÔ¼°ÏµÍ³ÖÐËùÓõ½µÄÆäËü×ÊÔ´¡£ÔÚ³õʼ»¯Òì³£ÏòÁ¿±í»òÐÞ¸ÄÒì³£ÏòÁ¿±íÖеÄÈë¿ÚµØÖ·Ç°£¬Òª¹ØµôËùÓÐÖжϡ£

¢ÜÒì³£ÏòÁ¿±íµÄ³õʼ»¯¡£½«Ãñ³£ÖлÍâò´¦Àí³ÌÐòµÄÈë¿ÚµØÖ·Ð´ÈëRAMÖÐÏàÓ¦µÄÒì³£ÏòÁ¿¡£±ØÐë±£Ö¤µÄÊÇ£¬Òì³£ÏòÁ¿±í¾ø¶Ô²»»á±»´ÓROM°áÒÆµ½RAMÖеĴúÂëºÍÊý¾ÝËù¸²¸Ç£¬Îª´Ë£¬Òì³£ÏòÁ¿±íÒ»°ã±»¶¨ÒåÔÚRAMÖеĸ߶˵ØÖ·ÖС£
¢Ý³ÌÐò´úÂë¼°Êý¾ÝµÄ°áÒÆ¡£Remapºó£¬RAM±»Ó³Éäµ½0x0000µÄµØÖ·¿Õ¼ä£¬ROMÔò±»ÒƵ½¸ß¶ËµØÖ·ÉÏ¡£Îª±£Ö¤Remapºó³ÌÐòÄܹ»îªÔËÐУ¬ROMÖеĴúÂëºÍÊý¾Ý±ØÐëµØÖ·²»±äµØ±»ÒƵ½RAMÖС£ÕâÊÇRemap³É¹¦µÄ¹Ø¼ü¡£Á½ÖÖ;¾¶¿ÉÒÔʵÏÖ°áÒÆ¡£
Ò»ÖÖÊDz»¹Üʵ¼ÊµÄ´úÂë¿Õ¼äÓжà´ó£¬Ö±½Ó½«ROMµØÖ·¿Õ¼äÕû¸ö°áÒÆµ½RAMÖС£µ±È»£¬ÕâÖÖ·½·¨²¢²»ÊʺÏÔÚÕæÕýµÄÆô¶¯´úÂëÖÐʹÓ㬵«ÔÚ×ö³õ²½µÄRemap²âÊÔʱ£¬¿ÉÒÔÓÃÀ´¼ìÑé¶ÑÕ»¼°Òì³£ÖжϵÄÉèÖÃÊÇ·ñºÏÀí¡£
ÁíÒ»ÖÖ·½·¨½Ï¸´ÔÓ£¬ËüʹÓÃÁËSDTÁ´½ÓÆ÷ARMLink²úÉúµÄ¶¨Î»ÐÅÏ¢£¬½ö°ÑRO·ç´µ²Ý¶¯µÄÓÐЧ´úÂëºÍÊý¾Ý¶Îµ½RAMÖС£ARMLink½«±àÒëºóµÄ³ÌÐòÁ´½Ó³ÉELFÎļþ¡£Ó³ÏñÎļþÄÚ²¿¹²ÓÐÈýÖÖÊä³ö¶Î£ºRO¶Î¡¢RW¶ÎºÍZI¶Î¡£ÕâÈýÖÖÊä³ö¶Î·Ö±ð°üº¬ÁËÖ»¶Á´úÂë¼°°üº¬ÔÚ´úÂë¶ÎÖеÄÉÙÁ¿Êý¾Ý¡¢¿É¶ÁдµÄÊý¾Ý¡¢³õʼ»¯Îª0µÄÊý¾Ý£¬ARMLinkͬʱ»¹²úÉúÁËÕâÈýÖÖÊä³ö¶ÎµÄÆðʼºÍÖÕÖ¹¶¨Î»ÐÅÏ¢£ºImage$$RO$$Base¡¢Image$$RO$$Limit¡¢Image$$RW$$Base¡¢Image$$Limit¡¢Image$$LinitºÍImage$$ZI$$Limit¡£¿ÉÒÔÔÚ³ÌÐòÖÐʹÓÃÕâЩ¶¨Î»ÐÅÏ¢¡£½«ROMÖеĴúÂëºÍÊý¾Ý°áÒÆµ½RAMÖУ¬ÆäʵÏÖ´úÂëÈçÏ£º
Êý¾Ý¶¨Ò壺
BaseOfrom DCD |Image$$RO$$Base|
TopOfrom DCD |Image$$RO$$Limit|
BaseOfBSS DCD |Image$$RW$$Base|
BaseOfZero DCD |Image$$ZI$$Base|
EndOfBSS DCD |Image$$ZI$$Limit|
Ô´³ÌÐò£º
£»½«ROMÖеijÌÐò°áÒÆµ½RAMÖУ¬ÖØÓ³ÉäºóµÄµØÖ·²»±ä
adr r0,ResetEntry ;ROMÖгÌÐòÆðʼµØÖ·
mov r3,#(RamBaseAddr<<16) ;RamBaseAddr=0x100
Idr r1,BaseOfROM
Idr r2,TopOfROM
Add r1,r1,r3
Add r2,r2,r3
0
Idmia r0!,{r4-r11}
Stmia r1!,{r4-r11}
Cmp r1,r2
Bcc°
;½«RW¶ÎÖÐÔ¤³õʼ»¯µÄ±äÁ¿°áÒÆµ½RAMÖÐ
sub r1,r1,r2
sub r0,r0,r1 ;½«r0Ö¸ÏòRO¶ÎµÄ½áÊø£¬¼´RW¶ÎµÄ¿ªÊ¼
ldr r1,BaseOfBSS
Idr r2,BaseOfZero
Add r1,r1,3
Add r2,r2,r3
1 £»»ùÓÚ¾Ö²¿±êºÅµÄÏà¶ÔÌø×ª£¬PC Æ«ÒÆµØÖ·£¬²úÉúÓëλÖÃÎ޹صĴúÂë
cmp r1,r2
ldrcc r4,[r0],#4
strcc r4,[r1]£¬#4
bcc ±
£»½Ó×ŰÑZI¶Î°áÒÆµ½RAMÖУ¬²¢Æä½«³õʼ»¯Îª0
mov r0,#0
Idr r2,EndOfBSS
Add r2,r2,r3
2
cmp r1,2
strcc r0,[r1],#4
bcc²
¢ÞµØÖ·µÄÖØÐÂÓ³Éä¡£S3C4510BÖеÄRemap¹ý³ÌÆäʵºÜ¼òµ¥£¬Ö»ÐèÖØÐÂÉèÖÃROMCON0¡«ROMCON5ºÍDRAMCON0¡«DRAMCON3¡£ÔÚ±¾ÏµÍ³ÖÐÖ»ÐèÖØÐÂÉèÖÃROMCON0ºÍDRAMCON0¡£
Ô´´úÂ룺
£»/*ÄÚ´æ¿ØÖÆ¼Ä´æÆ÷ÖØÐÂÉèÖÃ-´æ´¢¿Õ¼äÖØÐÂÓ³É䵨ַ¿Õ¼ä*/
EXPORT RemapMemory
RemapMemory
mov r12,r14
adr r0,RemapMem
ldmia r0,{r1-r11}
ldr r0,=ROMCON0 ;ROMCON0ΪBank¼Ä´æÆ÷µÄÆðʼµØÖ·
stmia r0,{r1-r11}
bl ExceptionTalbeInit ;ÖжÏÏòÁ¿±íÖØÐ³õʼ»¯
mov pc,r12
RemapMem
DCD &11040060 ;/*ROMCON0 0x1000000¡«0x1100000*/
¡
DCD &10000398 £»/*DRACON0 0x0¡«0x1000000*/
¡
¢ß½øÈëC´úÂë¿Õ¼ä£¬¿ªÊ¼Ö÷³ÌÐòµÄÔËÐС£´Ëʱ´úÂëÓ¦¸ÃÔËÐÐÓÚRAMÖС£

ÉÏÃæµÄ²½Öè¿ÉÒÔ¸ù¾Ýʵ¼ÊÐèÒª½øÐÐÊʵ±µÄÌí¼Ó»òɾ½Ú¡£ÖµµÃ×¢ÒâµÄÊÇ£º»ã±àÉú³ÉµÄ´úÂëÓ¦¸ÃÊÇÓëλÖÃÎ޹صĴúÂ룬¼´´úÂëÔÚÔËÐÐÆÚ¼ä¿ÉÒÔ±»Ó³Éäµ½²»Í¬µÄµØÖ·¿Õ¼ä£¬ÆäÖеÄÌø×ªÖ¸Áî¶¼ÊÇ»ùÓÚPC¼Ä´æÆ÷µÄÏà¶ÔÌø×ªÖ¸Áî¡£»ùÓÚPCµÄ±êºÅÊÇλÓÚÄ¿±êÖ¸Áîǰ»òÕß³ÌÐòÖÐÊý¾Ý¶¨Òåα²Ù×÷ǰµÄ±êºÅ£¬ÕâÖÖ·ûºÅÔÚ»ã±àʱ½«±»´¦Àí³ÉPCÖµ¼ÓÉÏ»ò¼õÈ¥Ò»¸öÊý×Ö³£Á¿¡£
3 Òì³£ÖжϵĴ¦Àí
ÔÚRemapµÄÆô¶¯´úÂëÖУ¬ÐèÒªÌØ±ð×¢ÒâµÄÊÇÒì³£ÖжϵĴ¦Àí¡£ÔÚS3C4510BÖУ¬Òì³£ÖжϵÄÈë¿ÚµØÖ·Êǹ̶¨µÄ£¬°´±í1´ÎÐòÅÅÁС£
±í1
| Òì³£ÀàÐÍ |
¹¤×÷ģʽ |
Õý³£µØÖ· |
| ¸´Î» |
¹ÜÀí |
0x00000000 |
| 䶨ÒåÖ¸Áî |
䶨Òå |
0x00000004 |
| Èí¼þÖжϣ¨SWI£© |
¹ÜÀí |
0x00000008 |
| ԤȡÖÐÖ¹ |
ÖÐÖ¹ |
0x0000000 |
| Êý¾ÝÖÐÖ¹ |
ÖÐÖ¹ |
0x00000010 |
| Ô¤Áô |
- |
0x00000014 |
| IRQ£¨Öжϣ© |
IRQ |
0x00000018 |
| FIQ£¨¿ìËÙÖжϣ© |
FIQ |
0x0000001 |
µØÖ·ÖØÐÂÓ³ÉäÖ®ºó£¬Èë¿ÚµØÖ·±»Ó³Éäµ½RAMÖУ¬Öжϴ¦Àí´úÂëÒ²±»°áÒÆµ½RAMµØÖ·¿ÕÊÇ¡£´Ëʱ£¬ÖжÏÏìÓ¦ºÍÖжϴ¦ÀíµÄËٶȶ¼½«´ó´ó¼Ó¿ì£¬Õ⽫ÓÐÀûÓÚÌá¸ßÕû¸öϵͳµÄʵʱÐÔ¡£Òì³£ÖжÏÏòÁ¿±íµÄÉè¼Æ½á¹¹Èçͼ3Ëùʾ¡£
ÏÂÃæÊǸ÷²¿·ÖµÄÔ´´úÂ루ÒÔIRQÒì³£ÖжÏΪÀý£©¡£
Òì³£ÏòÁ¿±íµÄ¶¨Ò壺£¨ÏµÍ³³õʼ»¯Ê±£¬½«Òì³£´¦Àí´úÂëÈë¿ÚµØÖ·Ð´ÈëÒì³£ÖеÄÏòÁ¿±í£©
_RAM_END_ADDR EQU 0x01000000 ;ÖØÓ³ÉäºóRAMµÄÖÕÖ¹µØÖ·
MAP £¨_RAM_END_ADDR-0x100£©
SYS_RST_VECTor # 4
UDF_INS_VECTor # 4
SWI_SVC_VECTor # 4
INS_ABT_VECTor # 4
DAT_ABT_VECTor # 4
RESERVED_VECTor # 4
IRQ_SVC_VECTor # 4
FIQ_SVC_VECTor # 4
Òì³£³õʼ»¯´úÂ룺
¡
b IRQ_SVC_HANDLER ;0x18
¡
IRQ_SVC_HANDLER
SUB sp,sp,#4 £»ÂúµÝ¼õ¶ÑÕ»
STMFD sp!,{r0}
LDR r0,=IRQ_SVC_VECTor ;¶ÁÈ¡ÖжÏÏòÁ¿£¬
£»IRQ_SVC_VECTOR=SystemrqHandle
LDR r0,[r0]
STR r0,[sp,#4]
LDMFD sp!,{r0,pc}£»Ìø×ªµ½Òì³£Öжϴ¦Àí´úÂëÈë¿Ú
Òì³£´¦ÀíÈë¿Ú´úÂ룺
¡
SystemIrqHandler
IMPORT ISR_IrqHandler
STMFD sp!,{r0-r12,lr}
BL ISR_IrqHandler ;Ìø×ªµ½C´úÂëÖÐÒì³£Öжϴ¦Àí³ÌÐòISR_IrqHandler
LDMFD sp!,{r0-r12,lr}
SUBS pc,lr,#4
¡
ÔÚÈçÉϵĽṹÖУ¬²»¹ÜϵͳÊÇ·ñ½øÐÐÁ˵ØÖ·µÄÖØÓ³É䣬Òì³£ÖжÏÏòÁ¿¶¼¿ÉÒÔÔÚÔËÐÐʱ¶¯Ì¬¸Ä±ä£¬´ó´óÌá¸ßÁËÖжϴ¦ÀíÖеÄÁé»îÐÔ¡£ÖжÏÏòÁ¿¿ÉÒÔÔÚÔËÐÐʱָÏò²»Í¬µÄÒì³£´¦Àí´úÂëÈë¿Ú¡£
½áÓï
Ãæ¶ÔʵʱÐÔÒªÇóÔ½À´Ô½¸ßµÄ¸÷ÖÖÓ¦Ó㬲»¹ÜÓ¦ÓÃÖÐÓÐûÓÐǶÈëʽ²Ù×÷ϵͳ£¬Remap¶¼ÒѾ³ÉΪÆô¶¯´úÂëÖбز»¿ÉÉÙµÄÒ»²¿·Ö¡£RemapµÄʵÏÖ¶ÔÓÚ²Ù×÷ϵͳµÄÒÆÖ²Ò²ÓÐÖØÒªµÄÒâÒå¡£Remap¾ö¶¨ÁËϵͳÆô¶¯µÄЧÂÊ£¬²¢¶ÔÕû¸öϵͳµÄʵʱÐÔºÍÎȶ¨ÐÔ²úÉúºÜ´óÓ°Ïì¡£Òò¶ø£¬¶ÔRemap¹ý³ÌµÄÀí½âºÍÉè¼Æ£¬¶ÔÓÚÄÇЩǶÈëʽϵͳµÄ¿ª·¢ÈËÔ±À´ËµÊǷdz£ÖØÒªµÄ£¬Ëü´ÓÒ»¿ªÊ¼¾Í¾ö¶¨ÁËÕû¸ö¿ª·¢¹ý³ÌµÄ×îÖճɰܡ£
¡¡