IARÀº Arm¿ë IAR ÀÓº£µðµå ¿öÅ©º¥Ä¡ 9.40¹öÀüÀ» ¹ßÇ¥Çß´Ù. À̹ø Ãֽо÷µ¥ÀÌÆ®´Â ÄÚµå º¸¾È ±â´ÉÀ» Çâ»ó½ÃŲ Armv8.1-M¿ë PACBTI(Pointer Authentication and Branch Target Identification) È®ÀåÆÇÀ» ÅëÇÕÇÑ °ÍÀÌ Æ¯Â¡ÀÌ´Ù.
¹ýÁ¦È ¹× ±ÔÁ¦ °È·Î ÀÎÇØ ¾ÈÀüÇÑ Á¦Ç°¿¡ ´ëÇÑ ¼ö¿ä°¡ Áõ°¡ÇÔ¿¡ µû¶ó, IARÀÇ ÃֽйöÀüÀº º¸´Ù °ÈµÈ ÄÚµå º¸¾È¿¡ ´ëÇÑ ¼ö¿ä¸¦ ÃæÁ·Çϰí ÀÖ´Ù. Ãֽо÷µ¥ÀÌÆ® ¹öÀü¿¡¼ ÁÖ¸ñÇÒ ¸¸ÇÑ Æ¯Â¡ Áß Çϳª´Â PACBTI È®ÀåÆÇ¿¡ ÀÇÇØ Arm¿ë IAR ÀÓº£µðµå ¿öÅ©º¥Ä¡¿¡ ÄÄÆÄÀÏ·¯ ±â´ÉÀÌ »õ·Ó°Ô º¸¿ÏµÇ¾ú´Ù´Â Á¡ÀÌ´Ù. ÀÌ ÄÄÆÄÀÏ·¯´Â ¹Ýȯ ÁöÇâ ÇÁ·Î±×·¡¹Ö(Return-Oriented Programming, ROP), Á¡ÇÁ ÁöÇâ ÇÁ·Î±×·¡¹Ö(Jump-Oriented Programming, JOP) µî µÎ °¡Áö ÀϹÝÀûÀÎ º¸¾È °ø°Ý¿¡ ´ëÇÑ °·ÂÇÑ ¹æ¾î ±â´ÉÀ» Á¦°øÇÑ´Ù. µÎ °¡Áö ±â¼ú ¸ðµÎ »ç¿ëÀÚ ¾ÖÇø®ÄÉÀÌ¼Ç ³»ÀÇ ±âÁ¸ ÄÚµå ¼¼±×¸ÕÆ®¸¦ Ȱ¿ëÇÑ´Ù. °ø°ÝÀÚ´Â ½ºÅà ½º¸Å½Ì°ú °°Àº ¹æ¹ýÀ» ÀÌ¿ëÇÏ¿© ÄÝ ½ºÅÃÀ» Á¦¾îÇÔÀ¸·Î½á ½ºÅÿ¡ ÀúÀåµÈ Áß¿äÇÑ Æ÷ÀÎÅ͸¦ Æ÷ÀÎÆ®¿¡ µ¤¾î¾²°í, °ø°Ý Àǵµ¿¡ ¸Â´Â ÀÔÁõµÈ Ãë¾àÇÑ ÄÚµå ½º´ÏÆêÀ¸·Î ¹æÇâÀ» Àç¼³Á¤ÇÑ´Ù. ÀÌ »õ·Î¿î ±â´ÉÀ» Æ÷ÇÔÇÔÀ¸·Î½á, IAR ÀÓº£µðµå ¿öÅ©º¥Ä¡´Â »ó´çÇÑ ¼öÁØÀÇ º¸È£ À庮À» ±¸ÃàÇÏ¿©, °ø°ÝÀÚ°¡ Äڵ带 °ø°ÝÇÏ°í ½Ã½ºÅÛ ¹«°á¼ºÀ» ÈѼÕÇϱⰡ ´õ¿í ¾î·Æ°Ô ¸¸µé¾ú´Ù.
PACBTI´Â ÀϹÝÀûÀ¸·Î °ø°Ý °¡´ÉÇÑ ¼ÒÇÁÆ®¿þ¾î ¿À·ù¸¦ ½Äº° ¹× ¿ÏÈÇϵµ·Ï ¼³°èµÇ¾úÁö¸¸, ±× È¿°ú´Â ÄÚµå ºÐ¼® Åø Ȱ¿ë µî °ÇÀüÇÑ ¼ÒÇÁÆ®¿þ¾î °³¹ß °üÇà¿¡ ÀÇÁ¸Çϰí ÀÖ´Ù.
Arm¿ë IAR ÀÓº£µðµå ¿öÅ©º¥Ä¡´Â °íµµ·Î ÃÖÀûÈµÈ ÄÄÆÄÀÏ·¯¿Í °í±Þ µð¹ö±ë ±â´ÉÀ» Æ÷ÇÔÇÏ´Â Æ÷°ýÀûÀÎ °³¹ß Åø üÀÎÀÌ´Ù. °³¹ßÀÚ´Â C-STAT ¹× C-RUN°ú °°Àº ÄÚµå ºÐ¼® µµ±¸¸¦ »ç¿ëÇÏ¿© ÀáÀçÀûÀÎ ÄÚµå ¹®Á¦¸¦ »çÀü¿¡ ½Äº°Çϰí, ÄÚµå ǰÁúÀ» °³¼±Çϸç, ÀáÀçÀûÀÎ °ø°Ý¸éÀ» ÃÖ¼ÒÈÇÒ ¼ö ÀÖ´Ù. Á¤Àû ºÐ¼®°ú ·±Å¸ÀÓ ºÐ¼®Àº °³¹ß ÇÁ·Î¼¼½º¿¡¼ ÇÙ½ÉÀûÀÎ ¿ªÇÒÀ» ¼öÇàÇϰí, Ãë¾àÁ¡ÀÇ È®ÀÎ ¹× Á¦°Å¸¦ º¸ÀåÇÑ´Ù. ÃֽйöÀüÀº ºôµå Àü°ú ÈÄÀÇ ÀÛ¾÷À» ´ëüÇÏ´Â ½º¸¶Æ® IDE ºôµå ¾×¼Çµµ ¼Ò°³ÇÔÀ¸·Î½á, °³¹ßÀÚ°¡ ÄÄÆÄÀÏ ¹× ¸µÅ©¸¦ ¼öÇàÇϱâ Àü¿¡ ´Ù¾çÇÑ ¸í·ÉÀ» ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï Áö¿øÇÑ´Ù.
Armv8-A ARCH64 Áö¿øÀ» µµÀÔÇÑ ÀÌÀü ¹öÀüÀ» ±â¹ÝÀ¸·Î ÇÏ´Â, Arm¿ë IAR ÀÓº£µðµå ¿öÅ©º¥Ä¡ 9.40Àº ÀÌÁ¦ Armv8-A ARCH32 Áö¿øÀ» Æ÷ÇÔÇϵµ·Ï ±â´ÉÀ» È®ÀåÇÔÀ¸·Î½á 64ºñÆ® ÇÁ·Î¼¼¼¸¦ 32ºñÆ® ¸ðµå¿¡¼ ½ÇÇàÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ ÀÌ ¹öÀüÀº ¸£³×»ç½º E2/E2 Lite ¿¡¹Ä·¹ÀÌÅͿ͵µ ȣȯÀÌ °¡´ÉÇØ Arm Cortex-M MCU ¹× Cortex-A MPU¿¡ ´ëÇÑ ¸Å²ô·¯¿î ÇÁ·Î±×·¡¹Ö°ú µð¹ö±ë ±â´ÉÀ» Á¦°øÇÑ´Ù. ÀÌ ÃֽйöÀüÀº ÁÖ¿ä ¹ÝµµÃ¼ ÆÄÆ®³Ê»ç°¡ »ý»êÇÏ´Â 275°³ ÀÌ»óÀÇ ½Å±Ô µð¹ÙÀ̽ºµéµµ Áö¿øÇÑ´Ù. ¸¶Áö¸·À¸·Î, È®ÀåµÈ ¾ð¾î ¸ðµå¿¡¼, IAR C/C++ ÄÄÆÄÀÏ·¯´Â Ãß°¡ÀûÀÎ GCC ½ºÅ¸ÀÏ ÇÔ¼ö ¼Ó¼ºÀ» ¼ö¿ëÇÔÀ¸·Î½á RTOS/¹Ìµé¿þ¾îÀÇ ¹æ´ëÇÑ ÀÓº£µðµå ¿¡ÄڽýºÅÛ ³»¿¡¼ »óÈ£ ¿î¿ë¼ºÀ» ´õ¿í È®´ëÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù.
|