CORTEX-M4知识点总结 - 百度文库

·¢²¼Ê±¼ä : ÐÇÆÚÁù ÎÄÕÂCORTEX-M4知识点总结 - 百度文库¸üÐÂÍê±Ï¿ªÊ¼ÔĶÁ

¶Ô´Ë²»×öÏêϸ½éÉÜ

3.3.4 Âß¼­ÔËËã

Ó룺AND »ò£ºORR λÇå³ý£ºBIC °´Î»Òì»ò£ºEOR °´Î»»ò·Ç£ºORN

3.3.5 ÒÆλ

ËãÊýÓÒÒÆ£ºASR Âß¼­×óÒÆ£ºLSL Âß¼­ÓÒÒÆ£ºLSR Ñ­»·ÓÒÒÆ£ºROR

3.3.6 Òì³£Ïà¹ØÖ¸Áî

֮ǰ˵¹ý£¬M4¿ÉÒÔÓÐÌØȨģʽºÍ·ÇÌØȨģʽ£¬²¢ÇÒ·ÇÌØȨģʽ²»ÄÜÖ±½Óת»»µ½ÌØȨģʽ£¬Ö»ÄÜÔÚÒì³£ÖÐÐÞ¸ÄCONTROL¼Ä´æÆ÷¡£ÕâÀï¾Í¿ÉÒÔͨ¹ýSVCÖ¸ÁîÀ´½øÈëÒì³£¡£

SVC #

ÕâÑù¾Í¿ÉÒÔ½øÈëSVCÖжÏÖУ¬È»ºóÐÞ¸ÄCONTROL¼Ä´æÆ÷¡£Òª×¢ÒâµÄÊÇ£¬µ÷ÓÃSVCÖ¸Áîºó£¬Ð辡¿ì½øÈëÖжÏÖУ¬Èç¹ûÓÐÆäËû¸ßÓÅÏȼ¶µÄÖжϴò¶ÏÁËSVC£¬¾Í»áÒýÆðHardFault¡£

CPSÖ¸ÁîʹÓÃʱÐèÒª´øÉϺó׺:IE£¨ÖжÏʹÄÜ£©£¬ID£¨ÖжϽûÖ¹£©£¬»¹ÐèÖ¸¶¨ÒªÉèÖõÄÖжÏÆÁ±Î¼Ä´æÆ÷£¬Èç֮ǰ½²µ½µÄPRIMASKºÍFAULTMASK

Ö¸Áî CPSIE I CPSID I CPSIE F CPSID F ²Ù×÷ ʹÄÜÖжϣ¨Çå³ýPRIMASK£© ½ûÖ¹Öжϣ¨ÉèÖÃPRIMASK£©,³ýNMIºÍHardFault ʹÄÜÖжϣ¨Çå³ýFAULTMASK£© ½ûÖ¹Öжϣ¨ÉèÖÃFAULTMASK£©,³ýNMI

4´æ´¢Æ÷ϵͳ

4.1 ´æ´¢Æ÷ÍâÉè

¹þ·ð½á¹¹£¬³ÌÐò´æ´¢Æ÷ºÍÊý¾Ý´æ´¢Æ÷·Ö¿ª£¬Ò²¾ÍÊÇÖ¸ÁîºÍÊý¾Ý¿ÉÒÔͬʱ·ÃÎÊ¡£ 1¡¢ÔÚµÚÒ»ÕÂÖеĴ洢Æ÷Ó³ÉäͼÖУ¬0-0.5GΪ´úÂë¶Î£¬Ö÷ÒªÓÃÓÚ³ÌÐò´úÂ룬¸ÄÇøÓòÒ»°ãÒ²ÔÊÐíÊý¾Ý·ÃÎÊ¡£Ò»°ã´Ë´¦ÎªFlash¡£

ÔÚkeilÖУ¬´úÂë±àÒëºó£¬Õû¸ö´úÂë·ÖΪ¼¸²¿·Ö£ºCode£¨´úÂ룩£¬RO-data£¨Ö»¶ÁÊý¾Ý£©£¬RW-data£¬£¨³õʼ»¯µÄ¿É¶Áд±äÁ¿´óС£©£¬ZI-data£¨Zero Initialize£©Î´³õʼ»¯µÄ¿É¶Áд±äÁ¿´óС,Ëü»á±»×Ô¶¯³õʼ»¯Îª0¡£ZI-data²»»á±»Ëãµ½´úÂëÀÒòΪËü²»»á±»³õʼ»¯¡£

¼òµ¥À´ËµÄؾÍÊÇÔÚÉÕдµÄʱºòFLASHÖеı»Õ¼ÓõĿռäΪ£ºCode+RO-data+RW-data¡£

³ÌÐòÔËÐеÄʱºò£¬Ð¾Æ¬ÄÚ²¿RAMʹÓõĿռäΪ£ºRW-data+ZI-data

2¡¢0.5G-1G·¶Î§ÄÚÊÇSRAM£¬Ö÷ÒªÓÃÓÚÁ¬½ÓSRAM£¬Æä´ó¶¼ÎªÆ¬ÉÏSRAM£¬²»¹ý¶Ô´æ´¢Æ÷µÄÀàÐÍûÓÐʲôÏÞÖÆ¡£ÈôÖ§³Ö¿ÉÑ¡µÄλ¶ÎÌØÐÔ£¬ÔòSRAMÇøÓòµÄµÚÒ»¸ö1MB¿ÉλѰַ£¬»¹¿ÉÒÔÔÚÕâ¿éÇøÓòÖÐÖ´ÐгÌÐò´úÂë¡£

3¡¢1G-1.5GÊÇÍâÉèÇøÓò£¬¶àÓÃÓÚƬÉÏÍâÉ裬ºÍSRAMÇøÓòÀàËÆ£¬Ò²¿ÉÒÔ·ÅÖóÌÐò´úÂ룬ÈôÖ§³Ö¿ÉÑ¡µÄλ¶ÎÌØÐÔ£¬ÔòÍâÉèÇøÓòµÄµÚÒ»¸ö1MBÊÇ¿ÉÑ¡µÄ¡£

4¡¢1.5G-2.5G¿Õ¼äΪÍⲿRAM¿Õ¼ä

5¡¢2G-3G¿Õ¼äΪÉ豸¿Õ¼ä£¬ÓÃÓÚƬÍâÍâÉè¡£ 6¡¢3G-4G¿Õ¼äΪϵͳ¿Õ¼ä¡£

4.2Bootloader

оƬÉè¼ÆÈËÔ±½«Bootloader·ÅÈëϵͳÖеÄÔ­ÒòÊǶ෽ÃæµÄ¡£ÀýÈ磺

¡¤ ÌṩFlash±à³Ì¹¦ÄÜ£¬ÕâÑù¾Í¿ÉÒÔÀûÓÃÒ»¸ö¼òµ¥µÄUART½Ó¿ÚÀ´±à³ÌFlash£¬»òÕßµ±³ÌÐòÔËÐÐʱ£¬ÔÚ×Ô¼ºµÄÓ¦ÓóÌÐòÖбà³ÌFlash´æ´¢Æ÷µÄijЩ²¿·Ö¡£ ¡¤ ÌṩͨÐÅЭÒéÕ»µÈ¶îÍâµÄ¹Ì¼þ£¬¿É±»Èí¼þ¿ª·¢ÈËԱͨ¹ýAPIµ÷Óᣠ¡¤ ÌṩоƬÄÚÖõÄ×Լ칦ÄÜ£¨BIST£©

±ÈÈçÔÚ1601ÖУ¬Ìṩһ¸ö4KµÄinfoÇø£¬ºÍ128KµÄmainÇø£¬4KµÄinfoÇø¾ÍÊÇÒ»¸öbootloader£¬ÌṩSPIÏÂÔع¦ÄÜ£¬ÀûÓò¦Â뿪¹Ø¿ÉÒÔÉèÖôÓÄÄÀïÆô¶¯£¬mode=0ʱ´ÓinfoÇøÆô¶¯£¬mode=1ʱ´ÓmainÇøÆô¶¯£¬²¢ÇÒmainÇø·ÖÁ½²¿·Ö£¬Èí¼þ¿ÉÉèÖôӵÍ64KÆô¶¯»¹ÊÇ´Ó¸ß64KÆô¶¯¡£ÕâÀïÉè¼Æ´æ´¢Æ÷ÖØÓ³ÉäµÄÎÊÌ⣬ϵ

ͳÆô¶¯Ê±ÊÇ´Ó0X00¿ªÊ¼µÄ£¬²»¹ÜÊÇBoot loader»¹ÊÇÓû§flash£¬¶¼µÃ´Ó0x00¿ªÊ¼£¬È»ºó0x04·ÅµÄreset_handlerµÄµØÖ·£¬mode=0£¬ÄÇinforÇø¾Í±»Ó³Éäµ½ÁË0x00£¬mode=1£¬mainÇø¾Í±»Ó³Éäµ½ÁË0x00¡£

4.3λ¶Î²Ù×÷

¶Ô´æ´¢Æ÷ÖÐijһλ²Ù×÷ÊÇÈçºÎʵÏÖµÄÄØ£¿ÏÈÀ´¿´¿´ÆÕͨģʽÏ£¬ дijһλ£º

LDR R0£¬=0X200000000 ;ÉèÖõØÖ· LDR R1,[R0] ;¶ÁÊý¾Ý ORR.W R1,#0X04 ;Ð޸ĵÚ2λ STR R1£¬[R0] ;д»Ø ¶Áijһλ£º

LDR R0£¬=0X200000000 ;ÉèÖõØÖ· LDR R1,[R0] ;¶ÁÊý¾Ý UBFX.W R1£¬ R1£¬#2£¬#1;ÌáÈ¡µÚ2λ

ÕâÖÖ²Ù×÷ÎÞ·¨±£Ö¤Ô­×ÓÐÔ£¬±ÈÈçÊä³ö¶Ë¿ÚµÄµÚ0λ±»Ö÷³ÌÐòʹÓ㬶øµÚһλ±»ÖжÏʹÓã¬ÕâÑùÓпÉÄܳöÏÖÊý¾Ý³åÍ»¡£Î»¶Î²Ù×÷ģʽÏ£¬ÕâÖÖÏÖÏó¿ÉÒÔ±ÜÃ⣬ÒòΪλ¶Î²Ù×÷ÊÇÔÚÓ²¼þµÈ¼¶ÏÂÐ޸ĵġ£

λ¶Î²Ù×÷Ö»ÔÚÁ½¸öÇøÓòÖ§³Ö£¬SRAMµÄµÚ1MB£¬ÍâÉèÇøÓòµÄµÚ1MB¡£Ã¿1MB»á¶ÔÓ¦Ò»¸ö32MµÄÇøÓò£¬Ö»Ðè²Ù×÷Õâ32MµÄij¸ö×Ö£¬¾ÍÄܶÔÓ¦ÄÇ1MBÇøÓòµÄijһλ¡£ÀýÈçд0x22000008Ϊ1£¬¾ÍÉèÖÃÁË0x20000000µÚ3λΪ1¡£ÔÚÖ¸ÁîÉÏÒ²»á¸ü¼Ó¼ò»¯¡£

λ¶Îд²Ù×÷

LDR R0£¬ =0X2200000 ;ÉèÖÃadd MOV R1£¬#1 ;ҪдµÄÊý¾Ý STR R1 ,[R0] ;д

ÉèÖÃÁËλ¶Î²Ù×÷ģʽ£¬¶ÔÓ¦µÄ32MBÇøÓò½«²»ÄÜÔÙʹÓá£

4.4 ´æ´¢Æ÷´óС¶Ë

´óС¶ËÖ¸µÄÊÇÊý¾Ý´æ´¢Ê±µÄ˳ÐòÎÊÌâ¡£´ó¶ËÖ¸µÄÊǸß×Ö½ÚµÄÊý¾Ý·ÅÔڵ͵ØÖ·ÖУ¬µÍ×Ö½Ú·ÅÔڸߵØÖ·ÖУ¬ÕâÖÖ·½Ê½·ûºÏÈËÀà˼ά¡£Ð¡¶ËÔòÊǵÍ×Ö½Ú·ÅÔڵ͵ØÖ·ÖУ¬¸ß×Ö½Ú·ÅÔڸߵØÖ·ÖУ¬ÕâÖÖ·½Ê½¸ü·ûºÏ¼ÆËã»ú˼ά¡£

ÀýÈ罫0x12345678·Åµ½´æ´¢Æ÷0x2000-0x2003µØÖ·´¦ ´ó¶Ë·½Ê½ µØÖ· Êý¾Ý С¶Ë·½Ê½ µØÖ· Êý¾Ý 0x2004 0x12 0x2003 0x34 0x2002 0x56 0x2001 0x78 0x2003 0x78 0x2002 0x56 0x2001 0x34 0x2000 0x12 CM4´¦ÀíÆ÷ͬʱ֧³ÖС¶ËºÍ´ó¶ËµÄ´æ´¢Æ÷ϵͳ¡£CMµÄ΢¿ØÖÆÆ÷´ó¶àÊÇС¶ËµÄ¡£

ÁªÏµºÏͬ·¶ÎÄ¿Í·þ£ºxxxxx#qq.com(#Ì滻Ϊ@)