第 1 ç« ç»ª 论 æœ¬ç« å°†å¯¹åµŒå…¥å¼ç³»ç»Ÿè¿›è¡Œæ¦‚述,介ç»åµŒå…¥å¼ç³»ç»Ÿçš„组æˆã€å®žæ—¶æ“作系统ã€åµŒå…¥å¼ç³»ç»Ÿçš„ 软件ã€åµŒå…¥å¼ç³»ç»Ÿçš„分类ã€åµŒå…¥å¼ç³»ç»Ÿçš„应用领域ã€åµŒå…¥å¼ç³»ç»Ÿçš„体系和嵌入å¼ç³»ç»Ÿçš„设计 方法。 1.1 嵌入å¼ç³»ç»Ÿ éšç€è®¡ç®—æœºæŠ€æœ¯çš„ä¸æ–å‘展,计算机的处ç†é€Ÿåº¦è¶Šæ¥è¶Šå¿«ï¼Œå˜å‚¨å®¹é‡è¶Šæ¥è¶Šå¤§ï¼Œå¤–围设 备的性能越æ¥è¶Šå¥½ï¼Œæ»¡è¶³äº†é«˜é€Ÿæ•°å€¼è®¡ç®—å’Œæµ·é‡æ•°æ®å¤„ç†çš„需è¦ï¼Œå½¢æˆäº†é«˜æ€§èƒ½çš„通用计算 机系统。 微课视频 以往按照计算机的体系结构ã€è¿ç®—速度ã€ç»“构规模ã€é€‚用领域,计算机å¯åˆ†ä¸ºå¤§åž‹æœºã€ ä¸åž‹æœºã€å°åž‹æœºå’Œå¾®åž‹æœºï¼Œå¹¶ä»¥æ¤ç»„织å¦ç§‘和产业分工,这ç§åˆ†ç±»æ²¿è¢äº†çº¦ 40 年。近 20 å¹´ æ¥ï¼Œéšç€è®¡ç®—机技术的迅速å‘展,以åŠè®¡ç®—机技术和产å“对其他行业的广泛渗é€ï¼Œä»¥åº”用为 ä¸å¿ƒçš„分类方法å˜å¾—æ›´åŠ åˆ‡åˆå®žé™…。 电气与电å工程师å¦ä¼šï¼ˆInstitute of Electrical and Electronics Engineers,IEEE)定义的 嵌入å¼ç³»ç»Ÿï¼ˆEmbedded Systems)是“用于控制ã€ç›‘视或辅助æ“作机器和设备è¿è¡Œçš„装置â€â‘ 。 è¿™ä¸»è¦æ˜¯ä»Žåº”ç”¨ä¸ŠåŠ ä»¥å®šä¹‰çš„ï¼Œä»Žä¸å¯ä»¥çœ‹å‡ºåµŒå…¥å¼ç³»ç»Ÿæ˜¯è½¯ä»¶å’Œç¡¬ä»¶çš„综åˆä½“,还å¯ä»¥æ¶µ 盖机械ç‰é™„属装置。 国内普é认åŒçš„嵌入å¼ç³»ç»Ÿçš„定义是:以计算机技术为基础,以应用为ä¸å¿ƒï¼Œè½¯ä»¶ã€ç¡¬ ä»¶å¯å‰ªè£ï¼Œé€‚åˆåº”用系统对功能å¯é æ€§ã€æˆæœ¬ã€ä½“积ã€åŠŸè€—ä¸¥æ ¼è¦æ±‚的专业计算机系统。在 æž„æˆä¸Šï¼ŒåµŒå…¥å¼ç³»ç»Ÿä»¥å¾®æŽ§åˆ¶å™¨åŠè½¯ä»¶ä¸ºæ ¸å¿ƒéƒ¨ä»¶ï¼Œä¸¤è€…缺一ä¸å¯ï¼›åœ¨ç‰¹å¾ä¸Šï¼ŒåµŒå…¥å¼ç³»ç»Ÿ 具有方便ã€çµæ´»åœ°åµŒå…¥å…¶ä»–应用系统的特å¾ï¼Œå³å…·æœ‰å¾ˆå¼ºçš„å¯åµŒå…¥æ€§ã€‚ 按嵌入å¼å¾®æŽ§åˆ¶å™¨ç±»åž‹åˆ’分,嵌入å¼ç³»ç»Ÿå¯åˆ†ä¸ºä»¥å•ç‰‡æœºä¸ºæ ¸å¿ƒçš„åµŒå…¥å¼å•片机系统〠以工业计算机æ¿ä¸ºæ ¸å¿ƒçš„嵌入å¼è®¡ç®—机系统ã€ä»¥æ•°å—ä¿¡å·å¤„ç†å™¨ï¼ˆDigital Signal Processor, ①原文为 devices used to control, monitor, or assist the operation of equipment, machinery or plants。 全书.indd 1 2024/3/16 14:51:04 2 Arm 嵌入å¼ç³»ç»ŸåŽŸç†åŠåº”用——STM32F103 微控制器架构ã€ç¼–ç¨‹ä¸Žå¼€å‘ DSPï¼‰ä¸ºæ ¸å¿ƒçš„åµŒå…¥å¼æ•°å—ä¿¡å·å¤„ç†å™¨ç³»ç»Ÿã€ä»¥çŽ°åœºå¯ç¼–程门阵列(Field Programmable Gate Array,FPGAï¼‰ä¸ºæ ¸å¿ƒçš„åµŒå…¥å¼å¯ç¼–程片上系统(System on a Programmable Chip, SOPC)ç‰ã€‚ 嵌入å¼ç³»ç»Ÿåœ¨å«ä¹‰ä¸Šä¸Žä¼ 统的å•片机系统和计算机系统有很多é‡å 部分。为了方便区分, 在实际应用ä¸ï¼ŒåµŒå…¥å¼ç³»ç»Ÿè¿˜åº”该具备以下 3 个特å¾ã€‚ (1)嵌入å¼ç³»ç»Ÿçš„微控制器通常是由 32 ä½åŠä»¥ä¸Šçš„精简指令集计算机(Reduced Instruction Set Computer,RISC)处ç†å™¨ç»„æˆçš„。 (2)嵌入å¼ç³»ç»Ÿçš„è½¯ä»¶ç³»ç»Ÿé€šå¸¸æ˜¯ä»¥åµŒå…¥å¼æ“ä½œç³»ç»Ÿä¸ºæ ¸å¿ƒï¼Œå¤–åŠ ç”¨æˆ·åº”ç”¨ç¨‹åºã€‚ (3)嵌入å¼ç³»ç»Ÿåœ¨ç‰¹å¾ä¸Šå…·æœ‰æ˜Žæ˜¾çš„å¯åµŒå…¥æ€§ã€‚ 嵌入å¼ç³»ç»Ÿåº”用ç»åŽ†äº†æ— æ“作系统ã€å•æ“作系统ã€å®žæ—¶æ“作系统和é¢å‘ Internet 4 个阶段。 21 ä¸–çºªæ— ç–‘æ˜¯ä¸€ä¸ªç½‘ç»œçš„æ—¶ä»£ï¼Œäº’è”网的快速å‘展åŠå¹¿æ³›åº”用为嵌入å¼ç³»ç»Ÿçš„å‘展åŠåº”用 æä¾›äº†è‰¯å¥½çš„æœºé‡ã€‚“人工智能â€è¿™ä¸€æŠ€æœ¯ä¸€å¤œä¹‹é—´äººå°½çš†çŸ¥ï¼Œè€ŒåµŒå…¥å¼åœ¨å…¶å‘å±•è¿‡ç¨‹ä¸æ‰® æ¼”ç€é‡è¦è§’色。 嵌入å¼ç³»ç»Ÿçš„广泛应用和互è”网的å‘展导致了物è”网概念的诞生,设备与设备之间ã€è®¾ 备与人之间以åŠäººä¸Žäººä¹‹é—´è¦æ±‚实时互è”ï¼Œå¯¼è‡´äº†å¤§é‡æ•°æ®çš„产生,大数æ®ä¸€åº¦æˆä¸ºç§‘æŠ€å‰ æ²¿ï¼Œæ¯å¤©ä¸–界å„地产生的数æ®é‡å‘ˆæŒ‡æ•°å¢žé•¿ï¼Œæ•°æ®è¿œç¨‹åˆ†æžæˆä¸ºå¿…ç„¶è¦æ±‚,云计算被æä¸Š 日程。数æ®å˜å‚¨ã€ä¼ 输ã€åˆ†æžç‰æŠ€æœ¯çš„å‘å±•æ— å½¢ä¸å‚¬ç”Ÿäº†äººå·¥æ™ºèƒ½ï¼Œå› æ¤äººå·¥æ™ºèƒ½çœ‹ä¼¼çªç„¶ 出现在大众视野,实则ç»åŽ†äº†è¿‘åŠä¸ªä¸–纪的漫长å‘å±•ï¼Œå…¶åˆ¶çº¦å› ç´ ä¹‹ä¸€å°±æ˜¯å¤§æ•°æ®ã€‚而嵌入 å¼ç³»ç»Ÿæ£æ˜¯èŽ·å–æ•°æ®çš„æœ€å…³é”®çš„系统之一。人工智能的å‘展å¯ä»¥è¯´æ˜¯åµŒå…¥å¼ç³»ç»Ÿå‘展的产 ç‰©ï¼ŒåŒæ—¶äººå·¥æ™ºèƒ½çš„å‘å±•è¦æ±‚æ›´å¤šã€æ›´ç²¾å‡†çš„æ•°æ®ï¼Œä»¥åŠæ›´å¿«ã€æ›´æ–¹ä¾¿çš„æ•°æ®ä¼ 输。这促进 了嵌入å¼ç³»ç»Ÿçš„å‘展,两者相辅相æˆï¼ŒåµŒå…¥å¼ç³»ç»Ÿå¿…å°†è¿›å…¥ä¸€ä¸ªæ›´åŠ å¿«é€Ÿçš„å‘展时期。 1.1.1 嵌入å¼ç³»ç»Ÿæ¦‚è¿° 嵌入å¼ç³»ç»Ÿçš„å‘展大致ç»åŽ†äº†ä»¥ä¸‹ 3 个阶段。 (1)以嵌入å¼å¾®æŽ§åˆ¶å™¨ä¸ºåŸºç¡€çš„åˆçº§åµŒå…¥å¼ç³»ç»Ÿã€‚ (2ï¼‰ä»¥åµŒå…¥å¼æ“作系统为基础的ä¸çº§åµŒå…¥å¼ç³»ç»Ÿã€‚ (3)以 Internet 和实时æ“作系统(Real Time Operating System,RTOS)为基础的高级嵌 å…¥å¼ç³»ç»Ÿã€‚ åµŒå…¥å¼æŠ€æœ¯ä¸Ž Internet æŠ€æœ¯çš„ç»“åˆæ£åœ¨æŽ¨åЍç€åµŒå…¥å¼ç³»ç»Ÿçš„飞速å‘展,嵌入å¼ç³»ç»Ÿå¸‚场 å±•çŽ°å‡ºäº†ç¾Žå¥½çš„å‰æ™¯ï¼Œä¹Ÿå¯¹åµŒå…¥å¼ç³»ç»Ÿçš„生产厂商æå‡ºäº†æ–°çš„æŒ‘战。 é€šç”¨è®¡ç®—æœºå…·æœ‰è®¡ç®—æœºçš„æ ‡å‡†å½¢å¼ï¼Œé€šè¿‡è£…é…ä¸åŒçš„应用软件,应用在社会的å„个方é¢ã€‚ 现在,在办公室ã€å®¶åºä¸å¹¿æ³›ä½¿ç”¨çš„个人计算机(Personal Computer,PC)就是通用计算 机最典型的代表。 而嵌入å¼è®¡ç®—机则是以嵌入å¼ç³»ç»Ÿçš„å½¢å¼éšè—在å„ç§è£…ç½®ã€äº§å“和系统ä¸ã€‚在许多应用 é¢†åŸŸï¼Œå¦‚å·¥ä¸šæŽ§åˆ¶ã€æ™ºèƒ½ä»ªå™¨ä»ªè¡¨ã€å®¶ç”¨ç”µå™¨ã€ç”µå通信设备ç‰ï¼Œå¯¹åµŒå…¥å¼è®¡ç®—机的应用有 全书.indd 2 2024/3/16 14:51:04 第 1 ç« â€ƒ 绪论 3 ç€ä¸åŒçš„è¦æ±‚,主è¦å¦‚下。 (1)能é¢å¯¹æŽ§åˆ¶å¯¹è±¡ï¼Œå¦‚é¢å¯¹ç‰©ç†é‡ä¼ 感器的信å·è¾“å…¥ã€é¢å¯¹äººæœºäº¤äº’çš„æ“作控制ã€é¢ 对对象的伺æœé©±åŠ¨å’ŒæŽ§åˆ¶ã€‚ (2)å¯åµŒå…¥åº”用系统。由于体积å°ã€ä½ŽåŠŸè€—ã€ä»·æ ¼ä½Žå»‰ï¼Œå¯æ–¹ä¾¿åœ°åµŒå…¥åº”用系统和电å 产å“ä¸ã€‚ (3)能在工业现场环境ä¸é•¿æ—¶é—´å¯é è¿è¡Œã€‚ (4)控制功能优良。对外部的å„ç§æ¨¡æ‹Ÿå’Œæ•°å—ä¿¡å·èƒ½åŠæ—¶æ•æ‰ï¼Œå¯¹å¤šç§ä¸åŒçš„æŽ§åˆ¶å¯¹è±¡ èƒ½çµæ´»åœ°è¿›è¡Œå®žæ—¶æŽ§åˆ¶ã€‚ å¯ä»¥çœ‹å‡ºï¼Œæ»¡è¶³ä¸Šè¿°è¦æ±‚的计算机系统与通用计算机系统是ä¸åŒçš„。æ¢å¥è¯è®²ï¼Œèƒ½å¤Ÿæ»¡ 足和适åˆä»¥ä¸Šè¿™äº›åº”ç”¨çš„è®¡ç®—æœºç³»ç»Ÿä¸Žé€šç”¨è®¡ç®—æœºç³»ç»Ÿåœ¨åº”ç”¨ç›®æ ‡ä¸Šæœ‰å·¨å¤§çš„å·®å¼‚ã€‚ä¸€èˆ¬å°† 具备高速计算能力和海é‡å˜å‚¨ï¼Œç”¨äºŽé«˜é€Ÿæ•°å€¼è®¡ç®—å’Œæµ·é‡æ•°æ®å¤„ç†çš„计算机称为通用计算机 系统。而将é¢å¯¹å·¥æŽ§é¢†åŸŸå¯¹è±¡ï¼ŒåµŒå…¥å„ç§æŽ§åˆ¶åº”ç”¨ç³»ç»Ÿã€å„类电å系统和电å产å“ä¸ï¼Œå®žçް 嵌入å¼åº”用的计算机系统称为嵌入å¼è®¡ç®—机系统,简称为嵌入å¼ç³»ç»Ÿã€‚ 嵌入å¼ç³»ç»Ÿå°†åº”用程åºå’Œæ“作系统与计算机硬件集æˆåœ¨ä¸€èµ·ï¼Œç®€å•地讲,就是系统的应 用软件与系统的硬件一体化。这ç§ç³»ç»Ÿå…·æœ‰è½¯ä»¶ä»£ç å°ã€é«˜åº¦è‡ªåŠ¨åŒ–ã€å“应速度快ç‰ç‰¹ç‚¹ï¼Œ 特别适åˆé¢å‘å¯¹è±¡çš„è¦æ±‚实时和多任务的应用。 ç‰¹å®šçš„çŽ¯å¢ƒå’Œç‰¹å®šçš„åŠŸèƒ½è¦æ±‚嵌入å¼ç³»ç»Ÿä¸Žæ‰€åµŒå…¥çš„应用环境æˆä¸ºä¸€ä¸ªç»Ÿä¸€çš„æ•´ä½“,并 ä¸”å¾€å¾€è¦æ»¡è¶³ç´§å‡‘ã€å¯é 性高ã€å®žæ—¶æ€§å¥½ã€åŠŸè€—ä½Žç‰æŠ€æœ¯è¦æ±‚。é¢å‘具体应用的嵌入å¼ç³»ç»Ÿï¼Œ 以åŠç³»ç»Ÿçš„è®¾è®¡æ–¹æ³•å’Œå¼€å‘æŠ€æœ¯ï¼Œæž„æˆäº†ä»Šå¤©åµŒå…¥å¼ç³»ç»Ÿçš„é‡è¦å†…涵,也是嵌入å¼ç³»ç»Ÿå‘展 ä¸ºä¸€ä¸ªç›¸å¯¹ç‹¬ç«‹çš„è®¡ç®—æœºç ”ç©¶å’Œå¦ä¹ é¢†åŸŸçš„åŽŸå› ã€‚ 1.1.2 嵌入å¼ç³»ç»Ÿå’Œé€šç”¨è®¡ç®—机系统比较 作为计算机系统的ä¸åŒåˆ†æ”¯ï¼ŒåµŒå…¥å¼ç³»ç»Ÿå’Œäººä»¬ç†Ÿæ‚‰çš„通用计算机系统既有共性,也有 差异。 1.嵌入å¼ç³»ç»Ÿå’Œé€šç”¨è®¡ç®—机系统的共åŒç‚¹ 嵌入å¼ç³»ç»Ÿå’Œé€šç”¨è®¡ç®—机系统都属于计算机系统,从系统组æˆä¸Šè®²ï¼Œå®ƒä»¬éƒ½æ˜¯ç”±ç¡¬ä»¶å’Œ 软件构æˆçš„ï¼›å®ƒä»¬çš„å·¥ä½œåŽŸç†æ˜¯ç›¸åŒçš„,都是å˜å‚¨ç¨‹åºæœºåˆ¶ã€‚从硬件上看,嵌入å¼ç³»ç»Ÿå’Œé€š 用计算机系统都是由ä¸å¤®å¤„ç†å™¨ï¼ˆCentral Processing Unit,CPU)ã€å˜å‚¨å™¨ã€è¾“å…¥ / è¾“å‡ºæŽ¥å£ å’Œä¸æ–系统ç‰éƒ¨ä»¶ç»„æˆï¼›ä»Žè½¯ä»¶ä¸Šçœ‹ï¼ŒåµŒå…¥å¼ç³»ç»Ÿè½¯ä»¶å’Œé€šç”¨è®¡ç®—机软件都å¯ä»¥åˆ’分为系统 软件和应用软件两类。 2.嵌入å¼ç³»ç»Ÿå’Œé€šç”¨è®¡ç®—机系统的ä¸åŒç‚¹ 作为计算机系统的一个新兴的分支,嵌入å¼ç³»ç»Ÿä¸Žäººä»¬ç†Ÿæ‚‰å’Œå¸¸ç”¨çš„通用计算机系统相 比,åˆå…·æœ‰ä»¥ä¸‹ä¸åŒç‚¹ã€‚ (1)形æ€ã€‚通用计算机系统具有基本相åŒçš„å¤–å½¢ï¼ˆå¦‚ä¸»æœºã€æ˜¾ç¤ºå™¨ã€é¼ æ ‡å’Œé”®ç›˜ç‰ï¼‰å¹¶ 且独立å˜åœ¨ï¼›è€ŒåµŒå…¥å¼ç³»ç»Ÿé€šå¸¸éšè—在具体æŸä¸ªäº§å“æˆ–è®¾å¤‡ï¼ˆç§°ä¸ºå®¿ä¸»å¯¹è±¡ï¼Œå¦‚ç©ºè°ƒã€æ´—è¡£ 全书.indd 3 2024/3/16 14:51:04 4 Arm 嵌入å¼ç³»ç»ŸåŽŸç†åŠåº”用——STM32F103 微控制器架构ã€ç¼–ç¨‹ä¸Žå¼€å‘ æœºã€æ•°å—机顶盒ç‰ï¼‰ä¸ï¼Œå®ƒçš„å½¢æ€éšç€äº§å“或设备的ä¸åŒè€Œä¸åŒã€‚ (2ï¼‰åŠŸèƒ½ã€‚é€šç”¨è®¡ç®—æœºç³»ç»Ÿä¸€èˆ¬å…·æœ‰é€šç”¨è€Œå¤æ‚的功能,任æ„一å°é€šç”¨è®¡ç®—机都具有文 档编辑ã€å½±éŸ³æ’放ã€å¨±ä¹æ¸¸æˆã€ç½‘上è´ç‰©å’Œé€šä¿¡èŠå¤©ç‰é€šç”¨åŠŸèƒ½ï¼›è€ŒåµŒå…¥å¼ç³»ç»ŸåµŒå…¥åœ¨æŸä¸ª 宿主对象ä¸ï¼ŒåŠŸèƒ½ç”±å®¿ä¸»å¯¹è±¡å†³å®šï¼Œå…·æœ‰ä¸“ç”¨æ€§ï¼Œé€šå¸¸æ˜¯ä¸ºæŸä¸ªåº”用é‡èº«å®šåšçš„。 (3)功耗。目å‰ï¼Œé€šç”¨è®¡ç®—机系统的功耗一般为 200W å·¦å³ï¼›è€ŒåµŒå…¥å¼ç³»ç»Ÿçš„宿主对 象通常是å°åž‹åº”ç”¨ç³»ç»Ÿï¼Œå¦‚æ‰‹æœºã€æ™ºèƒ½æ‰‹çޝç‰ï¼Œè¿™äº›è®¾å¤‡ä¸å¯èƒ½é…置容é‡è¾ƒå¤§çš„电æºï¼Œå› æ¤ä½ŽåŠŸè€—ä¸€ç›´æ˜¯åµŒå…¥å¼ç³»ç»Ÿè¿½æ±‚çš„ç›®æ ‡ï¼Œå¦‚æ—¥å¸¸ç”Ÿæ´»ä¸ä½¿ç”¨çš„æ™ºèƒ½æ‰‹æœºï¼Œå…¶å¾…机功率为 100 ~ 200mW,å³ä½¿åœ¨é€šè¯æ—¶åŠŸçŽ‡ä¹Ÿåªæœ‰ 4 ~ 5W。 (4)资æºã€‚通用计算机系统通常拥有大而全的资æºï¼ˆå¦‚é¼ æ ‡ã€é”®ç›˜ã€ç¡¬ç›˜ã€å†…å˜æ¡å’Œæ˜¾ 示器ç‰ï¼‰ï¼›è€ŒåµŒå…¥å¼ç³»ç»Ÿå—é™äºŽåµŒå…¥çš„å®¿ä¸»å¯¹è±¡ï¼ˆå¦‚æ‰‹æœºã€æ™ºèƒ½æ‰‹çޝç‰ï¼‰ï¼Œé€šå¸¸è¦æ±‚å°åž‹åŒ–å’Œ 低功耗,其软硬件资æºå—åˆ°ä¸¥æ ¼çš„é™åˆ¶ã€‚ (5)价值。通用计算机系统的价值体现在“计算â€å’Œâ€œå˜å‚¨â€ä¸Šï¼Œè®¡ç®—能力(处ç†å™¨çš„ å—长和主频ç‰ï¼‰å’Œå˜å‚¨èƒ½åŠ›ï¼ˆå†…å˜å’Œç¡¬ç›˜çš„大å°å’Œè¯»å–速度ç‰ï¼‰æ˜¯é€šç”¨è®¡ç®—机系统的通用评 ä»·æŒ‡æ ‡ï¼›è€ŒåµŒå…¥å¼ç³»ç»Ÿå¾€å¾€åµŒå…¥æŸä¸ªè®¾å¤‡å’Œäº§å“ä¸ï¼Œå…¶ä»·å€¼ä¸€èˆ¬ä¸å–决于其内嵌的处ç†å™¨çš„ æ€§èƒ½ï¼Œè€Œä½“çŽ°åœ¨å®ƒæ‰€åµŒå…¥å’ŒæŽ§åˆ¶çš„è®¾å¤‡ã€‚ä¾‹å¦‚ï¼Œä¸€å°æ™ºèƒ½æ´—è¡£æœºå¾€å¾€ç”¨æ´—å‡€æ¯”ã€æ´—涤容é‡å’Œ è„±æ°´è½¬é€Ÿç‰æŒ‡æ ‡è¡¡é‡ï¼Œè€Œä¸ä»¥å…¶å†…嵌的微控制器的è¿ç®—速度和å˜å‚¨å®¹é‡ç‰æ¥è¡¡é‡ã€‚ 1.1.3 嵌入å¼ç³»ç»Ÿçš„特点 通过嵌入å¼ç³»ç»Ÿçš„定义和嵌入å¼ç³»ç»Ÿä¸Žé€šç”¨è®¡ç®—机系统的比较,å¯ä»¥çœ‹å‡ºåµŒå…¥å¼ç³»ç»Ÿå…· 有以下特点。 1.专用性强 嵌入å¼ç³»ç»Ÿé€šå¸¸æ˜¯é’ˆå¯¹æŸç§ç‰¹å®šçš„应用场景,与具体应用密切相关,其硬件和软件都是 é¢å‘ç‰¹å®šäº§å“æˆ–任务而设计的。ä¸ä½†ä¸€ç§äº§å“ä¸çš„嵌入å¼ç³»ç»Ÿä¸èƒ½åº”用到å¦ä¸€ç§äº§å“ä¸ï¼Œç”š 至都ä¸èƒ½åµŒå…¥åŒä¸€ç§äº§å“çš„ä¸åŒç³»åˆ—。例如,洗衣机的控制系统ä¸èƒ½åº”用到洗碗机ä¸ï¼Œç”šè‡³ ä¸åŒåž‹å·æ´—衣机ä¸çš„æŽ§åˆ¶ç³»ç»Ÿä¹Ÿä¸èƒ½ç›¸äº’替æ¢ï¼Œå› æ¤åµŒå…¥å¼ç³»ç»Ÿå…·æœ‰å¾ˆå¼ºçš„专用性。 2.å¯è£å‰ªæ€§ å—é™äºŽä½“积ã€åŠŸè€—å’Œæˆæœ¬ç‰å› ç´ ï¼ŒåµŒå…¥å¼ç³»ç»Ÿçš„ç¡¬ä»¶å’Œè½¯ä»¶å¿…é¡»é«˜æ•ˆçŽ‡åœ°è®¾è®¡ï¼Œæ ¹æ®å®ž 际应用需求“é‡ä½“è£è¡£â€ï¼ŒåŽ»é™¤å†—ä½™ï¼Œä»Žè€Œä½¿ç³»ç»Ÿåœ¨æ»¡è¶³åº”ç”¨è¦æ±‚çš„å‰æä¸‹è¾¾åˆ°æœ€ç²¾ç®€çš„é…置。 3.实时性好 许多嵌入å¼ç³»ç»Ÿåº”用于宿主系统的数æ®é‡‡é›†ã€ä¼ 输与控制过程时,普éè¦æ±‚嵌入å¼ç³»ç»Ÿ 具有较好的实时性。例如,现代汽车ä¸çš„制动器ã€å®‰å…¨æ°”囊控制系统,æ¦å™¨è£…备ä¸çš„æŽ§åˆ¶ç³» 统,æŸäº›å·¥ä¸šè£…ç½®ä¸çš„æŽ§åˆ¶ç³»ç»Ÿç‰ï¼Œè¿™äº›åº”ç”¨å¯¹å®žæ—¶æ€§æœ‰ç€æžé«˜çš„è¦æ±‚,一旦达ä¸åˆ°åº”有的 实时性,就有å¯èƒ½é€ æˆæžå…¶ä¸¥é‡çš„åŽæžœã€‚å¦å¤–,虽然有些系统本身的è¿è¡Œå¯¹å®žæ—¶æ€§è¦æ±‚䏿˜¯ 很高,但实时性也会对用户体验感产生影å“,如需è¦é¿å…人机交互的å¡é¡¿ã€é¥æŽ§å应迟é’ç‰ æƒ…å†µã€‚ 全书.indd 4 2024/3/16 14:51:05 第 1 ç« â€ƒ 绪论 5 4.å¯é 性高 嵌入å¼ç³»ç»Ÿçš„应用场景多ç§å¤šæ ·ï¼Œé¢å¯¹å¤æ‚的应用环境,嵌入å¼ç³»ç»Ÿåº”能够长时间稳 定å¯é 地è¿è¡Œã€‚在æŸäº›åº”用ä¸ï¼ŒåµŒå…¥å¼ç³»ç»Ÿç¡¬ä»¶æˆ–软件ä¸å˜åœ¨çš„ä¸€ä¸ªå° Bug,都有å¯èƒ½å¯¼è‡´ ç¾é𾿀§åŽæžœçš„å‘生。例如,波音 737 MAX 客机在 2018— 2019 年相继å‘生的两起é‡å¤§ç©ºéš¾ï¼Œ éƒ½æ˜¯å› ä¸ºè¿Žè§’ä¼ æ„Ÿå™¨ï¼ˆAngle of Attack,AOA)的数æ®é”™è¯¯ï¼Œè§¦å‘了防失速控制系统自动æ“作, æœºå¤´ä¸æ–ä¸‹åŽ‹ã€‚é£žè¡Œå‘˜å¤šæ¬¡æ‰‹åŠ¨æ‹‰ä¼¸æœªæžœï¼Œæœ€ç»ˆå¯¼è‡´é£žæœºå æ¯çš„ç¾é𾿀§äº‹æ•…。由æ¤å¯è§ï¼Œé«˜ å¯é æ€§è¦æ±‚是特殊应用ä¸åµŒå…¥å¼ç³»ç»Ÿçš„æ˜¾è‘—特å¾ã€‚ 5.体积å°ã€åŠŸè€—ä½Ž 由于嵌入å¼ç³»ç»Ÿè¦åµŒå…¥å…·ä½“的应用对象体ä¸ï¼Œå…¶ä½“积大å°å—é™äºŽå®¿ä¸»å¯¹è±¡ï¼Œå› æ¤å¾€å¾€å¯¹ 其体积有ç€ä¸¥æ ¼çš„è¦æ±‚。例如,心è„èµ·æå™¨å°±åªæœ‰ä¸€ç²’胶囊的大å°ã€‚2020 å¹´ 8 月,埃隆·马 斯克å‘布的拥有 1024 个信é“çš„ Neuralink 脑机接å£åªæœ‰ä¸€æžšç¡¬å¸å¤§å°ã€‚åŒæ—¶ï¼Œç”±äºŽåµŒå…¥å¼ 系统在移动设备ã€å¯ç©¿æˆ´è®¾å¤‡ä»¥åŠæ— 人机ã€äººé€ 嫿˜Ÿç‰åº”用设备ä¸ä¸å¯èƒ½é…置交æµç”µæºæˆ–大 容é‡çš„ç”µæ± ï¼Œå› æ¤ä½ŽåŠŸè€—ä¹Ÿå¾€å¾€æ˜¯åµŒå…¥å¼ç³»ç»Ÿæ‰€è¿½æ±‚的一个é‡è¦æŒ‡æ ‡ã€‚ 6.注é‡åˆ¶é€ æˆæœ¬ 与其他商å“ä¸€æ ·ï¼Œåˆ¶é€ æˆæœ¬ä¼šå¯¹åµŒå…¥å¼ç³»ç»Ÿè®¾å¤‡æˆ–产å“在市场上的竞争力有很大的影 å“ã€‚åŒæ—¶ï¼ŒåµŒå…¥å¼ç³»ç»Ÿäº§å“通常会进行大é‡ç”Ÿäº§ã€‚例如,现在的消费类嵌入å¼ç³»ç»Ÿäº§å“,通 常的年产é‡ä¼šåœ¨ç™¾ä¸‡ã€åƒä¸‡ç”šè‡³äº¿æ•°é‡çº§ã€‚节约å•个产å“çš„åˆ¶é€ æˆæœ¬ï¼Œæ„å‘³ç€æ€»åˆ¶é€ æˆæœ¬çš„ æµ·é‡èŠ‚çº¦ï¼Œä¼šäº§ç”Ÿå¯è§‚çš„ç»æµŽæ•ˆç›Šã€‚å› æ¤ï¼Œæ³¨é‡åµŒå…¥å¼ç³»ç»Ÿçš„硬件和软件的高效设计,在满 è¶³åº”ç”¨éœ€æ±‚çš„å‰æä¸‹æœ‰æ•ˆåœ°é™ä½Žå•个产å“çš„åˆ¶é€ æˆæœ¬ï¼Œä¹Ÿæˆä¸ºåµŒå…¥å¼ç³»ç»Ÿæ‰€è¿½æ±‚çš„é‡è¦ç›®æ ‡ 之一。 7.生命周期长 éšç€è®¡ç®—机技术的飞速å‘å±•ï¼Œåƒæ¡Œé¢è®¡ç®—机ã€ç¬”è®°æœ¬ç”µè„‘ä»¥åŠæ™ºèƒ½æ‰‹æœºè¿™æ ·çš„通用计算 机系统的更新æ¢ä»£é€Ÿåº¦å¤§å¤§åŠ å¿«ï¼Œæ›´æ–°å‘¨æœŸé€šå¸¸ä¸º 18 个月左å³ã€‚然而,嵌入å¼ç³»ç»Ÿå’Œå®žé™… 具体应用装置或系统紧密结åˆï¼Œä¸€èˆ¬ä¼šä¼´éšå…·ä½“嵌入的产å“ç»´æŒ 8 ~ 10 年的相对较长的使 用时间,其å‡çº§æ¢ä»£å¾€å¾€æ˜¯å’Œå®¿ä¸»å¯¹è±¡ç³»ç»ŸåŒæ¥è¿›è¡Œçš„ã€‚å› æ¤ï¼Œç›¸è¾ƒäºŽé€šç”¨è®¡ç®—机系统,嵌 å…¥å¼ç³»ç»Ÿäº§å“一旦进入市场åŽï¼Œä¸ä¼šåƒé€šç”¨è®¡ç®—æœºç³»ç»Ÿé‚£æ ·é¢‘ç¹æ¢ä»£ï¼Œé€šå¸¸å…·æœ‰è¾ƒé•¿çš„生命 周期。 8.ä¸å¯åž„æ–æ€§ ä»£è¡¨ä¼ ç»Ÿè®¡ç®—æœºè¡Œä¸šçš„ Wintel(Windows-Intel)è”盟统治桌é¢è®¡ç®—机市场长达 30 多年, å½¢æˆäº†äº‹å®žä¸Šçš„市场垄æ–。而嵌入å¼ç³»ç»Ÿæ˜¯å°†å…ˆè¿›çš„计算机技术ã€åŠå¯¼ä½“ç”µåæŠ€æœ¯å’Œç½‘络通 信技术与å„个行业的具体应用相结åˆåŽçš„äº§ç‰©ï¼Œå…¶æ‹¥æœ‰æ›´ä¸ºå¹¿é˜”å’Œå¤šæ ·åŒ–çš„åº”ç”¨å¸‚åœºï¼Œè¡Œä¸š 细分市场æžå…¶å®½æ³›ï¼Œè¿™ä¸€ç‚¹å°±å†³å®šäº†åµŒå…¥å¼ç³»ç»Ÿå¿…然是一个技术密集ã€èµ„金密集ã€é«˜åº¦åˆ†æ•£ã€ 䏿–创新的知识集æˆç³»ç»Ÿã€‚特别是 5G 技术ã€ç‰©è”网技术ã€äººå·¥æ™ºèƒ½æŠ€æœ¯ä¸ŽåµŒå…¥å¼ç³»ç»Ÿçš„å¿« 速èžåˆï¼Œå‚¬ç”Ÿäº†åµŒå…¥å¼ç³»ç»Ÿåˆ›æ–°äº§å“çš„ä¸æ–涌现,没有一家ä¼ä¸šèƒ½å¤Ÿå½¢æˆå¯¹åµŒå…¥å¼ç³»ç»Ÿå¸‚场 的垄æ–,给嵌入å¼ç³»ç»Ÿäº§å“çš„è®¾è®¡ç ”å‘æä¾›äº†å¹¿é˜”çš„å¸‚åœºç©ºé—´ã€‚ 全书.indd 5 2024/3/16 14:51:05 6 Arm 嵌入å¼ç³»ç»ŸåŽŸç†åŠåº”用——STM32F103 微控制器架构ã€ç¼–ç¨‹ä¸Žå¼€å‘ 1.2 嵌入å¼ç³»ç»Ÿçš„ç»„æˆ åµŒå…¥å¼ç³»ç»Ÿæ˜¯ä¸€ä¸ªåœ¨åŠŸèƒ½ã€å¯é æ€§ã€æˆæœ¬ã€ä½“ç§¯å’ŒåŠŸè€—ç‰æ–¹é¢æœ‰ä¸¥æ ¼è¦æ±‚的专用计算机 ç³»ç»Ÿï¼Œå› æ¤å…·æœ‰ä¸€èˆ¬è®¡ç®—机组æˆç»“构的共性。从总体上看,嵌入å¼ç³»ç»Ÿçš„æ ¸å¿ƒéƒ¨åˆ†ç”±åµŒå…¥å¼ 硬件和嵌入å¼è½¯ä»¶ç»„æˆï¼›ä»Žå±‚次结构上看,嵌入å¼ç³»ç»Ÿå¯åˆ’分为硬件层ã€é©±åŠ¨å±‚ã€æ“作系统 层以åŠåº”用层 4 个层次,如图 1-1 所示。 图 1-1 嵌入å¼ç³»ç»Ÿçš„组æˆç»“æž„ 嵌入å¼ç¡¬ä»¶ï¼ˆç¡¬ä»¶å±‚)是嵌入å¼ç³»ç»Ÿçš„物ç†åŸºç¡€ï¼Œä¸»è¦åŒ…括嵌入å¼å¤„ç†å™¨ã€å˜å‚¨å™¨ã€è¾“ å…¥ / 输出(I/O)接å£å’Œç”µæºç‰ã€‚å…¶ä¸ï¼ŒåµŒå…¥å¼å¤„ç†å™¨æ˜¯åµŒå…¥å¼ç³»ç»Ÿçš„ç¡¬ä»¶æ ¸å¿ƒï¼Œé€šå¸¸å¯åˆ† 微课视频 为嵌入å¼å¾®å¤„ç†å™¨ã€åµŒå…¥å¼å¾®æŽ§åˆ¶å™¨ã€åµŒå…¥å¼æ•°å—ä¿¡å·å¤„ç†å™¨ä»¥åŠåµŒå…¥å¼ç‰‡ä¸Šç³»ç»Ÿç‰ä¸»è¦ 类型。 å˜å‚¨å™¨æ˜¯åµŒå…¥å¼ç³»ç»Ÿç¡¬ä»¶çš„基本组æˆéƒ¨åˆ†ï¼ŒåŒ…æ‹¬éšæœºå˜å–å˜å‚¨å™¨ï¼ˆRandom Access Memory,RAM)〠Flashã€ç”µæ“¦é™¤å¯ç¼–程åªè¯»å˜å‚¨å™¨ï¼ˆElectrically-Erasable Programmable Read-Only Memory,EEPROM)ç‰ä¸»è¦ç±»åž‹ï¼Œæ‰¿æ‹…ç€å˜å‚¨åµŒå…¥å¼ç³»ç»Ÿç¨‹åºå’Œæ•°æ®çš„任务。 ç›®å‰çš„嵌入å¼å¤„ç†å™¨ä¸å·²ç»é›†æˆäº†è¾ƒä¸ºä¸°å¯Œçš„å˜å‚¨å™¨èµ„æºï¼ŒåŒæ—¶ä¹Ÿå¯é€šè¿‡ I/O 接å£åœ¨åµŒå…¥å¼ 处ç†å™¨å¤–部扩展å˜å‚¨å™¨ã€‚ I/O 接å£åŠè®¾å¤‡æ˜¯åµŒå…¥å¼ç³»ç»Ÿå¯¹å¤–è”系的纽带,负责与外部世界进行信æ¯äº¤æ¢ã€‚I/O 接 å£ä¸»è¦åŒ…æ‹¬æ•°å—æŽ¥å£å’Œæ¨¡æ‹ŸæŽ¥å£ä¸¤å¤§ç±»ï¼Œå…¶ä¸æ•°å—接å£åˆå¯åˆ†ä¸ºå¹¶è¡ŒæŽ¥å£å’Œä¸²è¡ŒæŽ¥å£ï¼Œæ¨¡æ‹Ÿ 接å£åŒ…括模数转æ¢å™¨ï¼ˆAnalog to Digital Converter,ADC)和数模转æ¢å™¨ï¼ˆDigital to Analog Converter,DAC)。并行接å£å¯ä»¥å®žçŽ°æ•°æ®çš„æ‰€æœ‰ä½åŒæ—¶å¹¶è¡Œä¼ è¾“ï¼Œä¼ è¾“é€Ÿåº¦å¿«ï¼Œä½†é€š ä¿¡çº¿è·¯å¤æ‚ï¼Œä¼ è¾“è·ç¦»çŸã€‚串行接å£åˆ™é‡‡ç”¨æ•°æ®ä½ä¸€ä½ä½é¡ºåºä¼ 输的方å¼ï¼Œé€šä¿¡çº¿è·¯å°‘, ä¼ è¾“è·ç¦»è¿œï¼Œä½†ä¼ è¾“é€Ÿåº¦ç›¸å¯¹è¾ƒæ…¢ã€‚å¸¸ç”¨çš„ä¸²è¡ŒæŽ¥å£æœ‰é€šç”¨åŒæ¥/å¼‚æ¥æ”¶å‘器(Universal Synchronous/Asnchronous Receiver/Transmitter,USART)接å£ã€ä¸²è¡Œå¤–设接å£ï¼ˆSerial Peripheral Interface,SPI)ã€èŠ¯ç‰‡é—´æ€»çº¿ï¼ˆP2C)接å£ä»¥åŠæŽ§åˆ¶å™¨å±€åŸŸç½‘ï¼ˆController Area Network,CAN)接å£ç‰ï¼Œå®žé™…åº”ç”¨æ—¶å¯æ ¹æ®éœ€è¦é€‰æ‹©ä¸åŒçš„æŽ¥å£ç±»åž‹ã€‚I/O 设备主è¦åŒ…括 äººæœºäº¤äº’è®¾å¤‡ï¼ˆæŒ‰é”®ã€æ˜¾ç¤ºå™¨ç‰ï¼‰å’Œæœºæœºäº¤äº’è®¾å¤‡ï¼ˆä¼ æ„Ÿå™¨ã€æ‰§è¡Œå™¨ç‰ï¼‰ï¼Œå¯æ ¹æ®å®žé™…应用 需求选择所需的设备类型。 全书.indd 6 2024/3/16 14:51:05 第 1 ç« â€ƒ 绪论 7 嵌入å¼è½¯ä»¶è¿è¡Œåœ¨åµŒå…¥å¼ç¡¬ä»¶å¹³å°ä¹‹ä¸Šï¼ŒæŒ‡æŒ¥åµŒå…¥å¼ç¡¬ä»¶å®ŒæˆåµŒå…¥å¼ç³»ç»Ÿçš„特定功能。 嵌入å¼è½¯ä»¶å¯åŒ…括硬件驱动(驱动层)ã€åµŒå…¥å¼æ“作系统(æ“作系统层)以åŠåµŒå…¥å¼åº”用软 件(应用层)3 个层次。å¦å¤–,有些系统包å«ä¸é—´å±‚,ä¸é—´å±‚也称为硬件抽象层(Hardware Abstract Layer,HAL)或æ¿çº§æ”¯æŒåŒ…(Board Support Package,BSP),对于底层硬件,它 主è¦è´Ÿè´£ç›¸å…³ç¡¬ä»¶è®¾å¤‡çš„é©±åŠ¨ï¼›è€Œå¯¹äºŽä¸Šå±‚çš„åµŒå…¥å¼æ“作系统或应用软件,它æä¾›äº†æ“作和 æŽ§åˆ¶ç¡¬ä»¶çš„è§„åˆ™ä¸Žæ–¹æ³•ã€‚åµŒå…¥å¼æ“作系统(æ“作系统层)是å¯é€‰çš„,简å•的嵌入å¼ç³»ç»Ÿæ— é¡» åµŒå…¥å¼æ“作系统的支æŒï¼Œç”±åº”ç”¨å±‚è½¯ä»¶é€šè¿‡é©±åŠ¨å±‚ç›´æŽ¥æŽ§åˆ¶ç¡¬ä»¶å±‚å®Œæˆæ‰€éœ€åŠŸèƒ½ï¼Œä¹Ÿç§°ä¸ºâ€œè£¸ 金属â€ï¼ˆBare-Metal)è¿è¡Œã€‚å¯¹äºŽå¤æ‚的嵌入å¼ç³»ç»Ÿï¼Œåº”用层软件通常需è¦åœ¨åµŒå…¥å¼æ“作系 ç»Ÿå†…æ ¸ä»¥åŠæ–‡ä»¶ç³»ç»Ÿã€å›¾å½¢ç”¨æˆ·ç•Œé¢ã€é€šä¿¡åè®®æ ˆç‰ç³»ç»Ÿç»„件的支æŒä¸‹ï¼Œå®Œæˆå¤æ‚的数æ®ç®¡ ç†ã€äººæœºäº¤äº’以åŠç½‘络通信ç‰åŠŸèƒ½ã€‚ 嵌入å¼å¤„ç†å™¨æ˜¯ä¸€ç§åœ¨åµŒå…¥å¼ç³»ç»Ÿä¸ä½¿ç”¨çš„微处ç†å™¨ã€‚从体系结构æ¥çœ‹ï¼Œä¸Žé€šç”¨ CPU ä¸€æ ·ï¼ŒåµŒå…¥å¼å¤„ç†å™¨ä¹Ÿåˆ†ä¸ºå†¯Â·è¯ºä¾æ›¼ï¼ˆvon Neumann)结构的嵌入å¼å¤„ç†å™¨å’Œå“ˆä½›ï¼ˆHarvard) 结构的嵌入å¼å¤„ç†å™¨ã€‚å†¯Â·è¯ºä¾æ›¼ç»“构是一ç§å°†å†…部程åºç©ºé—´å’Œæ•°æ®ç©ºé—´åˆå¹¶åœ¨ä¸€èµ·çš„结 æž„ï¼Œç¨‹åºæŒ‡ä»¤å’Œæ•°æ®çš„å˜å‚¨åœ°å€æŒ‡å‘åŒä¸€ä¸ªå˜å‚¨å™¨çš„ä¸åŒç‰©ç†ä½ç½®ï¼Œç¨‹åºæŒ‡ä»¤å’Œæ•°æ®çš„宽 度相åŒï¼Œå–æŒ‡ä»¤å’Œå–æ“作数通过åŒä¸€æ¡æ€»çº¿åˆ†æ—¶è¿›è¡Œã€‚大部分通用处ç†å™¨é‡‡ç”¨çš„æ˜¯å†¯Â·è¯ºä¾ 曼结构,也有ä¸å°‘嵌入å¼å¤„ç†å™¨é‡‡ç”¨å†¯Â·è¯ºä¾æ›¼ç»“构,如 Intel 8086ã€Arm7ã€MIPSã€PIC16 ç‰ã€‚哈佛结构是一ç§å°†ç¨‹åºç©ºé—´å’Œæ•°æ®ç©ºé—´åˆ†å¼€åœ¨ä¸åŒçš„å˜å‚¨å™¨ä¸çš„结构,æ¯ä¸ªç©ºé—´çš„å˜å‚¨ 器独立编å€ï¼Œç‹¬ç«‹è®¿é—®ï¼Œè®¾ç½®äº†ä¸Žä¸¤ä¸ªç©ºé—´å˜å‚¨å™¨ç›¸å¯¹åº”çš„ä¸¤å¥—åœ°å€æ€»çº¿å’Œæ•°æ®æ€»çº¿ï¼Œå– 指令和执行能够é‡å 进行,数æ®çš„åžå率æé«˜äº†ä¸€å€ï¼ŒåŒæ—¶æŒ‡ä»¤å’Œæ•°æ®å¯ä»¥æœ‰ä¸åŒçš„æ•°æ®å®½ 度。大多数嵌入å¼å¤„ç†å™¨é‡‡ç”¨äº†å“ˆä½›ç»“构或改进的哈佛结构,如 Intel 8051ã€Atmel AVR〠Arm9ã€Arm10ã€Arm11ã€Arm Cortex-M3 ç‰ç³»åˆ—嵌入å¼å¤„ç†å™¨ã€‚ 从指令集的角度看,嵌入å¼å¤„ç†å™¨ä¹Ÿæœ‰å¤æ‚指令集(Complex Instruction Set Computer, CISC)和精简指令集(Reduced Instruction Set Computer,RISCï¼‰ä¸¤ç§æŒ‡ä»¤é›†æž¶æž„。早期的 处ç†å™¨å…¨éƒ¨é‡‡ç”¨çš„æ˜¯ CISC 架构,它的设计动机是è¦ç”¨æœ€å°‘的机器è¯è¨€æŒ‡ä»¤å®Œæˆæ‰€éœ€çš„计算 任务。为了æé«˜ç¨‹åºçš„è¿è¡Œé€Ÿåº¦å’Œè½¯ä»¶ç¼–程的方便性,CISC 处ç†å™¨ä¸æ–å¢žåŠ å¯å®žçް夿‚功 能的指令和多ç§çµæ´»çš„坻倿–¹å¼ï¼Œä½¿å¤„ç†å™¨æ‰€å«çš„æŒ‡ä»¤æ•°ç›®è¶Šæ¥è¶Šå¤šã€‚然而,指令数é‡è¶Šå¤šï¼Œ 完æˆå¾®æ“ä½œæ‰€éœ€çš„é€»è¾‘ç”µè·¯å°±è¶Šå¤šï¼ŒèŠ¯ç‰‡çš„ç»“æž„å°±è¶Šå¤æ‚ï¼Œå™¨ä»¶æˆæœ¬ä¹Ÿç›¸åº”越高。相比之下, RISC 指令集是一套优化过的指令集架构,å¯ä»¥ä»Žæ ¹æœ¬ä¸Šå¿«é€Ÿæé«˜å¤„ç†å™¨çš„æ‰§è¡Œæ•ˆçŽ‡ã€‚åœ¨ RISC 处ç†å™¨ä¸ï¼Œæ¯ä¸ªæœºå™¨å‘¨æœŸéƒ½åœ¨æ‰§è¡ŒæŒ‡ä»¤ï¼Œæ— 论简å•è¿˜æ˜¯å¤æ‚çš„æ“作,å‡ç”±ç®€å•指令的 程åºå—完æˆã€‚由于指令高度简约,RISC 处ç†å™¨çš„æ™¶ä½“管规模普é都很å°è€Œä¸”æ€§èƒ½å¼ºå¤§ã€‚å› æ¤ ï¼Œç»§ IBM å…¬å¸æŽ¨å‡º RISC 架构和处ç†å™¨äº§å“åŽï¼Œä¼—多厂商纷纷开å‘出自己的 RISC 指令系统, 并推出自己的 RISC 架构处ç†å™¨ï¼Œå¦‚ DEC å…¬å¸çš„ Alphaã€SUN å…¬å¸çš„ SPARCã€HP å…¬å¸çš„ PA-RISCã€MIPS 技术公å¸çš„ MIPSã€Arm å…¬å¸çš„ Arm ç‰ã€‚RISC 处ç†å™¨è¢«å¹¿æ³›åº”用于消费电 å产å“ã€å·¥ä¸šæŽ§åˆ¶è®¡ç®—机和å„类嵌入å¼è®¾å¤‡ä¸ã€‚RISC 处ç†å™¨çš„çƒæ½®å‡ºçŽ°åœ¨ RISC-V å¼€æºæŒ‡ 令集架构推出åŽï¼Œæ¶ŒçŽ°å‡ºäº†å„ç§åŸºäºŽ RISC-V 架构的嵌入å¼å¤„ç†å™¨ï¼Œå›½å¤–的有 SiFive å…¬å¸çš„ 全书.indd 7 2024/3/16 14:51:05 8 Arm 嵌入å¼ç³»ç»ŸåŽŸç†åŠåº”用——STM32F103 微控制器架构ã€ç¼–ç¨‹ä¸Žå¼€å‘ U54-MC Coreplexã€GreenWaves Technologies å…¬å¸çš„ GAP8ã€Western Digital å…¬å¸çš„ SweRV EH1ï¼Œå›½å†…çš„æœ‰ç¿æ€èŠ¯ç§‘ï¼ˆæ·±åœ³ï¼‰æŠ€æœ¯æœ‰é™å…¬å¸çš„ Pygmyã€èНæ¥ç§‘æŠ€ï¼ˆæ¦æ±‰ï¼‰æœ‰é™å…¬å¸çš„ Hammingbird(蜂鸟)E203ã€æ™¶å¿ƒç§‘æŠ€ï¼ˆæ¦æ±‰ï¼‰æœ‰é™å…¬å¸çš„ AndeStar V5 å’Œ AndesCore N22, 以åŠå¹³å¤´å“¥åŠå¯¼ä½“有é™å…¬å¸çš„çŽ„é“ 910 ç‰ã€‚ 1.3 实时æ“作系统 作为管ç†è®¡ç®—机硬件与软件资æºçš„程åºï¼Œæ“作系统(Operating System,OS)在现代计 算机体系结构ä¸å 有é‡è¦çš„地ä½ã€‚ç›®å‰ï¼Œå¹¿æ³›ä½¿ç”¨çš„æ“ä½œç³»ç»Ÿæœ‰ 3 ç±»ï¼Œå³æ‰¹å¤„ç†æ“作系统〠分时æ“作系统和实时æ“作系统。 æ‰¹å¤„ç†æ“作系统ä¸å…·æœ‰ç”¨æˆ·äº¤äº’性,用户将作业æäº¤ç»™æ“作系统执行åŽå°±ä¸å†å¹²é¢„,多 用于早期的大ä¸åž‹è®¡ç®—机系统,如 IBM å…¬å¸çš„ DOS/VSE 系统。 分时æ“作系统å¯ä»¥è®©å¤šä¸ªè®¡ç®—机用户共享系统资æºï¼ŒåŠæ—¶å“应和æœåŠ¡äºŽè”æœºç”¨æˆ·ï¼Œå¤šåº” 用于网络æ“作系统,如 UNIX 系统。但是,对于分时æ“ä½œç³»ç»Ÿï¼Œè½¯ä»¶çš„æ‰§è¡Œå¯¹æ—¶é—´çš„è¦æ±‚å¹¶ ä¸ä¸¥æ ¼ã€‚ 实时æ“作系统是对事件进行实时处ç†ï¼Œè™½ç„¶äº‹ä»¶å¯èƒ½åœ¨æ— 法预知的时刻到达,但是软件 在事件å‘ç”Ÿæ—¶å¿…é¡»èƒ½å¤Ÿåœ¨ä¸¥æ ¼çš„æ—¶é™ï¼ˆç³»ç»Ÿå“应时间)内作出å“应,å³ä½¿æ˜¯åœ¨å°–å³°è´Ÿè·ä¸‹ï¼Œ 也应如æ¤ã€‚è‹¥ä¸æ»¡è¶³æ—¶é™ï¼Œåˆ™å¯èƒ½é€ æˆç¾é𾿀§çš„åŽæžœï¼Œå°¤å…¶åœ¨èˆªå¤©ã€å†›äº‹ã€å·¥ä¸šæŽ§åˆ¶ç‰ç³»ç»Ÿ 微课视频 å“åº”æ—¶é—´è¦æ±‚è¾ƒä¸ºä¸¥æ ¼çš„é¢†åŸŸä¸ã€‚åŒæ—¶ï¼Œå®žæ—¶æ“作系统的é‡è¦ç‰¹ç‚¹æ˜¯å…·æœ‰ç³»ç»Ÿçš„å¯ç¡®å®šæ€§ï¼Œ å³ç³»ç»Ÿèƒ½å¯¹è¿è¡Œæƒ…况的最好和最åè¿è¡Œæ—¶é—´ä½œå‡ºç²¾ç¡®ä¼°è®¡ã€‚å› æ¤ï¼Œå®žæ—¶æ“作系统在现代工业〠军事ã€èƒ½æºã€è‡ªåŠ¨åŒ–ã€é€šä¿¡ç‰æ–¹é¢æœ‰ç€é‡è¦çš„应用。 1.3.1 实时系统的概念 在实时系统ä¸ï¼Œç¨‹åºæ‰§è¡Œçš„æ£ç¡®æ€§æ—¢åŒ…æ‹¬é€»è¾‘ç»“æžœçš„æ£ç¡®æ€§ï¼Œä¹ŸåŒ…括è¿è¡Œæ—¶é—´çš„çº¦æŸæ€§ã€‚ å¦‚æžœä¸€ä¸ªç³»ç»Ÿèƒ½å¤ŸåŠæ—¶åœ°å“应外部或内部的事件请求,在指定或确定的时间内完æˆå¯¹è¯¥äº‹ä»¶ 的处ç†ï¼Œé‚£ä¹ˆç§°è¯¥ç³»ç»Ÿå…·æœ‰â€œå®žæ—¶æ€§â€ã€‚而一个æ“ä½œç³»ç»Ÿè‹¥èƒ½å¤Ÿåœ¨ä¼˜å…ˆç¡®å®šçš„æ—¶é—´å†…å¯¹å¼‚æ¥ è¾“å…¥è¿›è¡Œå¤„ç†å¹¶è¾“å‡ºç»“æžœï¼ŒåŒæ—¶å…·æœ‰äº‹ä»¶é©±åŠ¨æ€§ï¼Œåˆ™è¿™ä¸ªæ“作系统具备了“实时性â€ï¼Œå¯ä»¥ 称为实时æ“作系统(Real Time Operating System,RTOS)。 实时æ“ä½œç³»ç»Ÿæ˜¯ä¸€ç§æ—¢èƒ½æä¾›æœ‰æ•ˆæœºåˆ¶å’ŒæœåŠ¡ä¿è¯ç³»ç»Ÿçš„实时性调度和资æºç®¡ç†ï¼Œä¹Ÿèƒ½ ä¿è¯æ—¶é—´å’Œèµ„æºçš„å¯é¢„测性以åŠå¯è®¡ç®—性的æ“作系统。 在大部分实时æ“作系统ä¸éƒ½æä¾›äº†åŸºäºŽä»»åŠ¡çš„åº”ç”¨ç¨‹åºæŽ¥å£ï¼ˆApplication Programming Interface,API)函数,这些 API 使用较å°ä¸”独立的应用代ç 片,通过抽象的时åºå…³ç³»ç›¸äº’ 作用以å‡å°‘ API 之间的相互ä¾èµ–ã€‚åŒæ—¶ï¼Œå®žæ—¶æ“作系统还æä¾›äº†ä»»åŠ¡çš„ä¼˜å…ˆçº§æœºåˆ¶ï¼Œå¯ä»¥ å°†éžå…³é”®æ€§ä»»åŠ¡å’Œå…³é”®æ€§ä»»åŠ¡åˆ†å¼€å¤„ç†ã€‚实时æ“作系统采用事件驱动机制,ä¸ä¼šæµªè´¹æ—¶é—´ç‰‡ åŽ»å¤„ç†æœªå‘生的事件,这也ä¿è¯äº†å®žæ—¶æ€§ã€‚ 全书.indd 8 2024/3/16 14:51:05 第 1 ç« â€ƒ 绪论 9 与通用æ“作系统相比,实时æ“作系统å 用更少的内å˜ï¼Œèµ„æºåˆ©ç”¨çŽ‡æ›´é«˜ï¼Œç³»ç»Ÿå“应时间 高度å¯é¢„æµ‹ã€‚å› æ¤ï¼Œå®žæ—¶æ“作系统ä¸ä»…è¦æ»¡è¶³åº”ç”¨åŠŸèƒ½æ€§è¦æ±‚ï¼Œè¿˜è¦æ»¡è¶³å®žæ—¶æ€§è¦æ±‚,在应 用环境ä¸å¯é¢„测的æ¡ä»¶ä¸‹ï¼Œå§‹ç»ˆä¿è¯ç³»ç»Ÿè¡Œä¸ºçš„å¯é¢„测性。 通用æ“作系统注é‡ç³»ç»Ÿçš„å¹³å‡è¡¨çŽ°ï¼ˆå¦‚ç³»ç»Ÿå“应时间ã€åžåé‡ä»¥åŠèµ„æºåˆ©ç”¨çއç‰ï¼‰ï¼Œå¼º 调“整体表现â€ã€‚而实时æ“作系统注é‡çš„æ˜¯æ¯ä¸ªå®žæ—¶ä»»åŠ¡åœ¨æœ€åæƒ…å†µä¸‹çš„å®žæ—¶æ€§è¦æ±‚,强调“最 åæƒ…况下的个体表现â€ã€‚ 通用æ“作系统与实时æ“作系统的区别主è¦ä½“现在四方é¢ï¼šä»»åŠ¡è°ƒåº¦ç–ç•¥ã€å†…å˜ç®¡ç†æ–¹å¼ã€ 䏿–å¤„ç†æ–¹å¼å’Œç³»ç»Ÿç®¡ç†æ–¹å¼ã€‚ 在任务调度方é¢ï¼Œé€šç”¨æ“作系统ä¸çš„任务调度ç–略一般采用基于优先级的抢先å¼è°ƒåº¦ç– 略,对于优先级相åŒçš„进程则采用时间片轮询调度方å¼ã€‚实时æ“作系统ä¸çš„任务调度ç–略通 å¸¸é‡‡ç”¨é™æ€è¡¨é©±åŠ¨æ–¹å¼å’Œå›ºå®šä¼˜å…ˆçº§æŠ¢å…ˆå¼è°ƒåº¦æ–¹å¼ã€‚ 在内å˜ç®¡ç†æ–¹é¢ï¼Œé€šç”¨æ“作系统资æºå……è¶³ä¸”å®žæ—¶æ€§è¦æ±‚ä¸é«˜ï¼Œè€ƒè™‘到内å˜çš„æ€§èƒ½ä»¥åŠå®‰ 全问题,常引入虚拟å˜å‚¨å™¨ç®¡ç†æœºåˆ¶ã€‚ä½†æ˜¯ï¼Œè¿™ç§æœºåˆ¶å¢žåŠ äº†ç³»ç»Ÿå¼€é”€ï¼Œå› æ¤åœ¨å®žæ—¶æ“作系 统ä¸ä¸€èˆ¬ä¸é‡‡ç”¨ã€‚ åœ¨ä¸æ–å¤„ç†æ–¹é¢ï¼Œç”±äºŽé€šç”¨æ“ä½œç³»ç»Ÿå¯¹å®žæ—¶æ€§è¦æ±‚æ²¡æœ‰é‚£ä¹ˆä¸¥æ ¼ï¼Œä¸æ–处ç†ç¨‹åºå§‹ç»ˆå…ˆ 于其他用户进程被å“应;而实时æ“作系统则尽å¯èƒ½åœ°å±è”½ä¸æ–以ä¿è¯ç³»ç»Ÿçš„å“应时间。 åœ¨ç³»ç»Ÿç®¡ç†æ–¹é¢ï¼Œå®žæ—¶æ“作系统对于系统调用ã€å†…å˜ç®¡ç†ç‰å¼€é”€é€šå¸¸ä¼šè®¾å®šæ—¶é—´ä¸Šç•Œï¼Œ 而通用æ“ä½œç³»ç»Ÿåˆ™æ— æ¤è¦æ±‚ï¼›åŒæ—¶ï¼Œé€šç”¨æ“ä½œç³»ç»Ÿæ ¸å¿ƒæ€ç³»ç»Ÿè°ƒç”¨ä¸ºä¸å¯é‡å…¥ï¼Œè€Œå®žæ—¶æ“作 系统则设计为å¯é‡å…¥ä»¥ä¿è¯ç³»ç»Ÿçš„å¯é¢„测性。 1.3.2 实时æ“ä½œç³»ç»Ÿçš„åŸºæœ¬ç‰¹å¾ å®žæ—¶æ“作系统具有实时性ã€å¯é 性ã€å¯ç¡®å®šæ€§å’Œå®¹é”™æ€§ç‰åŸºæœ¬ç‰¹å¾ã€‚ 1.实时性 实时æ“作系统ä¿è¯ç³»ç»Ÿèƒ½å¤Ÿåœ¨é¢„定或规定的时间内完æˆå¯¹å¤–部事件的å“应和处ç†ã€‚æ¯ä¸ª 实时任务具有时间约æŸï¼Œæ‰€æœ‰å®žæ—¶ä»»åŠ¡å¿…é¡»è¦ä¿è¯åœ¨ä»»ä½•情况下,都能按照实时任务调度算 法满足其时间约æŸã€‚实时性是实时æ“作系统最基本的特å¾ã€‚为了ä¿è¯ç³»ç»Ÿçš„实时性,系统通 常既需è¦ä¾èµ–于硬件æä¾›ç²¾ç¡®çš„æ—¶é’Ÿç²¾åº¦ï¼Œä¹Ÿéœ€è¦æœ¬èº«å…·æœ‰é«˜ç²¾åº¦è®¡æ—¶ç³»ç»Ÿï¼Œä»¥ç¡®å®šå®žæ—¶åº” ç”¨ä¸æŸä¸ªä»»åŠ¡æˆ–å‡½æ•°æ‰§è¡Œçš„æ—¶é—´ã€‚ 2.å¯é 性 实时系统执行ä¸äº§ç”Ÿçš„æ•…éšœå¯èƒ½ä¼šå¯¼è‡´äººèº«ã€è´¢äº§ç‰é‡å¤§æŸå¤±ã€‚实时æ“作系统需è¦ä¿è¯ 系统能够æ£ç¡®ã€å®žæ—¶åœ°æ‰§è¡Œï¼Œå¹¶ä¸”将产生故障的概率é™åˆ°å¯æŽ§èŒƒå›´å†…ã€‚åŒæ—¶ï¼Œé€šè¿‡ç‰¹å®šçš„æœº 制使系统在故障产生时ä»ç„¶èƒ½å¤Ÿæœ‰æ•ˆåœ°æ‰§è¡Œéƒ¨åˆ†å…³é”®æ€§ä»»åŠ¡ï¼Œæœ€å¤§é™åº¦åœ°é™ä½Žä¸å¯æŠ—æ‹’æ•…éšœ å› ç´ ç»™ç³»ç»Ÿå¸¦æ¥çš„ä¸è‰¯å½±å“。 3.å¯ç¡®å®šæ€§ 实时æ“作系统的任务å¯ç¡®å®šæ€§æ˜¯æŒ‡å…¶ä»»åŠ¡å¿…é¡»æŒ‰ç…§é¢„å®šæ—¶é—´æˆ–æ—¶é—´é—´éš”è¿›è¡Œè°ƒåº¦å’Œæ‰§ 全书.indd 9 2024/3/16 14:51:05 10 Arm 嵌入å¼ç³»ç»ŸåŽŸç†åŠåº”用——STM32F103 微控制器架构ã€ç¼–ç¨‹ä¸Žå¼€å‘ è¡Œã€‚å½“å¤šä¸ªä»»åŠ¡ç«žäº‰ä½¿ç”¨å¤„ç†å™¨å’Œèµ„æºæ—¶ï¼Œå®žæ—¶æ“作系统å¯ä»¥é‡‡å–䏿–机制或调度算法ä¿è¯ 任务的æ£ç¡®æ‰§è¡Œã€‚系统实时性的ä¿è¯ä¾èµ–于系统能够准确地对任务的执行时间进行判æ–,包 括硬件延迟的确定性和应用程åºå“应时间的确定性,ä¿è¯åº”ç”¨ç¨‹åºæ‰§è¡Œæ—¶é—´æ˜¯æœ‰ç•Œçš„,从而 ä¿è¯å®žæ—¶ä»»åŠ¡çš„æ‰§è¡Œèƒ½å¤Ÿæ»¡è¶³æ—¶é—´çº¦æŸã€‚ 4.容错性 对于系统在执行过程ä¸äº§ç”Ÿçš„错误或故障,实时æ“ä½œç³»ç»Ÿèƒ½å¤Ÿé€šè¿‡æœ‰æ•ˆçš„ç®—æ³•ç‰æœºåˆ¶é¢„ 估并最å°åŒ–其带æ¥çš„å½±å“,ä¿è¯ç³»ç»Ÿåœ¨æœ€å的情况下对于部分关键性任务ä»ç„¶èƒ½æ£ç¡®æ‰§è¡Œã€‚ 容错性是相对于å¯é 性而言的,å¯é 性ç€é‡äºŽç³»ç»Ÿé”™è¯¯å‘生之å‰ï¼Œé€šè¿‡ä¼˜åŒ–è°ƒåº¦ç®—æ³•ç‰æœºåˆ¶ 尽力消除所有潜在的故障。而容错性则强调å³ä½¿å‘生了故障,也è¦ä¿éšœç³»ç»Ÿèƒ½å¤Ÿæ£å¸¸å·¥ä½œã€‚ å°½ç®¡ç³»ç»Ÿåœ¨è®¾è®¡æ—¶é€šè¿‡äº†ä¸¥æ ¼çš„æµ‹è¯•å’ŒéªŒè¯ï¼Œä½†æ˜¯åœ¨è¿è¡Œä¸äº§ç”Ÿçš„软件和硬件错误还是ä¸å¯ é¿å…的,所以实时æ“作系统的容错性至关é‡è¦ã€‚ 1.3.3 实时æ“ä½œç³»ç»Ÿæ€§èƒ½çš„è¡¡é‡æŒ‡æ ‡ 对于一个实时æ“作系统性能评估的测é‡åŸºå‡†æœ‰ Wetstoneã€Dhrystoneã€Hartstone ä»¥åŠ Rhealstone ç‰ã€‚Rhealstone 基准是目å‰å·¥ä¸šç•Œè¯„åˆ¤å®žæ—¶ç³»ç»Ÿæ€§èƒ½æŒ‡æ ‡çš„ä¸»è¦åŸºå‡†ä¹‹ä¸€ã€‚通过 对实时æ“作系统的 6 个时间é‡è¿›è¡Œè®¡ç®—ï¼Œå°†å…¶åŠ æƒèŽ·å¾— Rhealstone 数,数值越å°ï¼Œè¯æ˜Žè¯¥ç³» 统实时性越好。这 6 个时间é‡å¦‚下。 (1ï¼‰ä»»åŠ¡åˆ‡æ¢æ—¶é—´ï¼ˆä¸Šä¸‹æ–‡åˆ‡æ¢æ—¶é—´ï¼ŒContext Switch Time):系统在两个独立的任务 ä¹‹é—´åˆ‡æ¢æ‰€éœ€è¦çš„æ—¶é—´ã€‚ (2ï¼‰æŠ¢å æ—¶é—´ï¼ˆPreemption Time):系统从æ£åœ¨æ‰§è¡Œçš„低优先级任务转移到开始执行高 优先级任务所需è¦çš„æ—¶é—´ã€‚ (3ï¼‰ä¸æ–延迟时间(Interrupt Latency Timeï¼‰ï¼šä»ŽæŽ¥æ”¶åˆ°ä¸æ–ä¿¡å·åˆ°æ“作系统作出å“应, 并完æˆè¿›å…¥ä¸æ–æœåŠ¡ä¾‹ç¨‹æ‰€éœ€è¦çš„æ—¶é—´ã€‚ (4)信å·é‡æ··æ´—时间(Semaphore Shuffling Time):由于系统多任务执行的互斥原ç†ï¼Œ 在一个任务执行完æˆåŽé‡Šæ”¾ä¿¡å·é‡åˆ°å¦ä¸€ä¸ªç‰å¾…该信å·é‡çš„任务被激活所需è¦çš„æ—¶é—´é—´éš”。 (5)æ»é”解除时间(Deadlock Breaking Time):系统进入æ»é”状æ€åˆ°è§£é™¤æ»é”顺利执行 所需è¦çš„æ—¶é—´ã€‚ (6ï¼‰æ•°æ®æŠ¥åžå时间(Datagram Throughput Time):一个任务进行数æ®ä¼ 输到å¦ä¸€ä¸ªä»» 务,æ¯ç§’å¯ä»¥ä¼ 输的å—节数。 1.3.4 实时æ“作系统的分类 ä»»åŠ¡è‹¥æ²¡æœ‰åœ¨æˆªæ¢æ—¶é—´å®Œæˆï¼Œæ ¹æ®æ‰€é€ æˆåŽæžœçš„严é‡ç¨‹åº¦å°†å®žæ—¶æ“作系统分为硬实时和 软实时æ“作系统。 1.硬实时æ“作系统 硬实时æ“作系统具有刚性的时é™ï¼Œè¦æ±‚所有任务必须在任何æ¡ä»¶ä¸‹ï¼ˆå³ä½¿åœ¨æœ€åçš„å„ç§ å…¨ä¹¦.indd 10 2024/3/16 14:51:05 第 1 ç« â€ƒ 绪论 11 处ç†è´Ÿè½½ä¸‹ï¼‰éƒ½èƒ½åœ¨è§„定的时间内完æˆï¼Œä»»ä½•ä»»åŠ¡è¶…è¿‡å…¶æˆªæ¢æ—¶é—´éƒ½ä¼šé€ æˆç³»ç»Ÿæ•´ä½“的失败。 ä»»åŠ¡è¶…è¿‡æˆªæ¢æ—¶é—´ä¼šå¯¼è‡´ç¾é𾿀§çš„åŽæžœï¼Œç³»ç»Ÿçš„æ”¶ç›Šä¸ºè´Ÿæ— 穷。例如,导弹控制系统ã€è‡ªåЍ 驾驶系统ç‰çš„æ“ä½œç³»ç»Ÿéƒ½å±žäºŽç¡¬å®žæ—¶æ“作系统。 2.软实时æ“作系统 相对于硬实时æ“作系统,软实时æ“作系统具有一定的“容å¿åº¦â€ã€‚软实时æ“作系统具有 çµæ´»çš„æ—¶é™ï¼Œä»»åŠ¡è¶…è¿‡å…¶æˆªæ¢æ—¶é—´æ‰€é€ æˆçš„åŽæžœæ²¡æœ‰é‚£ä¹ˆä¸¥é‡ï¼Œå¯èƒ½ä»…ä»…é™ä½Žäº†ç³»ç»Ÿçš„åžå é‡ã€‚ä»»åŠ¡è¶…è¿‡æˆªæ¢æ—¶é—´ä¸ä¼šå¯¼è‡´ä¸¥é‡çš„åŽæžœï¼Œç³»ç»Ÿçš„æ”¶ç›Šä¹Ÿå¯èƒ½ä¸ºæ£ã€‚例如,IPTV æ•°å—电 视机顶盒,需è¦å®žæ—¶è§£ç 视频æµï¼Œå¦‚æžœä¸¢å¤±äº†ä¸€ä¸ªæˆ–å‡ ä¸ªè§†é¢‘å¸§ï¼Œæ˜¾ç„¶ä¼šé€ æˆè§†é¢‘çš„å“è´¨å˜ å·®ï¼Œä½†æ˜¯åªè¦è¿›è¡Œç®€å•的去抖处ç†ï¼Œä¸¢å¤±å‡ 个视频帧ä¸ä¼šå¯¹æ•´ä¸ªç³»ç»Ÿé€ æˆä¸å¯æŒ½å›žçš„å½±å“。 1.3.5 POSIX æ ‡å‡† å¯ç§»æ¤æ€§æ“作系统接å£ï¼ˆPortable Operating System Interface of UNIX,POSIX)是由 IEEE å¼€å‘çš„æ“ä½œç³»ç»ŸæŽ¥å£æ ‡å‡†ã€‚ä½œä¸ºä¸€ä¸ªæ ‡å‡†çš„è½¯ä»¶æŽ¥å£ï¼ŒPOSIX 的主è¦ç›®çš„æ˜¯åœ¨è·¨è¶Š UNIX å„ç§å˜åž‹æ“作系统之间,完善应用程åºçš„互æ“作性和å¯ç§»æ¤æ€§ã€‚ç†è®ºä¸Šï¼Œåªè¦ä¸¤ä¸ªæ“ ä½œç³»ç»Ÿéƒ½æ”¯æŒ POSIX,如果写的程åºå’Œç¼–译的程åºèƒ½å¤Ÿåœ¨ä¸€ä¸ªæ“作系统上执行,那么该程 åºä¹Ÿå¯ä»¥åœ¨ä¸æ”¹å˜æºä»£ç 的情况下通过编译在å¦ä¸€ä¸ªæ“作系统上执行。 POSIX æ ‡å‡†å®šä¹‰äº†æ“ä½œç³»ç»Ÿä¸ºåº”ç”¨ç¨‹åºæä¾›çš„æ ‡å‡†æŽ¥å£ï¼Œä»¥åŠä¸Žæ“作系统å„个方é¢ç›¸ 关的内容和å议。目å‰ï¼Œè¯¥æ ‡å‡†å·²ç»æˆä¸ºå®žæ—¶æ“ä½œç³»ç»Ÿçš„ä¸»è¦æ ‡å‡†ä¹‹ä¸€ã€‚虽然 POSIX 早期 是为在 UNIX 环境下应用程åºçš„å¯ç§»æ¤æ€§è€Œå¼€å‘,但å‘展起æ¥åŽï¼Œä¹Ÿé€‚用于包括 UNIX 在内 的其他æ“作系统。 POSIX æ ‡å‡†è®¾è®¡çš„ç›®çš„æ˜¯ä¿è¯ä¸€ä¸ªæ”¯æŒ POSIX 兼容æ“作系统的程åºå¯ä»¥åº”用在任何一 个(å³ä½¿æ¥è‡ªå…¶ä»–å¼€å‘厂商)POSIX æ“ä½œç³»ç»Ÿä¸Šï¼Œæ— é¡»ä¿®æ”¹ä¾¿å¯ä»¥ç¼–è¯‘æ‰§è¡Œã€‚å› æ¤ï¼ŒPOSIX 具有跨平å°å¼€å‘的特性。而与那些ä¾é 虚拟机ç‰è¿™ç±»ä¸é—´å±‚支æŒã€æŸå¤±éƒ¨åˆ†æ€§èƒ½è€ŒèŽ·å–跨平 å°å¼€å‘èƒ½åŠ›çš„æ ‡å‡†ä¸åŒï¼ŒPOSIX ä¸éœ€è¦ä¸é—´å±‚的支æŒï¼Œè€Œæ˜¯åœ¨è‡ªèº«åŽŸæœ‰åº”ç”¨ç¨‹åºæŽ¥å£ä¹‹ä¸Šï¼Œ å†å°è£…一层 POSIX å…¼å®¹å±‚ï¼Œæ¥æä¾›å¯¹ POSIX 的支æŒï¼Œå› æ¤ä¿ç•™äº†åŽŸæ¥æ“作系统的性能。 下é¢ä¸¾ä¸ªç®€å•的例åæè¿° POSIX 工作的基本原ç†ã€‚在ä¸åŒå¹³å°ä¸‹ï¼Œå†…æ ¸åœ¨å®ŒæˆåŒä¸€ 功能时往往使用的函数有所ä¸åŒã€‚例如,在 Linux 系统下进程创建函数是 Fork(),而在 Windows 系统下进程创建函数是 CreatProcess(),现需è¦å°†ä¸€ä¸ªå…·æœ‰è¿›ç¨‹åˆ›å»ºå‡½æ•°çš„ Linux 程åºåº”用移æ¤åˆ° Windows å¹³å°ï¼Œæ ¹æ® POSIX æ ‡å‡†ï¼Œéœ€è¦å…ˆå°† Linux 系统下的 Fork() å‡½æ•°å° è£…æˆ POSIX_Fork() 函数,将 Windows 系统下的 CreatProcess() 函数å°è£…æˆ POSIX_Fork() 函 数,然åŽåŒæ—¶åœ¨å¤´æ–‡ä»¶ä¸è¿›è¡Œå£°æ˜Žï¼Œè¿™æ ·ç¨‹åºå°±åœ¨æºä»£ç 级别å¯ç§»æ¤äº†ã€‚ POSIX æ ‡å‡†å®šä¹‰äº†ä¸€å¥—è¯è¨€è§„èŒƒï¼ŒåŒ…æ‹¬è®¿é—®æ ¸å¿ƒæœåŠ¡çš„ç¼–ç¨‹è¯è¨€æ ‡å‡†æŽ¥å£å’Œç‰¹æ®Šè¯è¨€ æœåŠ¡çš„æ ‡å‡†æŽ¥å£ã€‚POSIX æ ‡å‡†åŸºäºŽ C è¯è¨€ï¼Œé¢å‘应用,支æŒå®žæ—¶æ‰©å±•ï¼Œæ— è¶…çº§ç”¨æˆ·å’Œç³»ç»Ÿ 管ç†ï¼Œå¯¹åŽŸæœ‰ç¨‹åºä»£ç 和原有实现进行最å°ä»£ä»·çš„å°è£…和修改,并对å„ç§æŽ¥å£è®¾å¤‡ä»¥åŠå„ç§ æ•°æ®æ ¼å¼è¿›è¡Œå®šä¹‰å’Œè¯´æ˜Žã€‚ 全书.indd 11 2024/3/16 14:51:05 12 Arm 嵌入å¼ç³»ç»ŸåŽŸç†åŠåº”用——STM32F103 微控制器架构ã€ç¼–ç¨‹ä¸Žå¼€å‘ 1.3.6 实时æ“作系统的典型应用 实时æ“作系统主è¦åº”用在需è¦å®žæ—¶å¤„ç†å¤§æ•°æ®é‡æˆ–大è¿ç®—é‡çš„并行系统ä¸ã€‚ 航空航天领域采用硬实时系统æ¥ç¡®ä¿æ—¶é—´ã€‚例如,美国“好奇å·â€ç«æ˜ŸæŽ¢æµ‹è½¦å°±æ˜¯é‡‡ç”¨ VxWorks 硬实时æ“作系统。 åœ¨å·¥ä¸šåˆ¶é€ é¢†åŸŸï¼Œæ¶‰åŠäººèº«å®‰å…¨æˆ–执行é‡è¦ä»»åŠ¡æ—¶é€šå¸¸é‡‡ç”¨ç¡¬å®žæ—¶æ“作系统,如飞机控 åˆ¶ç³»ç»Ÿä»¥åŠæ±½è½¦å®‰å…¨æ°”囊系统ç‰ã€‚ 在军事领域也通常采用性能稳定的实时系统,如美国的 F/A-18ã€F-16 战斗机以åŠâ€œçˆ± 国者â€å¯¼å¼¹ç‰ã€‚ 在通信或电å产å“领域,例如,IPTV 机顶盒通常采用软实时æ“作系统对视频进行实时 è§£ç 。 1.4 嵌入å¼ç³»ç»Ÿçš„软件 嵌入å¼ç³»ç»Ÿçš„软件一般固化于嵌入å¼å˜å‚¨å™¨ä¸ï¼Œæ˜¯åµŒå…¥å¼ç³»ç»Ÿçš„æŽ§åˆ¶æ ¸å¿ƒï¼ŒæŽ§åˆ¶ç€åµŒå…¥ å¼ç³»ç»Ÿçš„è¿è¡Œï¼Œå®žçŽ°åµŒå…¥å¼ç³»ç»Ÿçš„功能。由æ¤å¯è§ï¼ŒåµŒå…¥å¼ç³»ç»Ÿçš„软件在很大程度上决定整 个嵌入å¼ç³»ç»Ÿçš„价值。 从软件结构上划分,嵌入å¼ç³»ç»Ÿçš„è½¯ä»¶åˆ†ä¸ºæ— æ“作系统和带æ“作系统两ç§ã€‚ 微课视频 1.4.1 æ— æ“作系统的嵌入å¼è½¯ä»¶ 对于通用计算机,æ“ä½œç³»ç»Ÿæ˜¯æ•´ä¸ªè½¯ä»¶çš„æ ¸å¿ƒï¼Œä¸å¯æˆ–缺。然而,对于嵌入å¼ç³»ç»Ÿï¼Œç”± 于其专用性,在æŸäº›æƒ…å†µä¸‹æ— éœ€æ“作系统。尤其在嵌入å¼ç³»ç»Ÿå‘å±•çš„åˆæœŸï¼Œç”±äºŽè¾ƒä½Žçš„硬件 é…ç½®ã€å•ä¸€çš„åŠŸèƒ½éœ€æ±‚ä»¥åŠæœ‰é™çš„应用领域(主è¦é›†ä¸åœ¨å·¥ä¸šæŽ§åˆ¶å’Œå›½é˜²å†›äº‹é¢†åŸŸï¼‰ï¼ŒåµŒå…¥ å¼è½¯ä»¶çš„规模通常较å°ï¼Œæ²¡æœ‰ä¸“门的æ“作系统。 在组æˆç»“æž„ä¸Šï¼Œæ— æ“作系统的嵌入å¼è½¯ä»¶ä»…由引导程åºå’Œåº”用程åºä¸¤éƒ¨åˆ†ç»„æˆï¼Œå¦‚图 1-2 所示。引导程åºä¸€èˆ¬ç”±æ±‡ç¼–è¯è¨€ç¼–写,在嵌入å¼ç³»ç»Ÿä¸Šç”µåŽè¿è¡Œï¼Œå®Œæˆè‡ªæ£€ã€å˜å‚¨æ˜ å°„ã€æ—¶ 钟系统和外设接å£é…ç½®ç‰ä¸€ç³»åˆ—硬件åˆå§‹åŒ–æ“作。应用程åºä¸€èˆ¬ç”± C è¯è¨€ç¼–写,直接架构 在硬件之上,在引导程åºä¹‹åŽè¿è¡Œï¼Œè´Ÿè´£å®žçŽ°åµŒå…¥å¼ç³»ç»Ÿçš„主è¦åŠŸèƒ½ã€‚ 图 1-2 æ— æ“作系统的嵌入å¼è½¯ä»¶ç»“æž„ 1.4.2 带æ“作系统的嵌入å¼è½¯ä»¶ éšç€åµŒå…¥å¼åº”用在å„个领域的普åŠå’Œæ·±å…¥ï¼ŒåµŒå…¥å¼ç³»ç»Ÿå‘å¤šæ ·åŒ–ã€æ™ºèƒ½åŒ–和网络化å‘展, 全书.indd 12 2024/3/16 14:51:05 第 1 ç« â€ƒ 绪论 13 其对功能ã€å®žæ—¶æ€§ã€å¯é 性和å¯ç§»æ¤æ€§ç‰æ–¹é¢çš„è¦æ±‚è¶Šæ¥è¶Šé«˜ï¼ŒåµŒå…¥å¼è½¯ä»¶æ—¥è¶‹å¤æ‚ï¼Œè¶Šæ¥ è¶Šå¤šåœ°é‡‡ç”¨åµŒå…¥å¼æ“作系统 + 应用软件的模å¼ã€‚ç›¸æ¯”äºŽæ— æ“作系统的嵌入å¼è½¯ä»¶ï¼Œå¸¦æ“作系 统的嵌入å¼è½¯ä»¶è§„æ¨¡è¾ƒå¤§ï¼Œå…¶åº”ç”¨è½¯ä»¶æž¶æž„äºŽåµŒå…¥å¼æ“作系统上,而éžç›´æŽ¥é¢å¯¹åµŒå…¥å¼ç¡¬ä»¶ï¼Œ å¯é 性高,开å‘周期çŸï¼Œæ˜“于移æ¤å’Œæ‰©å±•ï¼Œé€‚ç”¨äºŽåŠŸèƒ½å¤æ‚的嵌入å¼ç³»ç»Ÿã€‚ 带æ“作系统的嵌入å¼è½¯ä»¶çš„体系结构如图 1-3 æ‰€ç¤ºï¼Œè‡ªä¸‹è€Œä¸ŠåŒ…æ‹¬è®¾å¤‡é©±åŠ¨å±‚ã€æ“作系 统层和应用软件层ç‰ã€‚ 图 1-3 带æ“作系统的嵌入å¼è½¯ä»¶çš„体系结构 1.4.3 åµŒå…¥å¼æ“作系统的分类 æŒ‰ç…§åµŒå…¥å¼æ“作系统对任务å“应的实时性æ¥åˆ†ç±»ï¼ŒåµŒå…¥å¼æ“作系统å¯ä»¥åˆ†ä¸ºåµŒå…¥å¼éžå®ž æ—¶æ“作系统和嵌入å¼å®žæ—¶æ“作系统(RTOS),它们的主è¦åŒºåˆ«åœ¨äºŽä»»åŠ¡è°ƒåº¦å¤„ç†æ–¹å¼ä¸åŒã€‚ 1.嵌入å¼éžå®žæ—¶æ“作系统 嵌入å¼éžå®žæ—¶æ“作系统主è¦é¢å‘消费类产å“应用领域。大部分嵌入å¼éžå®žæ—¶æ“作系统都 支æŒå¤šç”¨æˆ·å’Œå¤šè¿›ç¨‹ï¼Œè´Ÿè´£ç®¡ç†ä¼—多的进程并为它们分é…系统资æºï¼Œå±žäºŽä¸å¯æŠ¢å 弿“作系 统。éžå®žæ—¶æ“作系统尽é‡ç¼©çŸç³»ç»Ÿçš„å¹³å‡å“应时间并æé«˜ç³»ç»Ÿçš„åžå率,在å•使—¶é—´å†…为尽 å¯èƒ½å¤šçš„用户请求æä¾›æœåŠ¡ï¼Œæ³¨é‡å¹³å‡è¡¨çŽ°æ€§èƒ½ï¼Œä¸å…³å¿ƒä¸ªä½“表现性能。例如,对于整个系 ç»Ÿï¼Œæ³¨é‡æ‰€æœ‰ä»»åŠ¡çš„å¹³å‡å“应时间而ä¸å…³å¿ƒå•个任务的å“应时间;对于æŸä¸ªå•ä¸ªä»»åŠ¡ï¼Œæ³¨é‡ æ¯æ¬¡æ‰§è¡Œçš„å¹³å‡å“应时间而ä¸å…³å¿ƒæŸæ¬¡ç‰¹å®šæ‰§è¡Œçš„å“应时间。典型的嵌入å¼éžå®žæ—¶æ“作系统 有 Linuxã€iOS ç‰ã€‚ 2.嵌入å¼å®žæ—¶æ“作系统 嵌入å¼å®žæ—¶æ“作系统主è¦é¢å‘控制ã€é€šä¿¡ç‰é¢†åŸŸã€‚嵌入å¼å®žæ—¶æ“ä½œç³»ç»Ÿé™¤äº†è¦æ»¡è¶³åº”用 çš„åŠŸèƒ½éœ€æ±‚ï¼Œè¿˜è¦æ»¡è¶³åº”用æå‡ºçš„å®žæ—¶æ€§è¦æ±‚,属于抢å 弿“作系统。嵌入å¼å®žæ—¶æ“作系统 èƒ½åŠæ—¶å“应外部事件的请求,并以足够快的速度予以处ç†ï¼Œå…¶å¤„ç†ç»“果能在规定的时间内控 制ã€ç›‘控生产过程或对处ç†ç³»ç»Ÿä½œå‡ºå¿«é€Ÿå“应,并控制所有任务åè°ƒã€ä¸€è‡´åœ°è¿è¡Œã€‚å› æ¤ï¼Œ 嵌入å¼å®žæ—¶æ“作系统采用å„ç§ç®—法和ç–略,始终ä¿è¯ç³»ç»Ÿè¡Œä¸ºçš„å¯é¢„æµ‹æ€§ã€‚è¿™è¦æ±‚åœ¨ç³»ç»Ÿè¿ è¡Œçš„ä»»ä½•æ—¶åˆ»ï¼Œåœ¨ä»»ä½•æƒ…å†µä¸‹ï¼ŒåµŒå…¥å¼å®žæ—¶æ“作系统的资æºè°ƒé…ç–略都能为争夺资æºï¼ˆåŒ…括 CPUã€å†…å˜ã€ç½‘络带宽ç‰ï¼‰çš„多个实时任务åˆç†åœ°åˆ†é…资æºï¼Œä½¿æ¯ä¸ªå®žæ—¶ä»»åŠ¡çš„å®žæ—¶æ€§è¦æ±‚ éƒ½èƒ½å¾—åˆ°æ»¡è¶³ï¼ˆè¦æ±‚æ¯ä¸ªå®žæ—¶ä»»åŠ¡åœ¨æœ€åæƒ…å†µä¸‹éƒ½è¦æ»¡è¶³å®žæ—¶æ€§è¦æ±‚)。嵌入å¼å®žæ—¶æ“作系 统总是执行当å‰ä¼˜å…ˆçº§æœ€é«˜çš„è¿›ç¨‹ï¼Œç›´è‡³ç»“æŸæ‰§è¡Œï¼Œä¸é—´çš„æ—¶é—´é€šè¿‡ CPU 频率ç‰å¯ä»¥æŽ¨ç®— 全书.indd 13 2024/3/16 14:51:05 14 Arm 嵌入å¼ç³»ç»ŸåŽŸç†åŠåº”用——STM32F103 微控制器架构ã€ç¼–ç¨‹ä¸Žå¼€å‘ å‡ºæ¥ã€‚ç”±äºŽè™šå˜æŠ€æœ¯è®¿é—®æ—¶é—´çš„ä¸å¯ç¡®å®šæ€§ï¼Œåœ¨åµŒå…¥å¼å®žæ—¶æ“作系统ä¸ä¸€èˆ¬ä¸é‡‡ç”¨æ ‡å‡†çš„ è™šå˜æŠ€æœ¯ã€‚å…¸åž‹çš„åµŒå…¥å¼å®žæ—¶æ“作系统有 VxWorksã€Î¼C/OS-â…¡ã€QNXã€FreeRTOSã€eCOS〠RTX å’Œ RT-Thread ç‰ã€‚ 1.4.4 嵌入å¼å®žæ—¶æ“作系统的功能 嵌入å¼å®žæ—¶æ“作系统满足了实时控制和实时信æ¯å¤„ç†é¢†åŸŸçš„需è¦ï¼Œåœ¨åµŒå…¥å¼é¢†åŸŸåº”用å 分广泛,一般包å«å®žæ—¶å†…æ ¸ã€å†…å˜ç®¡ç†ã€æ–‡ä»¶ç³»ç»Ÿã€å›¾å½¢æŽ¥å£ã€ç½‘络组件ç‰ã€‚在ä¸åŒçš„应用 ä¸ï¼Œå¯å¯¹åµŒå…¥å¼å®žæ—¶æ“作系统进行è£å‰ªå’Œé‡æ–°é…置。一般æ¥è®²ï¼ŒåµŒå…¥å¼å®žæ—¶æ“作系统需è¦å®Œ æˆä»¥ä¸‹ç®¡ç†åŠŸèƒ½ã€‚ 1ï¼Žä»»åŠ¡ç®¡ç† ä»»åŠ¡ç®¡ç†æ˜¯åµŒå…¥å¼å®žæ—¶æ“ä½œç³»ç»Ÿçš„æ ¸å¿ƒå’Œçµé‚,决定了æ“ä½œç³»ç»Ÿçš„å®žæ—¶æ€§èƒ½ã€‚ä»»åŠ¡ç®¡ç† é€šå¸¸åŒ…å«ä¼˜å…ˆçº§è®¾ç½®ã€å¤šä»»åŠ¡è°ƒåº¦æœºåˆ¶å’Œæ—¶é—´ç¡®å®šæ€§ç‰ã€‚ 嵌入å¼å®žæ—¶æ“作系统支æŒå¤šä¸ªä»»åŠ¡ï¼Œæ¯ä¸ªä»»åŠ¡éƒ½å…·æœ‰ä¼˜å…ˆçº§ï¼Œä»»åŠ¡è¶Šé‡è¦ï¼Œè¢«èµ‹äºˆçš„优 å…ˆçº§è¶Šé«˜ã€‚ä¼˜å…ˆçº§çš„è®¾ç½®åˆ†ä¸ºé™æ€ä¼˜å…ˆçº§å’ŒåЍæ€ä¼˜å…ˆçº§ä¸¤ç§ã€‚陿€ä¼˜å…ˆçº§æŒ‡çš„æ˜¯æ¯ä¸ªä»»åŠ¡åœ¨ è¿è¡Œå‰éƒ½è¢«èµ‹äºˆä¸€ä¸ªä¼˜å…ˆçº§ï¼Œè€Œä¸”这个优先级在系统è¿è¡ŒæœŸé—´æ˜¯ä¸èƒ½æ”¹å˜çš„。动æ€ä¼˜å…ˆçº§åˆ™ 是指æ¯ä¸ªä»»åŠ¡çš„ä¼˜å…ˆçº§ï¼ˆç‰¹åˆ«æ˜¯åº”ç”¨ç¨‹åºçš„优先级)在系统è¿è¡Œæ—¶å¯ä»¥åЍæ€åœ°æ”¹å˜ã€‚任务调 åº¦ä¸»è¦æ˜¯å调任务对计算机系统资æºçš„争夺使用,任务调度直接影å“到系统的实时性能,一 般采用基于优先级抢å å¼è°ƒåº¦ã€‚ç³»ç»Ÿä¸æ¯ä¸ªä»»åŠ¡éƒ½æœ‰ä¸€ä¸ªä¼˜å…ˆçº§ï¼Œå†…æ ¸æ€»æ˜¯å°† CPU 分é…ç»™ 处于就绪æ€çš„优先级最高的任务è¿è¡Œã€‚如果系统å‘çŽ°å°±ç»ªé˜Ÿåˆ—ä¸æœ‰æ¯”当å‰è¿è¡Œä»»åŠ¡ä¼˜å…ˆçº§æ›´ 高的任务,就会把当å‰è¿è¡Œä»»åŠ¡ç½®äºŽå°±ç»ªé˜Ÿåˆ—ï¼Œè°ƒå…¥é«˜ä¼˜å…ˆçº§ä»»åŠ¡è¿è¡Œã€‚系统采用优先级抢 å æ–¹å¼è¿›è¡Œè°ƒåº¦ï¼Œå¯ä»¥ä¿è¯é‡è¦çš„çªå‘äº‹ä»¶å¾—åˆ°åŠæ—¶å¤„ç†ã€‚嵌入å¼å®žæ—¶æ“作系统调用的任务 与æœåŠ¡çš„æ‰§è¡Œæ—¶é—´åº”å…·æœ‰å¯ç¡®å®šæ€§ï¼Œç³»ç»ŸæœåŠ¡çš„æ‰§è¡Œæ—¶é—´ä¸ä¾èµ–于应用程åºä»»åŠ¡çš„å¤šå°‘ï¼Œå› æ¤ï¼Œç³»ç»Ÿå®ŒæˆæŸä¸ªç¡®å®šä»»åŠ¡çš„æ—¶é—´æ˜¯å¯é¢„测的。 2ï¼Žä»»åŠ¡åŒæ¥ä¸Žé€šä¿¡æœºåˆ¶ 实时æ“作系统的功能一般è¦é€šè¿‡è‹¥å¹²ä»»åŠ¡å’Œä¸æ–æœåŠ¡ç¨‹åºå…±åŒå®Œæˆã€‚ä»»åŠ¡ä¸Žä»»åŠ¡ä¹‹é—´ã€ ä»»åŠ¡ä¸Žä¸æ–间任务åŠä¸æ–æœåŠ¡ç¨‹åºä¹‹é—´å¿…é¡»å调动作ã€äº’相é…åˆï¼Œè¿™å°±æ¶‰åŠä»»åŠ¡é—´çš„åŒæ¥ä¸Ž 通信问题。嵌入å¼å®žæ—¶æ“作系统通常是通过信å·é‡ã€äº’斥信å·é‡ã€äº‹ä»¶æ ‡å¿—和异æ¥ä¿¡å·å®žçް åŒæ¥çš„,通过消æ¯é‚®ç®±ã€æ¶ˆæ¯é˜Ÿåˆ—ã€ç®¡é“å’Œå…±äº«å†…å˜æä¾›é€šä¿¡æœåŠ¡ã€‚ 3.内å˜ç®¡ç† 通常在æ“作系统的内å˜ä¸æ—¢æœ‰ç³»ç»Ÿç¨‹åºï¼Œä¹Ÿæœ‰ç”¨æˆ·ç¨‹åºï¼Œä¸ºäº†ä½¿ä¸¤è€…都能æ£å¸¸è¿è¡Œï¼Œ é¿å…程åºé—´ç›¸äº’干扰,需è¦å¯¹å†…å˜ä¸çš„程åºå’Œæ•°æ®è¿›è¡Œä¿æŠ¤ã€‚å˜å‚¨ä¿æŠ¤é€šå¸¸éœ€è¦ç¡¬ä»¶æ”¯ æŒï¼Œå¾ˆå¤šç³»ç»Ÿéƒ½é‡‡ç”¨å†…å˜ç®¡ç†å•元(Memory Management Unit,MMU),并结åˆè½¯ä»¶å®ž 现这一功能。但由于嵌入å¼ç³»ç»Ÿçš„æˆæœ¬é™åˆ¶ï¼Œå†…æ ¸å’Œç”¨æˆ·ç¨‹åºé€šå¸¸éƒ½åœ¨ç›¸åŒçš„内å˜ç©ºé—´ ä¸ã€‚内å˜åˆ†é…æ–¹å¼å¯åˆ†ä¸ºé™æ€åˆ†é…和动æ€åˆ†é…ã€‚é™æ€åˆ†é…是在程åºè¿è¡Œå‰ä¸€æ¬¡æ€§åˆ†é…相应 内å˜ï¼Œå¹¶ä¸”在程åºè¿è¡ŒæœŸé—´ä¸å…许å†ç”³è¯·æˆ–在内å˜ä¸ç§»åŠ¨ï¼›åŠ¨æ€åˆ†é…则å…许在程åºè¿è¡Œçš„ 全书.indd 14 2024/3/16 14:51:05 第 1 ç« â€ƒ 绪论 15 整个过程ä¸è¿›è¡Œå†…å˜åˆ†é…ã€‚é™æ€åˆ†é…ä½¿ç³»ç»Ÿå¤±åŽ»äº†çµæ´»æ€§ï¼Œä½†å¯¹å®žæ—¶æ€§è¦æ±‚比较高的系统 是必需的;而动æ€åˆ†é…赋予了系统设计者更多自主性,系统设计者å¯ä»¥çµæ´»åœ°è°ƒæ•´ç³»ç»Ÿçš„ 功能。 4ï¼Žä¸æ–ç®¡ç† ä¸æ–ç®¡ç†æ˜¯å®žæ—¶ç³»ç»Ÿä¸ä¸€ä¸ªå¾ˆé‡è¦çš„部分,系统ç»å¸¸é€šè¿‡ä¸æ–与外部事件交互。评估系 ç»Ÿçš„ä¸æ–ç®¡ç†æ€§èƒ½ä¸»è¦è€ƒè™‘çš„æ˜¯å¦æ”¯æŒä¸æ–嵌套ã€ä¸æ–å¤„ç†æœºåˆ¶ã€ä¸æ–å»¶æ—¶ç‰ã€‚䏿–å¤„ç†æ˜¯ 整个è¿è¡Œç³»ç»Ÿä¸ä¼˜å…ˆçº§æœ€é«˜çš„代ç ,它å¯ä»¥æŠ¢å 任何任务级代ç è¿è¡Œã€‚䏿–机制是多任务环 境è¿è¡Œçš„基础,是系统实时性的ä¿è¯ã€‚ 1.4.5 å…¸åž‹çš„åµŒå…¥å¼æ“作系统 ä½¿ç”¨åµŒå…¥å¼æ“ä½œç³»ç»Ÿä¸»è¦æ˜¯ä¸ºäº†æœ‰æ•ˆåœ°å¯¹åµŒå…¥å¼ç³»ç»Ÿçš„软硬件资æºè¿›è¡Œåˆ†é…ã€ä»»åŠ¡è°ƒ 度切æ¢ã€ä¸æ–处ç†ï¼Œä»¥åŠæŽ§åˆ¶å’Œå调资æºä¸Žä»»åŠ¡çš„å¹¶å‘æ´»åŠ¨ã€‚ç”±äºŽ C è¯è¨€å¯ä»¥æ›´å¥½åœ°å¯¹ç¡¬ 件资æºè¿›è¡ŒæŽ§åˆ¶ï¼ŒåµŒå…¥å¼æ“作系统通常采用 C è¯è¨€ç¼–写。当然,为了获得更快的å“应速度, 有时也需è¦é‡‡ç”¨æ±‡ç¼–è¯è¨€ç¼–å†™ä¸€éƒ¨åˆ†ä»£ç æˆ–模å—ï¼Œä»¥è¾¾åˆ°ä¼˜åŒ–çš„ç›®çš„ã€‚åµŒå…¥å¼æ“作系统与通 用æ“ä½œç³»ç»Ÿç›¸æ¯”åœ¨ä¸¤æ–¹é¢æœ‰å¾ˆå¤§çš„区别。一方é¢ï¼Œé€šç”¨æ“作系统为用户创建了一个æ“作环境, 在这个环境ä¸ï¼Œç”¨æˆ·å¯ä»¥å’Œè®¡ç®—机交互,执行å„ç§å„æ ·çš„ä»»åŠ¡ï¼›è€ŒåµŒå…¥å¼ç³»ç»Ÿä¸€èˆ¬åªæ˜¯æ‰§è¡Œ 有é™ç±»åž‹çš„特定任务,并且一般ä¸éœ€è¦ç”¨æˆ·å¹²é¢„。å¦ä¸€æ–¹é¢ï¼Œåœ¨å¤§å¤šæ•°åµŒå…¥å¼æ“作系统ä¸ï¼Œ 应用程åºé€šå¸¸ä½œä¸ºæ“作系统的一部分内置于æ“作系统ä¸ï¼Œéšæ“作系统å¯åŠ¨æ—¶è‡ªåŠ¨åœ¨åªè¯»å˜å‚¨ 器(Read-Only Memory,ROM)或 Flash ä¸è¿è¡Œï¼›è€Œåœ¨é€šç”¨æ“作系统ä¸ï¼Œåº”用程åºä¸€èˆ¬æ˜¯ ç”±ç”¨æˆ·é€‰æ‹©åŠ è½½åˆ° RAM ä¸è¿è¡Œçš„。 éšç€åµŒå…¥å¼æŠ€æœ¯çš„快速å‘展,国内外先åŽé—®ä¸–了 150 多ç§åµŒå…¥å¼æ“作系统,较常è§çš„ å›½å¤–åµŒå…¥å¼æ“作系统有μC/OSã€FreeRTOSã€Embedded Linuxã€VxWorksã€QNXã€RTX〠Windows IoT Coreã€Android Things ç‰ã€‚è™½ç„¶å›½äº§åµŒå…¥å¼æ“作系统å‘展相对滞åŽï¼Œä½†åœ¨ç‰©è” 网技术与应用的强劲推动下,国内厂商也纷纷推出了多ç§åµŒå…¥å¼æ“作系统,并得到了日益广 泛的应用。目å‰è¾ƒä¸ºå¸¸è§çš„å›½äº§åµŒå…¥å¼æ“作系统有åŽä¸º Lite OSã€åŽä¸º HarmonyOSã€é˜¿é‡Œå·´ å·´ AliOS Thingsã€ç¿¼è¾‰ SylixOSã€èµ›ç¿å¾· RT-Thread ç‰ã€‚ 1.åŽä¸º Lite OS Lite OS 是åŽä¸ºæŠ€æœ¯æœ‰é™å…¬å¸ï¼ˆç®€ç§°åŽä¸ºï¼‰äºŽ 2015 å¹´ 5 月å‘布的轻é‡çº§å¼€æºç‰©è”网嵌入 弿“作系统,éµå¾ª BSD-3 å¼€æºè®¸å¯åè®®ã€‚å…¶å†…æ ¸åŒ…æ‹¬ä»»åŠ¡ç®¡ç†ã€å†…å˜ç®¡ç†ã€æ—¶é—´ç®¡ç†ã€é€š 信机制ã€ä¸æ–管ç†ã€é˜Ÿåˆ—管ç†ã€äº‹ä»¶ç®¡ç†ã€å®šæ—¶å™¨ã€å¼‚常管ç†ç‰æ“ä½œç³»ç»Ÿçš„åŸºç¡€ç»„ä»¶ã€‚å„ ç»„ä»¶å‡å¯ä»¥å•独è¿è¡Œã€‚å¦å¤–,Lite OS 还æä¾›äº†è½¯ä»¶å¼€å‘工具包 Lite OS SDKã€‚ç›®å‰ Lite OS æ”¯æŒ Arm Cortex-M0/M3/M4/M7 ç‰èŠ¯ç‰‡æž¶æž„ï¼Œé€‚é…了包括 STã€NXPã€GDã€MindMotion〠Siliconã€Atmel ç‰ä¸»æµå¼€å‘å•†çš„å¼€å‘æ¿ï¼Œå…·å¤‡é›¶é…ç½®ã€è‡ªå‘现和自组网的能力。 Lite OS 的主è¦ç‰¹ç‚¹å¦‚下。 (1)高实时性ã€é«˜ç¨³å®šæ€§ã€‚ 全书.indd 15 2024/3/16 14:51:06 16 Arm 嵌入å¼ç³»ç»ŸåŽŸç†åŠåº”用——STM32F103 微控制器架构ã€ç¼–ç¨‹ä¸Žå¼€å‘ ï¼ˆ2)超å°å†…æ ¸ï¼ŒåŸºç¡€å†…æ ¸ä½“ç§¯å¯ä»¥è£å‰ªè‡³ä¸åˆ° 10KB。 (3)低功耗,最低功耗å¯åœ¨å¾®ç“¦ï¼ˆÎ¼W)级。 (4)支æŒåЍæ€åŠ è½½å’Œåˆ†æ•£åŠ è½½ã€‚ (5)支æŒåŠŸèƒ½é™æ€è£å‰ªã€‚ (6)开å‘门槛低,设备布置以åŠç»´æŠ¤æˆæœ¬ä½Žï¼Œå¼€å‘周期çŸï¼Œå¯å¹¿æ³›åº”用于智能家居ã€ä¸ª 人穿戴ã€è½¦è”网ã€åŸŽå¸‚公共æœåŠ¡ã€åˆ¶é€ 业ç‰é¢†åŸŸã€‚ 2.åŽä¸º HarmonyOS HarmonyOS(鸿蒙 OS)是åŽä¸ºæŽ¨å‡ºçš„åŸºäºŽå¾®å†…æ ¸çš„å…¨åœºæ™¯åˆ†å¸ƒå¼åµŒå…¥å¼æ“作系统。 HarmonyOS é‡‡ç”¨äº†å¾®å†…æ ¸è®¾è®¡ï¼Œé€šè¿‡ç®€åŒ–å†…æ ¸åŠŸèƒ½ï¼Œä½¿å†…æ ¸åªæä¾›å¤šè¿›ç¨‹è°ƒåº¦å’Œå¤šè¿›ç¨‹é€š ä¿¡ç‰æœ€åŸºç¡€çš„æœåŠ¡ï¼Œè€Œè®©å†…æ ¸ä¹‹å¤–çš„ç”¨æˆ·æ€å°½å¯èƒ½å¤šåœ°å®žçŽ°ç³»ç»ŸæœåŠ¡ï¼ŒåŒæ—¶æ·»åŠ äº†ç›¸äº’ä¹‹é—´ çš„å®‰å…¨ä¿æŠ¤ï¼Œæ‹¥æœ‰æ›´å¼ºçš„å®‰å…¨ç‰¹æ€§å’Œæ›´ä½Žçš„æ—¶å»¶ã€‚HarmonyOS 使用确定时延引擎和高性能 进程间通信(Inter-Process Communication,IPC)两大技术解决现有系统性能ä¸è¶³çš„问题。 确定时延引擎å¯åœ¨ä»»åŠ¡æ‰§è¡Œå‰åˆ†é…系统ä¸ä»»åŠ¡æ‰§è¡Œä¼˜å…ˆçº§åŠæ—¶é™ï¼Œä¼˜å…ˆçº§é«˜çš„任务资æºå°† 优先ä¿éšœè°ƒåº¦ï¼ŒåŒæ—¶å¾®å†…æ ¸ç»“æž„å°å·§çš„特性使 IPC 性能大大æé«˜ã€‚HarmonyOS çš„åˆ†å¸ƒå¼ OS 架构和分布å¼è½¯æ€»çº¿æŠ€æœ¯å…·å¤‡å…¬å…±é€šä¿¡å¹³å°ã€åˆ†å¸ƒå¼æ•°æ®ç®¡ç†ã€åˆ†å¸ƒå¼èƒ½åŠ›è°ƒåº¦å’Œè™šæ‹Ÿå¤–è®¾ 四大能力,能够将分布å¼åº”用底层技术的实现难度对应用开å‘者进行å±è”½ï¼Œä½¿å¼€å‘者èšç„¦äºŽ 自身业务逻辑,åƒå¼€å‘åŒä¸€ç»ˆç«¯åº”ç”¨é‚£æ ·å¼€å‘跨终端分布å¼åº”ç”¨ï¼Œå®žçŽ°è·¨ç»ˆç«¯çš„æ— ç¼ååŒã€‚ HarmonyOS 2.0 已在智慧å±ã€PCã€æ‰‹è¡¨ / 手环和手机上获得应用,并将覆盖到音箱ã€è€³æœºä»¥ åŠè™šæ‹ŸçŽ°å®žï¼ˆVirtual Reality,VR)眼镜ç‰åº”用产å“ä¸ã€‚ 3.阿里巴巴 AliOS Things AliOS Things 是阿里巴巴集团控股有é™å…¬å¸ï¼ˆç®€ç§°é˜¿é‡Œå·´å·´ï¼‰é¢å‘物è”网领域推出的轻 é‡çº§å¼€æºç‰©è”ç½‘åµŒå…¥å¼æ“作系统。除æ“ä½œç³»ç»Ÿå†…æ ¸å¤–ï¼ŒAliOS Things 包å«äº†ç¡¬ä»¶æŠ½è±¡å±‚ã€æ¿ 级支æŒåŒ…ã€åè®®æ ˆã€ä¸é—´ä»¶ã€AOS API 以åŠåº”用示例ç‰ç»„件,支æŒå„ç§ä¸»æµçš„ CPU 架构, 包括 Arm Cortex-M0+/M3/M4/M7/A7/A53/A72ã€RISC-Vã€C-SKYã€MIPS-I å’Œ Renesas ç‰ã€‚ AliOS Things é‡‡ç”¨äº†é˜¿é‡Œå·´å·´è‡ªä¸»ç ”å‘çš„é«˜æ•ˆå®žæ—¶åµŒå…¥å¼æ“ä½œç³»ç»Ÿå†…æ ¸ï¼Œè¯¥å†…æ ¸ä¸Žåº”ç”¨åœ¨å†… å˜åŠç¡¬ä»¶çš„ä½¿ç”¨ä¸Šä¸¥æ ¼éš”ç¦»ï¼Œåœ¨ä¿è¯ç³»ç»Ÿå®‰å…¨æ€§çš„åŒæ—¶ï¼Œå…·å¤‡æžè‡´æ€§èƒ½ï¼Œå¦‚æžç®€å¼€å‘ã€äº‘ 端一体ã€ä¸°å¯Œç»„ä»¶ã€å®‰å…¨é˜²æŠ¤ç‰å…³é”®èƒ½åŠ›ã€‚AliOS Things 支æŒç»ˆç«¯è®¾å¤‡åˆ°é˜¿é‡Œäº‘ Link 的连 接,å¯å¹¿æ³›åº”ç”¨åœ¨æ™ºèƒ½å®¶å±…ã€æ™ºæ…§åŸŽå¸‚ã€æ–°å‡ºè¡Œç‰é¢†åŸŸï¼Œæ£åœ¨æˆé•¿ä¸ºå›½äº§è‡ªä¸»å¯æŽ§ã€äº‘端 一体化的新型物è”ç½‘åµŒå…¥å¼æ“作系统。AliOS Things 已应用于互è”ç½‘æ±½è½¦ã€æ™ºèƒ½ç”µè§†ã€æ™ºèƒ½ æ‰‹æœºã€æ™ºèƒ½æ‰‹è¡¨ç‰ä¸åŒç»ˆç«¯ï¼Œæ£åœ¨é€æ¥å½¢æˆå¼ºå¤§çš„阿里云物è”网(Internet of Thing,IoT) 生æ€ã€‚ 4.翼辉 SylixOS SylixOS æ˜¯ç”±åŒ—äº¬ç¿¼è¾‰ä¿¡æ¯æŠ€æœ¯æœ‰é™å…¬å¸æŽ¨å‡ºçš„å¼€æºåµŒå…¥å¼å®žæ—¶æ“作系统,从 2006 å¹´ å¼€å§‹ç ”å‘,ç»è¿‡å¤šå¹´çš„æŒç»å¼€å‘与改进,已æˆä¸ºä¸€ä¸ªåŠŸèƒ½å…¨é¢ã€ç¨³å®šå¯é ã€æ˜“于开å‘的大 型嵌入å¼å®žæ—¶æ“作系统平å°ã€‚翼辉 SylixOS 采用å°è€Œå·§çš„ç¡¬å®žæ—¶å†…æ ¸ï¼Œæ”¯æŒ 256 个优先级 全书.indd 16 2024/3/16 14:51:06 第 1 ç« â€ƒ 绪论 17 抢å å¼è°ƒåº¦å’Œä¼˜å…ˆçº§ç»§æ‰¿ï¼Œæ”¯æŒè™šæ‹Ÿè¿›ç¨‹å’Œæ— é™å¤šä»»åŠ¡æ•°ï¼Œè°ƒåº¦ç®—æ³•å…ˆè¿›ã€é«˜æ•ˆã€æ€§èƒ½å¼º 劲。SylixOS ç›®å‰å·²æ”¯æŒArmã€MIPSã€PowerPCã€x86ã€SPARCã€DSPã€RISC-Vã€C-SKY ç‰æž¶æž„的处ç†å™¨ï¼ŒåŒ…括主æµå›½äº§çš„飞腾全系列ã€é¾™èŠ¯å…¨ç³»åˆ—ã€ä¸å¤©å¾® CK810ã€å…†èŠ¯å…¨ç³»åˆ— ç‰å¤„ç†å™¨ï¼ŒåŒæ—¶æ”¯æŒå¯¹ç§°å¤šå¤„ç†å™¨ï¼ˆSymmetrical Multi-Processor,SMP)平å°ï¼Œå¹¶é’ˆå¯¹ä¸ åŒçš„处ç†å™¨æä¾›ä¼˜åŒ–的驱动程åºï¼Œæé«˜äº†ç³»ç»Ÿçš„æ•´ä½“性能。SylixOS æ”¯æŒæŽ‰ç”µå®‰å…¨æ–‡ä»¶ç³»ç»Ÿ (True Power Safe File System,TpsFsï¼‰ã€æ–‡ä»¶é…置表(File Allocation Table,FAT)〠YAFFS (Yet Another Flash File System)〠ROOTFSï¼ˆæ ¹æ–‡ä»¶ç³»ç»Ÿï¼‰ã€PROCFS(进程文件系统)ã€ç½‘ 络文件系统(Network File System,NFS)〠ROMFS(åªè¯»æ–‡ä»¶ç³»ç»Ÿï¼‰ç‰å¤šç§å¸¸ç”¨æ–‡ä»¶ç³» ç»Ÿï¼Œä»¥åŠ Qtã€MicroWindowsã€Î¼C/GUI ç‰ç¬¬ä¸‰æ–¹å›¾å½¢åº“。SylixOS 还æä¾›äº†å®Œå–„的网络功 能以åŠä¸°å¯Œçš„网络工具。æ¤å¤–,SylixOS 的应用编程接å£ç¬¦åˆã€Šå†›ç”¨åµŒå…¥å¼å®žæ—¶æ“作系统应 用编程接å£ã€‹ï¼ˆGJB 7714— 2012)和 IEEEã€å›½é™…æ ‡å‡†åŒ–ç»„ç»‡ï¼ˆInternational Organization for Standardization,ISO)ã€å›½é™…电工委员会(International Electrotechnical Commission,IEC) 相关æ“作系统的编程接å£è§„范,用户现有应用程åºå¯ä»¥å¾ˆæ–¹ä¾¿åœ°è¿›è¡Œè¿ç§»ã€‚ç›®å‰ï¼ŒSylixOS 的应用已覆盖网络设备ã€å›½é˜²å®‰å…¨ã€å·¥ä¸šè‡ªåŠ¨åŒ–ã€è½¨é“交通ã€ç”µåŠ›ã€åŒ»ç–—ã€èˆªç©ºèˆªå¤©ã€æ±½è½¦ 电åç‰è¯¸å¤šé¢†åŸŸã€‚ 5.ç¿èµ›å¾· RT-Thread RT-Thread 的全称是 Real Time-Thread,是由上海ç¿èµ›å¾·ç”µå科技有é™å…¬å¸æŽ¨å‡ºçš„一个 å¼€æºåµŒå…¥å¼å®žæ—¶å¤šçº¿ç¨‹æ“作系统。RT-Thread 3.1.0 åŠä»¥å‰çš„版本éµå¾ª GPL V2+ å¼€æºè®¸å¯å 议,3.1.0 以åŽçš„版本éµå¾ª Apache License 2.0 å¼€æºè®¸å¯å议。RT-Thread 主è¦ç”±å†…æ ¸å±‚ã€ç»„ 件与æœåС层ã€è½¯ä»¶åŒ… 3 部分组æˆã€‚å…¶ä¸ï¼Œå†…æ ¸å±‚åŒ…æ‹¬ RT-Thread å†…æ ¸å’Œ libcpu/BSP(芯片 ç§»æ¤ç›¸å…³æ–‡ä»¶ / æ¿çº§æ”¯æŒåŒ…)。RT-Thread å†…æ ¸æ˜¯æ•´ä¸ªæ“ä½œç³»ç»Ÿçš„æ ¸å¿ƒéƒ¨åˆ†ï¼ŒåŒ…æ‹¬å¤šçº¿ç¨‹åŠ å…¶è°ƒåº¦ã€ä¿¡å·é‡ã€é‚®ç®±ã€æ¶ˆæ¯é˜Ÿåˆ—ã€å†…å˜ç®¡ç†ã€å®šæ—¶å™¨ç‰å†…æ ¸ç³»ç»Ÿå¯¹è±¡çš„å®žçŽ°ï¼Œè€Œ libcpu/ BSP 与硬件密切相关,由外设驱动和 CPU ç§»æ¤æž„æˆã€‚组件与æœåŠ¡å±‚æ˜¯ RT-Thread å†…æ ¸ä¹‹ä¸Š 的上层软件,包括虚拟文件系统ã€FinSH 命令行界é¢ã€ç½‘络框架ã€è®¾å¤‡æ¡†æž¶ç‰ï¼Œé‡‡ç”¨æ¨¡å—化 设计,åšåˆ°ç»„件内部高内èšã€ç»„件之间低耦åˆã€‚软件包是è¿è¡Œåœ¨æ“作系统平å°ä¸Šä¸”é¢å‘ä¸åŒ 应用领域的通用软件组件,包括物è”网相关的软件包ã€è„šæœ¬è¯è¨€ç›¸å…³çš„软件包ã€å¤šåª’体相关 的软件包ã€å·¥å…·ç±»è½¯ä»¶åŒ…ã€ç³»ç»Ÿç›¸å…³çš„软件包以åŠå¤–设库与驱动类软件包ç‰ã€‚RT-Thread 支 æŒæ‰€æœ‰ä¸»æµçš„嵌入å¼å¾®æŽ§åˆ¶å™¨ï¼ˆMicrocontroller Unit,MCU)架构,如 Arm Cortex-M/R/A〠MIPSã€x86ã€Xtensaã€C-SKYã€RISC-Vï¼Œå³æ”¯æŒå¸‚场上ç»å¤§å¤šæ•°ä¸»æµçš„ MCU å’Œ Wi-Fi 芯片。 相较于 Linux æ“作系统,RT-Thread 具有实时性高ã€å 用资æºå°‘ã€ä½“积å°ã€åŠŸè€—ä½Žã€å¯åŠ¨å¿« 速ç‰ç‰¹ç‚¹ï¼Œéžå¸¸é€‚用于å„ç§èµ„æºå—é™çš„场åˆã€‚ç»è¿‡å¤šå¹´å‘展,RT-Thread å·²ç»æ‹¥æœ‰ä¸€ä¸ªå›½å†… 较大的嵌入å¼å¼€æºç¤¾åŒºï¼ŒåŒæ—¶è¢«å¹¿æ³›åº”用于能æºã€è½¦è½½ã€åŒ»ç–—ã€æ¶ˆè´¹ç”µåç‰å¤šä¸ªè¡Œä¸šï¼Œç´¯è®¡ 装机é‡è¶…过 2000 万å°ï¼Œæˆä¸ºæˆ‘国自主开å‘ã€å›½å†…最æˆç†Ÿç¨³å®šå’Œè£…æœºé‡æœ€å¤§çš„å¼€æºåµŒå…¥å¼å®ž æ—¶æ“作系统之一。 全书.indd 17 2024/3/16 14:51:06 18 Arm 嵌入å¼ç³»ç»ŸåŽŸç†åŠåº”用——STM32F103 微控制器架构ã€ç¼–ç¨‹ä¸Žå¼€å‘ 6.μC/OS-â…¡ μC/OS-Ⅱ(Micro-Controller Operating System Two)是一ç§åŸºäºŽä¼˜å…ˆçº§çš„坿Тå å¼çš„硬 å®žæ—¶å†…æ ¸ã€‚å®ƒå±žäºŽä¸€ä¸ªå®Œæ•´ã€å¯ç§»æ¤ã€å¯å›ºåŒ–ã€å¯è£å‰ªçš„æŠ¢å å¼å¤šä»»åŠ¡å†…æ ¸ï¼ŒåŒ…å«äº†ä»»åŠ¡è°ƒ 度ã€ä»»åŠ¡ç®¡ç†ã€æ—¶é—´ç®¡ç†ã€å†…å˜ç®¡ç†å’Œä»»åŠ¡é—´çš„é€šä¿¡å’ŒåŒæ¥ç‰åŸºæœ¬åŠŸèƒ½ã€‚Î¼C/OS-â…¡åµŒå…¥å¼ ç³»ç»Ÿå¯ç”¨äºŽå„ç±» 8 ä½å•片机ã€16 ä½å’Œ 32 ä½å¾®æŽ§åˆ¶å™¨å’Œæ•°å—ä¿¡å·å¤„ç†å™¨ã€‚ μC/OS-Ⅱ嵌入å¼ç³»ç»ŸæºäºŽ Jean J.Labrosse 在 1992 年编写的一个嵌入å¼å¤šä»»åŠ¡å®žæ—¶æ“ ä½œç³»ç»Ÿï¼Œ1999 年改写åŽå‘½å为 μC/OS-Ⅱ,并在 2000 年被美国航空管ç†å±€è®¤è¯ã€‚μC/OS-â…¡ 系统具有足够的安全性和稳定性,å¯ä»¥è¿è¡Œåœ¨èˆªå¤©å™¨ç‰å¯¹å®‰å…¨è¦æ±‚æžä¸ºè‹›åˆ»çš„系统之上。 μC/OS-Ⅱ系统是专门为计算机的嵌入å¼åº”用而设计的。μC/OS-â…¡ç³»ç»Ÿä¸ 90ï¼…çš„ä»£ç æ˜¯ 用 C è¯è¨€ç¼–写的,CPU 硬件相关部分是用汇编è¯è¨€ç¼–写的。总é‡çº¦ 200 行的汇编è¯è¨€éƒ¨åˆ† 被压缩到最低é™åº¦ï¼Œä¾¿äºŽç§»æ¤åˆ°ä»»ä½•一ç§å…¶ä»– CPU 上。用户åªè¦æœ‰æ ‡å‡†çš„ ANSI çš„ C äº¤å‰ ç¼–è¯‘å™¨ï¼Œæœ‰æ±‡ç¼–å™¨ã€è¿žæŽ¥å™¨ç‰è½¯ä»¶å·¥å…·ï¼Œå°±å¯ä»¥å°† μC/OS-Ⅱ系统嵌入所è¦å¼€å‘的产å“ä¸ã€‚ μC/OS-Ⅱ系统具有执行效率高ã€å 用空间å°ã€å®žæ—¶æ€§èƒ½ä¼˜è‰¯å’Œå¯æ‰©å±•性强ç‰ç‰¹ç‚¹ï¼Œç›®å‰å‡ 乎已ç»ç§»æ¤åˆ°äº†æ‰€æœ‰çŸ¥åçš„ CPU 上。 μC/OS-Ⅱ系统的主è¦ç‰¹ç‚¹å¦‚下。 (1ï¼‰å¼€æºæ€§ã€‚μC/OS-Ⅱ系统的æºä»£ç 全部公开,用户å¯ç›´æŽ¥ç™»å½• μC/OS-Ⅱ的官方网站 下载,网站上公布了针对ä¸åŒå¾®å¤„ç†å™¨çš„ç§»æ¤ä»£ç 。用户也å¯ä»¥ä»Žæœ‰å…³å‡ºç‰ˆç‰©ä¸Šæ‰¾åˆ°è¯¦å°½çš„ æºä»£ç è®²è§£å’Œæ³¨é‡Šã€‚è¿™æ ·ä½¿ç³»ç»Ÿå˜å¾—逿˜Žï¼Œæžå¤§åœ°æ–¹ä¾¿äº† μC/OS-Ⅱ系统的开å‘,æé«˜äº†å¼€ 呿•ˆçŽ‡ã€‚ (2)å¯ç§»æ¤æ€§ã€‚ç»å¤§éƒ¨åˆ† μC/OS-Ⅱ系统的æºä»£ç æ˜¯ç”¨ç§»æ¤æ€§å¾ˆå¼ºçš„ ANSI C è¯å¥å†™çš„, 和微处ç†å™¨ç¡¬ä»¶ç›¸å…³çš„部分是用汇编è¯è¨€å†™çš„。汇编è¯è¨€ç¼–写的部分已ç»åŽ‹ç¼©åˆ°æœ€å°é™åº¦ï¼Œ 使 μC/OS-Ⅱ系统便于移æ¤åˆ°å…¶ä»–微处ç†å™¨ä¸Šã€‚μC/OS-Ⅱ系统能够移æ¤åˆ°å¤šç§å¾®å¤„ç†å™¨ä¸Šçš„ æ¡ä»¶æ˜¯ï¼šåªè¦è¯¥å¾®å¤„ç†å™¨æœ‰å †æ ˆæŒ‡é’ˆï¼Œæœ‰ CPU 内部寄å˜å™¨å…¥æ ˆã€å‡ºæ ˆæŒ‡ä»¤ã€‚å¦å¤–,使用的 C 编译器必须支æŒå†…嵌汇编(In-line Assembly)或该 C è¯è¨€å¯æ‰©å±•ã€å¯è¿žæŽ¥æ±‡ç¼–模å—,使 关䏿–ã€å¼€ä¸æ–能在 C è¯è¨€ç¨‹åºä¸å®žçŽ°ã€‚ (3)å¯å›ºåŒ–。μC/OS-Ⅱ系统是为嵌入å¼åº”用而设计的,åªè¦å…·å¤‡åˆé€‚的软ã€ç¡¬ä»¶å·¥å…·ï¼Œ μC/OS-Ⅱ系统就å¯ä»¥åµŒå…¥ç”¨æˆ·çš„产å“ä¸ï¼Œæˆä¸ºäº§å“的一部分。 (4)å¯è£å‰ªã€‚用户å¯ä»¥æ ¹æ®è‡ªèº«éœ€æ±‚åªä½¿ç”¨ μC/OS-Ⅱ系统ä¸åº”用程åºéœ€è¦çš„系统æœåŠ¡ã€‚ è¿™ç§å¯è£å‰ªæ€§æ˜¯é æ¡ä»¶ç¼–译实现的。åªè¦åœ¨ç”¨æˆ·çš„应用程åºä¸ï¼ˆç”¨ï¼ƒ deï¬ne constants è¯å¥ï¼‰ 定义那些 μC/OS-Ⅱ系统ä¸çš„功能是应用程åºéœ€è¦çš„å°±å¯ä»¥äº†ã€‚ (5)抢å å¼ã€‚μC/OS-Ⅱ系统是完全抢å å¼çš„å®žæ—¶å†…æ ¸ã€‚Î¼C/OS-Ⅱ系统总是è¿è¡Œå°±ç»ªæ¡ 件下优先级最高的任务。 (6)多任务。μC/OS-Ⅱ系统 2.8.6 版本å¯ä»¥ç®¡ç† 256 个任务,目å‰é¢„ç•™ 8 ä¸ªç»™ç³»ç»Ÿï¼Œå› æ¤åº”ç”¨ç¨‹åºæœ€å¤šå¯ä»¥æœ‰ 248 个任务。系统赋予æ¯ä¸ªä»»åŠ¡çš„ä¼˜å…ˆçº§æ˜¯ä¸ç›¸åŒçš„,μC/OS-â…¡ç³» ç»Ÿä¸æ”¯æŒæ—¶é—´ç‰‡è½®è½¬è°ƒåº¦æ³•。 全书.indd 18 2024/3/16 14:51:06 第 1 ç« â€ƒ 绪论 19 (7)å¯ç¡®å®šæ€§ã€‚μC/OS-Ⅱ系统全部的函数调用与æœåŠ¡çš„æ‰§è¡Œæ—¶é—´éƒ½å…·æœ‰å¯ç¡®å®šæ€§ã€‚也就 是说,μC/OS-Ⅱ系统的所有函数调用与æœåŠ¡çš„æ‰§è¡Œæ—¶é—´éƒ½æ˜¯å¯çŸ¥çš„ï¼Œå³ Î¼C/OS-Ⅱ系统æœåŠ¡ 的执行时间ä¸ä¾èµ–于应用程åºä»»åŠ¡çš„å¤šå°‘ã€‚ (8ï¼‰ä»»åŠ¡æ ˆã€‚Î¼C/OS-Ⅱ系统的æ¯ä¸ªä»»åŠ¡æœ‰è‡ªå·±å•ç‹¬çš„æ ˆï¼ŒÎ¼C/OS-Ⅱ系统å…许æ¯ä¸ªä»»åŠ¡ 有ä¸åŒçš„æ ˆç©ºé—´ï¼Œä»¥ä¾¿åŽ‹ä½Žåº”ç”¨ç¨‹åºå¯¹ RAM 的需求。使用 μC/OS-â…¡ç³»ç»Ÿçš„æ ˆç©ºé—´æ ¡éªŒå‡½ 数,å¯ä»¥ç¡®å®šæ¯ä¸ªä»»åŠ¡åˆ°åº•éœ€è¦å¤šå°‘æ ˆç©ºé—´ã€‚ (9)系统æœåŠ¡ã€‚Î¼C/OS-Ⅱ系统æä¾›å¾ˆå¤šç³»ç»ŸæœåŠ¡ï¼Œå¦‚é‚®ç®±ã€æ¶ˆæ¯é˜Ÿåˆ—ã€ä¿¡å·é‡ã€å—å¤§å° å›ºå®šçš„å†…å˜çš„ç”³è¯·ä¸Žé‡Šæ”¾ã€æ—¶é—´ç›¸å…³å‡½æ•°ç‰ã€‚ (10ï¼‰ä¸æ–管ç†ï¼Œæ”¯æŒåµŒå¥—ã€‚ä¸æ–å¯ä»¥ä½¿æ£åœ¨æ‰§è¡Œçš„任务暂时挂起。如果优先级更高的 ä»»åŠ¡è¢«è¯¥ä¸æ–å”¤é†’ï¼Œåˆ™é«˜ä¼˜å…ˆçº§çš„ä»»åŠ¡åœ¨ä¸æ–嵌套全部退出åŽç«‹å³æ‰§è¡Œï¼Œä¸æ–嵌套层数å¯è¾¾ 255 层。 μC/OS-Ⅱ系统一些典型的应用领域如下。 (1ï¼‰æ±½è½¦ç”µåæ–¹é¢ï¼šå‘动机控制ã€é˜²æŠ±æ»ç³»ç»Ÿï¼ˆAnti-lock Braking System,ABS)〠全 çƒå®šä½ç³»ç»Ÿï¼ˆGlobal Positioning System,GPS)ç‰ã€‚ (2)办公用å“ï¼šä¼ çœŸæœºã€æ‰“å°æœºã€å¤å°æœºã€æ‰«æä»ªç‰ã€‚ (3)通信电åï¼šäº¤æ¢æœºã€è·¯ç”±å™¨ã€è°ƒåˆ¶è§£è°ƒå™¨ã€æ™ºèƒ½æ‰‹æœºç‰ã€‚ (4)过程控制:食å“åŠ å·¥ã€æœºæ¢°åˆ¶é€ ç‰ã€‚ (5)航空航天:飞机控制系统ã€å–·æ°”å¼å‘动机控制ç‰ã€‚ (6)消费电å:MP3/MP4/MP5 æ’æ”¾å™¨ã€æœºé¡¶ç›’ã€æ´—衣机ã€ç”µå†°ç®±ã€ç”µè§†æœºç‰ã€‚ (7)机器人和æ¦å™¨åˆ¶å¯¼ç³»ç»Ÿç‰ã€‚ 7ï¼ŽåµŒå…¥å¼ Linux Linux 诞生于 1991 å¹´ 10 月 5 日(这是第 1 次æ£å¼å‘外公布时间),是一套开æºã€å…è´¹ ä½¿ç”¨å’Œè‡ªç”±ä¼ æ’的类 UNIX æ“作系统。Linux 是一个基于 POSIX å’Œ UNIX 的支æŒå¤šç”¨æˆ·ã€ 多任务ã€å¤šçº¿ç¨‹å’Œå¤š CPU çš„æ“作系统。它能è¿è¡Œä¸»è¦çš„ UNIX 工具软件ã€åº”用程åºå’Œç½‘络 åè®®ï¼Œæ”¯æŒ 32 ä½å’Œ 64 ä½ç¡¬ä»¶ã€‚Linux 继承了 UNIX ä»¥ç½‘ç»œä¸ºæ ¸å¿ƒçš„è®¾è®¡æ€æƒ³ï¼Œæ˜¯ä¸€ä¸ªæ€§èƒ½ 稳定的多用户网络æ“作系统,å˜åœ¨è®¸å¤šä¸åŒçš„版本,但它们都使用了 Linux å†…æ ¸ã€‚Linux å¯ å®‰è£…åœ¨è®¡ç®—æœºç¡¬ä»¶ä¸ï¼Œå¦‚手机ã€å¹³æ¿ç”µè„‘ã€è·¯ç”±å™¨ã€è§†é¢‘æ¸¸æˆæŽ§åˆ¶å°ã€å°å¼è®¡ç®—机ã€å¤§åž‹æœº 和超级计算机。 Linux éµå¾ª GPL(GNU 通用公共许å¯è¯ï¼‰åè®®ï¼Œæ— é¡»ä¸ºæ¯ä¾‹åº”用交纳许å¯è¯è´¹ï¼Œå¹¶ä¸” 拥有大é‡å…费且优秀的开å‘工具和庞大的开å‘人员群体。Linux 有大é‡åº”ç”¨è½¯ä»¶ï¼Œå¹¶ä¸”å…¶ä¸ å¤§éƒ¨åˆ†éƒ½éµå¾ª GPL å议,是æºä»£ç 开放且å…费的,å¯ä»¥åœ¨ç¨åŠ ä¿®æ”¹åŽåº”用于用户自己的系 ç»Ÿï¼Œå› æ¤è½¯ä»¶çš„å¼€å‘å’Œç»´æŠ¤æˆæœ¬å¾ˆä½Žã€‚Linux 完全使用 C è¯è¨€ç¼–写,应用入门简å•,åªè¦æ‡‚ æ“作系统原ç†å’Œ C è¯è¨€å³å¯ã€‚Linux å†…æ ¸ç²¾æ‚,è¿è¡Œæ‰€éœ€èµ„æºå°‘,稳定,并具备优秀的网络 功能,å分适åˆåµŒå…¥å¼æ“作系统应用。 全书.indd 19 2024/3/16 14:51:06 20 Arm 嵌入å¼ç³»ç»ŸåŽŸç†åŠåº”用——STM32F103 微控制器架构ã€ç¼–ç¨‹ä¸Žå¼€å‘ åµŒå…¥å¼ Linux 具有以下特点。 (1ï¼‰åµŒå…¥å¼ Linux 是完全开æºçš„ï¼Œå› æ¤å®ƒå¹¿æ³›åº”ç”¨äºŽé«˜æ ¡æ•™å¦ã€‚ç ”ç©¶åµŒå…¥å¼ Linux 代ç 的专家ã€å¦è€…è¿œæ¯”ç ”ç©¶å…¶ä»–æ“作系统的多,而且 Internet 上的资æºä¸°å¯Œï¼Œè¿˜æœ‰å¤§é‡çš„图书ã€èµ„料, 使å¦ä¹ Linux 系统的代价最å°ã€‚ (2ï¼‰åµŒå…¥å¼ Linux 是å…è´¹çš„ï¼Œä¸æ¶‰åŠä»»ä½•版æƒå’Œä¸“利。这一点被商界所看é‡ï¼Œå› æ¤ï¼Œå¤§ 部分嵌入å¼äº§å“åœ¨åˆæœŸéƒ½ä½¿ç”¨è¿‡åµŒå…¥å¼ Linux ç‰ˆæœ¬ã€‚åµŒå…¥å¼ Linux 被很多团体和组织二次开 å‘åŽï¼Œå½¢æˆå…·æœ‰ç‹¬ç«‹çŸ¥è¯†äº§æƒçš„åµŒå…¥å¼æ“ä½œç³»ç»Ÿï¼Œæ‰€ä»¥ï¼ŒåµŒå…¥å¼ Linux å˜ç§ç³»ç»Ÿéžå¸¸å¤šï¼Œå¦‚ WindRiver Linux å’Œ μCLinux ç‰ã€‚ (3ï¼‰åµŒå…¥å¼ Linux 与 Qt 相结åˆï¼Œä½¿åµŒå…¥å¼ Linux 具有良好的图形人机界é¢ï¼Œç”šè‡³å¯ä»¥ å’Œ Windows CE 相媲美,而且 Qt ç›®å‰ä¹Ÿæ˜¯å¼€æºçš„。 (4ï¼‰åµŒå…¥å¼ Linux 的移æ¤èƒ½åŠ›å¼ºï¼Œå…¶å˜ç§å½¢å¼å‡ 乎å¯åº”用于所有主æµåµŒå…¥å¼ç³»ç»Ÿä¸ã€‚嵌 å…¥å¼ Linux 对外设的驱动能力很强,驱动接å£ç¨‹åºè®¾è®¡ç›¸å¯¹å®¹æ˜“,网络上有大é‡å¸¸ç”¨è®¾å¤‡çš„ 驱动代ç å¯ä¾›å‚考借鉴。 (5ï¼‰åµŒå…¥å¼ Linux åœ¨å†…æ ¸ã€æ–‡ä»¶ç³»ç»Ÿã€ç½‘络支æŒç‰æ–¹é¢å‡æœ‰çªå‡ºçš„特点。新的 Linux 内 æ ¸å…·æœ‰ 200 多万行æºä»£ç ï¼Œå¯æ”¯æŒ 32 个 CPU,实时性显著æé«˜ï¼ˆä½†ä¸¥æ ¼æ„ä¹‰ä¸Šä¸æ˜¯å®žæ—¶æ“ ä½œç³»ç»Ÿï¼‰ï¼Œé‡‡ç”¨äº†æ›´æœ‰æ•ˆçš„ä»»åŠ¡è°ƒåº¦å™¨ï¼Œå¢žåŠ äº†å¯¹å¤šç§åµŒå…¥å¼å¤„ç†å™¨çš„æ”¯æŒï¼Œåœ¨å¤šåª’体和网 络通信方é¢ä¹Ÿæœ‰å¾ˆå¤§æé«˜ã€‚ 8.VxWorks VxWorks 是美国 WindRiver å…¬å¸äºŽ 1983 å¹´è®¾è®¡ç ”å‘的一ç§åµŒå…¥å¼å®žæ—¶æ“作系统,具有 良好的æŒç»å‘展能力ã€å¯è£å‰ªå¾®å†…æ ¸ç»“æž„ã€é«˜æ•ˆçš„任务管ç†ã€çµæ´»çš„任务间通信ã€å¾®ç§’级的 䏿–处ç†ã€å‹å¥½çš„å¼€å‘环境ç‰ä¼˜ç‚¹ã€‚由于其良好的å¯é 性和å“越的实时性,VxWorks 被广 泛地应用在通信军事ã€èˆªç©ºã€èˆªå¤©ç‰é«˜ç²¾å°–技术åŠå®žæ—¶æ€§è¦æ±‚æžé«˜çš„é¢†åŸŸï¼Œå¦‚å«æ˜Ÿé€šä¿¡ã€å†› äº‹æ¼”ä¹ ã€å¼¹é“制导ã€é£žæœºå¯¼èˆªç‰ã€‚VxWorks 䏿供æºä»£ç ï¼Œåªæä¾›äºŒè¿›åˆ¶ä»£ç 和应用接å£ã€‚ VxWorks 具有以下特点。 (1)å¯é 性æžé«˜ã€‚VxWorks 通过了 Do-178Bã€ARINC 653 å’Œ IEC 61508 ç‰æ ‡å‡†ä¸¥æ ¼çš„ 安全性验è¯ï¼Œå› 而它主è¦åº”用于军事ã€èˆªç©ºã€èˆªå¤©ç‰å¯¹å®‰å…¨æ€§å’Œå®žæ—¶æ€§è¦æ±‚æžé«˜çš„场åˆã€‚稳 定性和å¯é 性高是 VxWorks æœ€å—æ¬¢è¿Žçš„特点。 (2)实时性好。实时性是指能够在é™å®šæ—¶é—´å†…执行完规定功能并对外部异æ¥äº‹ä»¶ä½œå‡ºå“ 应的能力。VxWorks 系统实时性æžå¥½ï¼Œç³»ç»Ÿæœ¬èº«å¼€é”€å¾ˆå°ï¼Œè¿›ç¨‹è°ƒåº¦ã€è¿›ç¨‹é—´é€šä¿¡ã€ä¸æ– 处ç†ç‰ç³»ç»Ÿç¨‹åºç²¾ç»ƒæœ‰æ•ˆï¼Œé€ æˆçš„任务切æ¢å»¶æ—¶å¾ˆçŸï¼Œæä¾›äº†ä¼˜å…ˆçº§æŠ¢å…ˆå¼å’Œæ—¶é—´ç‰‡è½®æ¢æ–¹ å¼å¤šä»»åŠ¡è°ƒåº¦ï¼Œä½¿ç¡¬ä»¶ç³»ç»Ÿå‘æŒ¥å‡ºæœ€å¥½çš„实时性。例如,美国的 F-16 战斗机ã€B-2 éšèº«è½° 炸机和“爱国者â€å¯¼å¼¹ï¼Œç”šè‡³ 1997 å¹´çš„ç«æ˜ŸæŽ¢æµ‹å™¨ä¸Šä¹Ÿä½¿ç”¨äº† VxWorks 系统。 (3)å¯è£å‰ªæ€§å¥½ã€‚VxWorks å†…æ ¸åªæœ‰8KB,其他系统模å—坿 ¹æ®éœ€è¦å®šåˆ¶ï¼Œä½¿ VxWorks ç³»ç»Ÿå…·æœ‰çµæ´»çš„å¯è£å‰ªæ€§ï¼Œæ—¢å¯ç”¨äºŽæžå°åž‹å•片系统,也å¯ç”¨äºŽå¤§è§„模网络系统。 VxWorks çš„å˜å‚¨è„šæœ¬ï¼ˆMemory Footprint)å¯ä»¥æŒ‡å®šç³»ç»Ÿè¿è¡Œå†…å˜ç©ºé—´å¤§å°ï¼ˆè¿™é‡Œçš„å˜å‚¨è„š 全书.indd 20 2024/3/16 14:51:06 第 1 ç« â€ƒ 绪论 21 本å¯ç†è§£ä¸ºåŸºäºŽ VxWorks 的应用程åºå¯æ‰§è¡Œä»£ç )。 (4)开å‘环境å‹å¥½ã€‚基于图形化的集æˆå¼€å‘环境 WindRiver Workbench,å¯å¼€å±•基于 VxWorks å’Œ WindRiver Linux 系统应用的工程开å‘。WindRiver Workbench 是一个完备的设计〠调试ã€ä»¿çœŸå’Œå·¥ç¨‹é›†æˆè§£å†³æ–¹æ¡ˆã€‚ 9.Android ç›®å‰ï¼ŒGoogle çš„ Android ç³»ç»Ÿå·²ç»æ˜¯å®¶å–»æˆ·æ™“çš„åµŒå…¥å¼æ“作系统,也是苹果(Apple) å…¬å¸çš„ iOS 的主è¦ç«žäº‰å¯¹æ‰‹ã€‚æœ‰è¶£çš„æ˜¯ï¼Œæ£æ˜¯ä¾é 与 iOS 的商业竞争,Android 系统æ‰å¾—以 诞生和å‘展。 Android 系统基于 Linux 系统,是 Google 在 2005 å¹´å¹¶è´ Danger å…¬å¸åŽå‘展其 Android è®¡åˆ’çš„æˆæžœï¼ˆå½“时由于 iPhone å–得了巨大æˆåŠŸï¼Œè¯¥è®¡åˆ’å®žè´¨ä¸Šåˆ¶å®šäº†ä¸Ž iOS 竞争的ç–略)。 Andy Rubin 是这个计划的负责人,该计划主è¦é’ˆå¯¹æ™ºèƒ½æ‰‹æŒè®¾å¤‡ã€‚Android çš„è¿è¡Œåº“æ–‡ä»¶åª æœ‰ 250KB,最基本内å˜é…置为 32MB 内å˜ã€32MB é—ªå˜å’Œ 200MHz 处ç†å™¨ã€‚ ä½œä¸ºåµŒå…¥å¼æ“作系统,比较 Androidã€Windows CE å’Œ iOS çš„æ„义ä¸å¤§ï¼Œå› 为它们都 实现了对硬件资æºçš„æŠ½è±¡å’Œç¾Žè§‚的图形用户界é¢ï¼Œå¹¶ä¸” Android 系统是开æºçš„。但是, Android 系统还å¯è¢«è§†ä¸ºä¸€ä¸ªåº”用系统,其集æˆçš„ä¸€äº›è½¯ä»¶çš„é™„åŠ å€¼ç›¸å½“é«˜ã€‚ä¾‹å¦‚ï¼ŒGoogle 地图以åŠä¸Ž Google åœ°å›¾ç›¸å…³çš„ç”Ÿæ´»å…³çˆ±è½¯ä»¶èƒ½ä»Žæ ¹æœ¬ä¸Šä¸ºäººä»¬èŠ‚çœæ—¶é—´å¹¶æ”¹å–„人们的生活。 æ¤å¤–,多媒体娱ä¹è½¯ä»¶å’ŒåŸºäºŽäº‘计算与网络æœåŠ¡çš„è½¯ä»¶ä¹Ÿç›¸å½“å‡ºè‰²ï¼Œè¿™äº›æ˜¯ Android 系统的 独特优势。 å¼€å‘ Android 系统应用程åºä¸Žå¼€å‘ Windows CE 应用程åºç±»ä¼¼ï¼Œå¯åŸºäºŽè½¯ä»¶å¼€å‘工具包 (Software Development Kit,SDK)和 Eclipse 集æˆå¼€å‘环境,或基于 Android Studio 集æˆå¼€ å‘çŽ¯å¢ƒå®žçŽ°ï¼Œå°±ç›®å‰æ¥è¯´ï¼Œç›¸å¯¹äºŽ Windows CE å’Œ iOS,Android 系统还没有明显的劣势。 Android 是一ç§åŸºäºŽ Linux 的自由åŠå¼€æ”¾æºä»£ç çš„æ“作系统,主è¦åº”用于移动设备,如 智能手机和平æ¿ç”µè„‘。Android 逿¸æ‰©å±•åˆ°å…¶ä»–é¢†åŸŸï¼Œå¦‚ç”µè§†ã€æ•°ç ç›¸æœºã€æ¸¸æˆæœºã€æ™ºèƒ½æ‰‹ 表ç‰ã€‚ 10.Windows CE Windows Embedded Compactï¼ˆå³ Windows CE)是微软公å¸åµŒå…¥å¼ã€ç§»åŠ¨è®¡ç®—å¹³å°çš„基 ç¡€ï¼Œå®ƒæ˜¯ä¸€ä¸ªå¯æŠ¢å…ˆå¼ã€å¤šä»»åŠ¡ã€å¤šçº¿ç¨‹å¹¶å…·æœ‰å¼ºå¤§é€šä¿¡èƒ½åŠ›çš„ 32 ä½åµŒå…¥å¼æ“作系统,是 微软公å¸ä¸ºç§»åŠ¨åº”ç”¨ã€ä¿¡æ¯è®¾å¤‡ã€æ¶ˆè´¹ç”µåå’Œå„ç§åµŒå…¥å¼åº”ç”¨è€Œè®¾è®¡çš„å®žæ—¶ç³»ç»Ÿï¼Œç›®æ ‡æ˜¯å®ž 现移动办公ã€ä¾¿æºå¨±ä¹å’Œæ™ºèƒ½é€šä¿¡ã€‚ Windows CE 是模å—化的æ“作系统,主è¦åŒ…括 4 个模å—,å³å†…æ ¸ï¼ˆKernelï¼‰ã€æ–‡ä»¶åç³» 统ã€å›¾å½¢çª—å£äº‹ä»¶å系统(GWES)和通信模å—。其ä¸ï¼Œå†…æ ¸è´Ÿè´£è¿›ç¨‹ä¸Žçº¿ç¨‹è°ƒåº¦ã€ä¸æ–处 ç†ã€è™šæ‹Ÿå†…å˜ç®¡ç†ç‰ï¼›æ–‡ä»¶åç³»ç»Ÿç®¡ç†æ–‡ä»¶æ“ä½œã€æ³¨å†Œè¡¨å’Œæ•°æ®åº“ç‰ï¼›å›¾å½¢çª—å£äº‹ä»¶åç³» 统包括图形界é¢ã€å›¾å½¢è®¾å¤‡é©±åŠ¨å’Œå›¾å½¢æ˜¾ç¤º API 函数ç‰ï¼›é€šä¿¡æ¨¡å—负责设备与 PC é—´çš„äº’è” å’Œç½‘ç»œé€šä¿¡ç‰ã€‚ç›®å‰ Windows CE 的最高版本为 7.0,作为 Windows 10 æ“作系统的移动版。 Windows CE æ”¯æŒ 4 ç§å¤„ç†å™¨æž¶æž„ï¼Œå³ x86ã€MIPSã€Arm å’Œ SH4ï¼ŒåŒæ—¶æ”¯æŒå¤šåª’体设备ã€å›¾ 全书.indd 21 2024/3/16 14:51:06 22 Arm 嵌入å¼ç³»ç»ŸåŽŸç†åŠåº”用——STM32F103 微控制器架构ã€ç¼–ç¨‹ä¸Žå¼€å‘ å½¢è®¾å¤‡ã€å˜å‚¨è®¾å¤‡ã€æ‰“å°è®¾å¤‡å’Œç½‘络设备ç‰å¤šç§å¤–设。除了在智能手机方é¢å¾—到广泛应用之 外,Windows CE 也被应用于机器人ã€å·¥ä¸šæŽ§åˆ¶ã€å¯¼èˆªä»ªã€æŽŒä¸Šç”µè„‘和示波器ç‰è®¾å¤‡ä¸Šã€‚ 相对于其他嵌入å¼å®žæ—¶æ“作系统,Windows CE 具有以下优点。 (1)具有美观的图形用户界é¢ï¼Œè€Œä¸”该界é¢ä¸Žæ¡Œé¢ Windows 系统一脉相承,æ“作直观 简å•。 (2)开å‘基于 Windows CE 的应用程åºç›¸å¯¹ç®€å•ï¼Œå› ä¸º Windows CE çš„ API 函数集是 æ¡Œé¢ Windows 系统 API 函数的åé›†ï¼Œç†Ÿæ‚‰æ¡Œé¢ Windows 程åºè®¾è®¡çš„程åºå‘˜å¯ä»¥å¾ˆå¿«åœ°æŽŒæ¡ Windows CE 应用程åºçš„设计方法,所以 Windows CE 应用程åºçš„开呿ˆæœ¬è¾ƒä½Žã€‚ (3)Windows CE 的文件管ç†åŠŸèƒ½éžå¸¸å¼ºå¤§ï¼Œæ”¯æŒæ¡Œé¢ Windows 系统的 FATã€FAT32 ç‰ã€‚ (4)Windows CE çš„å¯ç§»æ¤æ€§è¾ƒå¥½ã€‚ (5)Windows CE 的设备驱动程åºå¼€å‘相对容易。 (6)Windows CE 的电æºç®¡ç†åŠŸèƒ½è¾ƒå¥½ï¼Œä¸»è¦ä½“现在 Windows Phone 上。 (7)Windows CE 的进程管ç†å’Œä¸æ–å¤„ç†æœºåˆ¶è¾ƒå¥½ã€‚ (8)Windows CE æ”¯æŒæ¡Œé¢ Windows ç³»ç»Ÿçš„ä¼—å¤šæ–‡ä»¶æ ¼å¼ï¼Œå¦‚ Word å’Œ Excel ç‰ï¼Œè¿™ç§ å…¼å®¹æ€§æ–¹ä¾¿æ¡Œé¢ Windows 用户在 Windows CE è®¾å¤‡ä¸Šå¤„ç†æ–‡æ¡£å’Œæ•°æ®ã€‚ Windows CE å‡å€Ÿä¸Šè¿°çªå‡ºä¼˜ç‚¹ï¼Œåœ¨ä¾¿æºè®¾å¤‡ã€ä¿¡æ¯å®¶ç”µå’Œå·¥ä¸šç›‘控ç‰é¢†åŸŸå¾—到了广泛 的应用。 微课视频 1.4.6 软件架构选择建议 从ç†è®ºä¸Šè®²ï¼ŒåŸºäºŽæ“ä½œç³»ç»Ÿçš„å¼€å‘æ¨¡å¼å…·æœ‰å¿«æ·ã€é«˜æ•ˆçš„特点,开å‘çš„è½¯ä»¶ç§»æ¤æ€§ã€åŽ æœŸç»´æŠ¤æ€§ã€ç¨‹åºç¨³å¥æ€§ç‰éƒ½æ¯”è¾ƒå¥½ã€‚ä½†ä¸æ˜¯æ‰€æœ‰ç³»ç»Ÿéƒ½è¦åŸºäºŽæ“ä½œç³»ç»Ÿï¼Œå› ä¸ºè¿™ç§æ¨¡å¼è¦æ±‚ å¼€å‘者对æ“ä½œç³»ç»Ÿçš„åŽŸç†æœ‰æ¯”较深入的掌æ¡ï¼Œä¸€èˆ¬åŠŸèƒ½æ¯”è¾ƒç®€å•的系统,ä¸å»ºè®®ä½¿ç”¨æ“作系 统,毕竟æ“作系统也å 用系统资æºï¼›ä¹Ÿä¸æ˜¯æ‰€æœ‰ç³»ç»Ÿéƒ½èƒ½ä½¿ç”¨æ“ä½œç³»ç»Ÿï¼Œå› ä¸ºæ“作系统对系 ç»Ÿçš„ç¡¬ä»¶æœ‰ä¸€å®šçš„è¦æ±‚ã€‚å› æ¤ï¼Œåœ¨é€šå¸¸æƒ…况下,虽然 STM32 å•片机是 32 ä½ç³»ç»Ÿï¼Œä½†ä¸ä¸» å¼ åµŒå…¥æ“ä½œç³»ç»Ÿã€‚å¦‚æžœç³»ç»Ÿè¶³å¤Ÿå¤æ‚ï¼Œä»»åŠ¡è¶³å¤Ÿå¤šï¼Œåˆæˆ–è€…æœ‰ç±»ä¼¼äºŽç½‘ç»œé€šä¿¡ã€æ–‡ä»¶å¤„ç†ã€ 图形接å£éœ€æ±‚åŠ å…¥ï¼Œä¸å¾—ä¸å¼•å…¥æ“作系统管ç†è½¯ç¡¬ä»¶èµ„æºæ—¶ï¼Œä¹Ÿè¦é€‰æ‹©è½»é‡åŒ–çš„æ“作系统, 如选择 μC/OS-Ⅱ的比较多,其相应的å‚考资æºä¹Ÿæ¯”较多;建议ä¸è¦é€‰æ‹© Linuxã€Android å’Œ Windows CE è¿™æ ·çš„é‡é‡çº§æ“ä½œç³»ç»Ÿï¼Œå› ä¸º STM32F1 系列微控制器硬件系统在未进行扩展 时,是ä¸èƒ½æ»¡è¶³æ¤ç±»æ“作系统的è¿è¡Œéœ€æ±‚的。 1.5 嵌入å¼ç³»ç»Ÿçš„分类 嵌入å¼ç³»ç»Ÿåº”用éžå¸¸å¹¿æ³›ï¼Œå…¶åˆ†ç±»ä¹Ÿå¯ä»¥æœ‰å¤šç§å¤šæ ·çš„æ–¹å¼ã€‚å¯ä»¥æŒ‰åµŒå…¥å¼ç³»ç»Ÿçš„应用 对象进行分类,也å¯ä»¥æŒ‰åµŒå…¥å¼ç³»ç»Ÿçš„功能和性能进行分类,还å¯ä»¥æŒ‰åµŒå…¥å¼ç³»ç»Ÿçš„ç»“æž„å¤ æ‚度进行分类。 全书.indd 22 2024/3/16 14:51:06 第 1 ç« â€ƒ 绪论 23 1.5.1 按应用对象分类 按应用对象分类,嵌入å¼ç³»ç»Ÿä¸»è¦åˆ†ä¸ºå†›ç”¨åµŒå…¥å¼ç³»ç»Ÿå’Œæ°‘用嵌入å¼ç³»ç»Ÿä¸¤å¤§ç±»ã€‚ 军用嵌入å¼ç³»ç»Ÿåˆå¯åˆ†ä¸ºè½¦è½½ã€èˆ°è½½ã€æœºè½½ã€å¼¹è½½ã€æ˜Ÿè½½ç‰ï¼Œé€šå¸¸ä»¥æœºç®±ã€æ’件甚至芯 片形å¼åµŒå…¥ç›¸åº”设备和æ¦å™¨ç³»ç»Ÿä¹‹ä¸ã€‚军用嵌入å¼ç³»ç»Ÿé™¤äº†åœ¨ä½“积å°ã€é‡é‡è½»ã€æ€§èƒ½å¥½ç‰æ–¹ é¢çš„è¦æ±‚之外,往往也对苛刻工作环境的适应性和å¯é 性æå‡ºäº†ä¸¥æ ¼çš„è¦æ±‚。 民用嵌入å¼ç³»ç»Ÿåˆå¯æŒ‰å…¶åº”用的商业ã€å·¥ä¸šå’Œæ±½è½¦ç‰é¢†åŸŸè¿›è¡Œåˆ†ç±»ï¼Œä¸»è¦è€ƒè™‘的是温度 é€‚åº”èƒ½åŠ›ã€æŠ—å¹²æ‰°èƒ½åŠ›ä»¥åŠä»·æ ¼ç‰å› ç´ ã€‚ 1.5.2 按功能和性能分类 按功能和性能分类,嵌入å¼ç³»ç»Ÿä¸»è¦åˆ†ä¸ºç‹¬ç«‹åµŒå…¥å¼ç³»ç»Ÿã€å®žæ—¶åµŒå…¥å¼ç³»ç»Ÿã€ç½‘络嵌入 å¼ç³»ç»Ÿå’Œç§»åŠ¨åµŒå…¥å¼ç³»ç»Ÿç‰ç±»åˆ«ã€‚ 独立嵌入å¼ç³»ç»Ÿæ˜¯æŒ‡èƒ½å¤Ÿç‹¬ç«‹å·¥ä½œçš„嵌入å¼ç³»ç»Ÿï¼Œå®ƒä»¬ä»Žæ¨¡æ‹Ÿæˆ–æ•°å—端å£é‡‡é›†ä¿¡å·ï¼Œç» ä¿¡å·è½¬æ¢å’Œè®¡ç®—处ç†åŽï¼Œé€šè¿‡æ‰€è¿žæŽ¥çš„é©±åŠ¨ã€æ˜¾ç¤ºæˆ–控制设备输出结果数æ®ã€‚常è§çš„è®¡ç®—å™¨ã€ éŸ³è§†é¢‘æ’æ”¾å™¨ã€æ•°ç 相机ã€è§†é¢‘æ¸¸æˆæœºã€å¾®æ³¢ç‚‰ç‰å°±æ˜¯ç‹¬ç«‹åµŒå…¥å¼ç³»ç»Ÿçš„典型应用。 实时嵌入å¼ç³»ç»Ÿæ˜¯æŒ‡åœ¨ä¸€å®šçš„æ—¶é—´çº¦æŸï¼ˆæˆªæ¢æ—¶é—´ï¼‰æ¡ä»¶ä¸‹å®Œæˆä»»åŠ¡æ‰§è¡Œè¿‡ç¨‹çš„åµŒå…¥å¼ ç³»ç»Ÿã€‚æ ¹æ®æˆªæ¢æ—¶é—´çš„ä¸åŒï¼Œå®žæ—¶åµŒå…¥å¼ç³»ç»Ÿåˆå¯åˆ†ä¸ºç¡¬å®žæ—¶åµŒå…¥å¼ç³»ç»Ÿå’Œè½¯å®žæ—¶åµŒå…¥å¼ç³» 统。硬实时嵌入å¼ç³»ç»Ÿæ˜¯æŒ‡å¿…须在给定的时间期é™å†…å®ŒæˆæŒ‡å®šä»»åŠ¡ï¼Œå¦åˆ™å°±ä¼šé€ æˆç¾é𾿀§åŽ æžœçš„åµŒå…¥å¼ç³»ç»Ÿï¼Œå¦‚在军事ã€èˆªç©ºèˆªå¤©ã€æ ¸å·¥ä¸šç‰ä¸€äº›å…³é”®é¢†åŸŸåº”用的嵌入å¼ç³»ç»Ÿã€‚软实时 嵌入å¼ç³»ç»Ÿæ˜¯æŒ‡å¶å°”ä¸èƒ½åœ¨ç»™å®šæ—¶é—´èŒƒå›´å†…å®ŒæˆæŒ‡å®šçš„æ“ä½œï¼Œæˆ–åœ¨ç»™å®šæ—¶é—´èŒƒå›´å¤–æ‰§è¡Œçš„æ“ ä½œä»ç„¶æ˜¯æœ‰æ•ˆå’Œå¯æŽ¥å—的嵌入å¼ç³»ç»Ÿï¼Œå¦‚äººä»¬æ—¥å¸¸ç”Ÿæ´»ä¸æ‰€ä½¿ç”¨çš„æ¶ˆè´¹ç±»ç”µå产å“ã€æ•°æ®é‡‡ 集系统ã€ç›‘控系统ç‰ã€‚ 网络嵌入å¼ç³»ç»Ÿæ˜¯æŒ‡è¿žæŽ¥ç€å±€åŸŸç½‘ã€å¹¿åŸŸç½‘或互è”网的嵌入å¼ç³»ç»Ÿã€‚网络连接方å¼å¯ä»¥ 是有线的,也å¯ä»¥æ˜¯æ— 线的。嵌入å¼ç½‘络æœåŠ¡å™¨å°±æ˜¯ä¸€ç§å…¸åž‹çš„网络嵌入å¼ç³»ç»Ÿï¼Œå…¶ä¸æ‰€ 有嵌入å¼è®¾å¤‡éƒ½è¿žæŽ¥åˆ°ç½‘络æœåŠ¡å™¨ï¼Œå¹¶é€šè¿‡ Web æµè§ˆå™¨è¿›è¡Œè®¿é—®å’ŒæŽ§åˆ¶ï¼Œå¦‚å®¶åºå®‰é˜²ç³»ç»Ÿã€ ATMã€ç‰©è”网设备ç‰ã€‚è¿™äº›ç³»ç»Ÿä¸æ‰€æœ‰ä¼ 感器和执行器节点å‡é€šè¿‡æŸç§å议进行连接ã€é€š 信与控制。网络嵌入å¼ç³»ç»Ÿæ˜¯ç›®å‰åµŒå…¥å¼ç³»ç»Ÿä¸å‘展最快的分类。 移动嵌入å¼ç³»ç»Ÿæ˜¯æŒ‡å…·æœ‰ä¾¿æºæ€§å’Œç§»åŠ¨æ€§çš„åµŒå…¥å¼ç³»ç»Ÿï¼Œå¦‚æ‰‹æœºã€æ‰‹è¡¨ã€æ™ºèƒ½æ‰‹çŽ¯ã€æ•° ç 相机ã€ä¾¿æºå¼æ’æ”¾å™¨ä»¥åŠæ™ºèƒ½å¯ç©¿æˆ´è®¾å¤‡ç‰ã€‚移动嵌入å¼ç³»ç»Ÿæ˜¯ç›®å‰åµŒå…¥å¼ç³»ç»Ÿä¸æœ€å—欢 迎的分类。 1.5.3 æŒ‰ç»“æž„å¤æ‚度分类 æŒ‰ç»“æž„å¤æ‚度分类,嵌入å¼ç³»ç»Ÿä¸»è¦åˆ†ä¸ºå°åž‹åµŒå…¥å¼ç³»ç»Ÿã€ä¸åž‹åµŒå…¥å¼ç³»ç»Ÿå’Œå¤æ‚嵌入 å¼ç³»ç»Ÿä¸‰å¤§ç±»ã€‚ å°åž‹åµŒå…¥å¼ç³»ç»Ÿé€šå¸¸æ˜¯æŒ‡ä»¥ 8 使ˆ– 16 ä½å¤„ç†å™¨ä¸ºæ ¸å¿ƒè®¾è®¡çš„嵌入å¼ç³»ç»Ÿã€‚其处ç†å™¨çš„ 全书.indd 23 2024/3/16 14:51:06 24 Arm 嵌入å¼ç³»ç»ŸåŽŸç†åŠåº”用——STM32F103 微控制器架构ã€ç¼–ç¨‹ä¸Žå¼€å‘ å†…å˜ï¼ˆRAM)ã€ç¨‹åºå˜å‚¨å™¨ï¼ˆROM)和处ç†é€Ÿåº¦ç‰èµ„æºéƒ½ç›¸å¯¹æœ‰é™ï¼Œåº”用程åºä¸€èˆ¬ç”¨æ±‡ç¼– è¯è¨€æˆ–åµŒå…¥å¼ C è¯è¨€ç¼–写,通过汇编器或 / 和编译器进行汇编或 / 和编译åŽç”Ÿæˆå¯æ‰§è¡Œçš„æœº 器ç ,并采用编程器将机器ç 烧写到处ç†å™¨çš„程åºå˜å‚¨å™¨ä¸ã€‚例如,电é¥é”…ã€æ´—衣机ã€å¾®æ³¢ 炉ã€é”®ç›˜ç‰å°±æ˜¯å°åž‹åµŒå…¥å¼ç³»ç»Ÿçš„一些常è§åº”用。 ä¸åž‹åµŒå…¥å¼ç³»ç»Ÿé€šå¸¸æ˜¯æŒ‡ä»¥ 16 ä½ã€32 ä½å¤„ç†å™¨æˆ–æ•°å—ä¿¡å·å¤„ç†å™¨ä¸ºæ ¸å¿ƒè®¾è®¡çš„åµŒå…¥å¼ ç³»ç»Ÿã€‚è¿™ç±»åµŒå…¥å¼ç³»ç»Ÿç›¸è¾ƒäºŽå°åž‹åµŒå…¥å¼ç³»ç»Ÿå…·æœ‰æ›´é«˜çš„ç¡¬ä»¶å’Œè½¯ä»¶å¤æ‚性,嵌入å¼åº”用软 件主è¦é‡‡ç”¨ C è¯è¨€ã€C++ è¯è¨€ã€Java è¯è¨€ã€å®žæ—¶æ“作系统ã€è°ƒè¯•å™¨ã€æ¨¡æ‹Ÿå™¨å’Œé›†æˆå¼€å‘环 境ç‰å·¥å…·è¿›è¡Œå¼€å‘,如 POS 机ã€ä¸é—´æ–电æºï¼ˆUninterruptible Power Supply,UPSï¼‰ã€æ‰«æä»ªã€ 机顶盒ç‰ã€‚ 夿‚嵌入å¼ç³»ç»Ÿä¸Žå°åž‹å’Œä¸åž‹åµŒå…¥å¼ç³»ç»Ÿç›¸æ¯”具有æžé«˜çš„ç¡¬ä»¶å’Œè½¯ä»¶å¤æ‚性,实现 æ›´ä¸ºå¤æ‚的功能,需è¦é‡‡ç”¨æ€§èƒ½æ›´é«˜çš„ 32 使ˆ– 64 ä½å¤„ç†å™¨ã€ä¸“用集æˆç”µè·¯ï¼ˆApplication Speciï¬c Intergrated Circuit,ASIC)或现场å¯ç¼–程逻辑阵列(FPGA)器件进行设计。这类嵌 å…¥å¼ç³»ç»Ÿæœ‰ç€å¾ˆé«˜çš„æ€§èƒ½è¦æ±‚,需è¦é€šè¿‡è½¯ã€ç¡¬ä»¶ååŒè®¾è®¡çš„æ–¹å¼å°†å›¾å½¢ç”¨æˆ·ç•Œé¢ã€å¤šç§é€š 信接å£ã€ç½‘络åè®®ã€æ–‡ä»¶ç³»ç»Ÿç”šè‡³æ•°æ®åº“ç‰ç»„件进行有效å°è£…ã€‚ä¾‹å¦‚ï¼Œç½‘ç»œäº¤æ¢æœºã€æ— 线路 由器ã€IP æ‘„åƒå¤´ã€åµŒå…¥å¼ Web æœåС噍ç‰ç³»ç»Ÿå°±å±žäºŽå¤æ‚嵌入å¼ç³»ç»Ÿã€‚ 1.6 嵌入å¼ç³»ç»Ÿçš„应用领域 微课视频 嵌入å¼ç³»ç»Ÿä¸»è¦åº”用在以下领域。 1.工业控制 基于嵌入å¼èŠ¯ç‰‡çš„å·¥ä¸šè‡ªåŠ¨åŒ–è®¾å¤‡å°†èŽ·å¾—é•¿è¶³çš„å‘展,目å‰å·²ç»æœ‰å¤§é‡çš„ 8 ä½ã€16 ä½ã€ 32 ä½åµŒå…¥å¼å¾®æŽ§åˆ¶å™¨åœ¨åº”用ä¸ï¼Œç½‘络化是æé«˜ç”Ÿäº§æ•ˆçŽ‡å’Œäº§å“è´¨é‡ã€èŠ‚çœäººåŠ›èµ„æºçš„ä¸»è¦ é€”å¾„ï¼Œå¦‚å·¥ä¸šè¿‡ç¨‹æŽ§åˆ¶ã€æ•°å—机床ã€ç”µåŠ›ç³»ç»Ÿã€ç”µç½‘安全ã€ç”µç½‘设备监测ã€çŸ³æ²¹åŒ–工系统。 å°±ä¼ ç»Ÿçš„å·¥ä¸šæŽ§åˆ¶äº§å“而言,低端型采用的往往是 8 ä½å•片机,但是éšç€æŠ€æœ¯çš„å‘展,32 ä½ã€ 64 ä½çš„处ç†å™¨é€æ¸æˆä¸ºå·¥ä¸šæŽ§åˆ¶è®¾å¤‡çš„æ ¸å¿ƒï¼Œåœ¨æœªæ¥å‡ 年内必将快速å‘展。 2ï¼Žäº¤é€šç®¡ç† åœ¨è½¦è¾†å¯¼èˆªã€æµé‡æŽ§åˆ¶ã€ä¿¡æ¯ç›‘测与汽车æœåŠ¡æ–¹é¢ï¼ŒåµŒå…¥å¼ç³»ç»Ÿå·²ç»èŽ·å¾—äº†å¹¿æ³›çš„åº”ç”¨ï¼Œ 如内嵌 GPS 模å—ã€å…¨çƒç§»åŠ¨é€šä¿¡ç³»ç»Ÿï¼ˆGlobal System for Mobile Communication,GSM)模 å—的移动定ä½ç»ˆç«¯å·²ç»åœ¨å„ç§è¿è¾“行业获得了æˆåŠŸçš„ä½¿ç”¨ï¼Œç›®å‰ GPS 设备已ç»ä»Žå°–端领域 进入了普通百姓的家åºã€‚ 3.信æ¯å®¶ç”µ ä¿¡æ¯å®¶ç”µå°†æˆä¸ºåµŒå…¥å¼ç³»ç»Ÿæœ€å¤§çš„应用领域,冰箱ã€ç©ºè°ƒç‰çš„ç½‘ç»œåŒ–ã€æ™ºèƒ½åŒ–将引领人 们的生活æ¥å…¥ä¸€ä¸ªå´æ–°çš„空间。å³ä½¿ç”¨æˆ·ä¸åœ¨å®¶é‡Œï¼Œä¹Ÿå¯ä»¥é€šè¿‡ç”µè¯çº¿ã€ç½‘络进行远程控制, 在这些设备ä¸ï¼ŒåµŒå…¥å¼ç³»ç»Ÿå°†å¤§æœ‰ç”¨æ¦ä¹‹åœ°ã€‚ 全书.indd 24 2024/3/16 14:51:06 第 1 ç« â€ƒ 绪论 25 4ï¼Žå®¶åºæ™ºèƒ½ç®¡ç†ç³»ç»Ÿ æ°´ã€ç”µã€ç…¤æ°”的远程自动抄表,安全防ç«ã€é˜²ç›—系统,其ä¸åµŒæœ‰çš„专用控制芯片将代替 ä¼ ç»Ÿçš„äººå·¥æ£€æŸ¥ï¼Œå¹¶å®žçŽ°æ›´é«˜ã€æ›´å‡†ç¡®å’Œæ›´å®‰å…¨çš„æ€§èƒ½ã€‚ç›®å‰åœ¨æœåŠ¡é¢†åŸŸï¼Œå¦‚è¿œç¨‹ç‚¹èœå™¨ç‰ å·²ç»ä½“现了嵌入å¼ç³»ç»Ÿçš„优势。 5.POS 网络åŠç”µå商务 å…¬å…±äº¤é€šæ— æŽ¥è§¦æ™ºèƒ½å¡ï¼ˆContactless Smartcard,CSC)å‘行系统ã€å…¬å…±ç”µè¯å¡å‘行系统〠自动售货机ã€å„ç§æ™ºèƒ½ ATM 终端将全é¢èµ°å…¥äººä»¬çš„生活,手æŒä¸€å¡å°±å¯ä»¥è¡Œé天下。 6.环境工程与自然 嵌入å¼ç³»ç»Ÿåœ¨æ°´æ–‡èµ„料实时监测ã€é˜²æ´ªä½“ç³»åŠæ°´åœŸè´¨é‡ç›‘测ã€å ¤å安全ã€åœ°éœ‡ç›‘测网〠实时气象信æ¯ç½‘ã€æ°´æºå’Œç©ºæ°”æ±¡æŸ“ç›‘æµ‹ç‰æ–¹é¢æœ‰å¾ˆå¹¿æ³›çš„应用,在很多环境æ¶åŠ£ã€åœ°å†µå¤æ‚ çš„åœ°åŒºï¼Œå°†å®žçŽ°æ— äººç›‘æµ‹ã€‚ 7.机器人 嵌入å¼èŠ¯ç‰‡çš„å‘展将使机器人在微型化ã€é«˜æ™ºèƒ½æ–¹é¢ä¼˜åŠ¿æ›´åŠ æ˜Žæ˜¾ï¼ŒåŒæ—¶ä¼šå¤§å¹…度é™ä½Ž æœºå™¨äººçš„ä»·æ ¼ï¼Œä½¿å…¶åœ¨å·¥ä¸šé¢†åŸŸå’ŒæœåŠ¡é¢†åŸŸèŽ·å¾—æ›´å¹¿æ³›çš„åº”ç”¨ã€‚ 8ï¼Žæœºç”µäº§å“ ç›¸å¯¹äºŽå…¶ä»–çš„é¢†åŸŸï¼Œæœºç”µäº§å“å¯ä»¥è¯´æ˜¯åµŒå…¥å¼ç³»ç»Ÿåº”ç”¨æœ€å…¸åž‹ã€æœ€å¹¿æ³›çš„领域之一。从 最åˆçš„å•片机到现在的工控机ã€ç‰‡ä¸Šç³»ç»Ÿï¼ˆSystem on a Chip,SoC),嵌入å¼ç³»ç»Ÿåœ¨å„ç§æœº 电产å“ä¸å‡æœ‰ç€å·¨å¤§çš„市场。 微课视频 9.物è”网 嵌入å¼ç³»ç»Ÿå·²ç»åœ¨ç‰©è”网方é¢å–得大釿ˆæžœï¼Œåœ¨æ™ºèƒ½äº¤é€šã€POS æ”¶é“¶ã€å·¥åŽ‚è‡ªåŠ¨åŒ–ç‰é¢† 域已ç»å¹¿æ³›åº”用,仅在智能交通行业就已ç»å–å¾—éžå¸¸æ˜Žæ˜¾çš„ç¤¾ä¼šæ•ˆç›Šå’Œç»æµŽæ•ˆç›Šã€‚ éšç€ç§»åŠ¨åº”ç”¨çš„å‘展,嵌入å¼ç³»ç»Ÿç§»åŠ¨åº”ç”¨çš„å‰æ™¯éžå¸¸å¹¿é˜”,包括å¯ç©¿æˆ´è®¾å¤‡ã€æ™ºèƒ½ç¡¬ä»¶ã€ 物è”网。éšç€ä½ŽåŠŸè€—æŠ€æœ¯çš„å‘展,éšèº«å¯æºå¸¦çš„嵌入å¼åº”用将会深入人们生活的å„个方é¢ã€‚ 1.7 嵌入å¼ç³»ç»Ÿçš„体系 嵌入å¼ç³»ç»Ÿæ˜¯ä¸€ä¸ªä¸“用计算机应用系统,是一个软件和硬件集åˆä½“。图 1-4 所示为一个 典型嵌入å¼ç³»ç»Ÿçš„组æˆç»“构。 嵌入å¼ç³»ç»Ÿçš„硬件层一般由嵌入å¼å¤„ç†å™¨ã€å†…å˜ã€äººæœºæŽ¥å£ã€å¤ä½ / 看门狗电路ã€I/O 接å£ç”µè·¯ç‰ç»„æˆï¼Œå®ƒæ˜¯æ•´ä¸ªç³»ç»Ÿè¿è¡Œçš„基础,通过人机接å£å’Œ I/O 接å£å®žçŽ°å’Œå¤–éƒ¨çš„é€šä¿¡ã€‚ 嵌入å¼ç³»ç»Ÿçš„软件层主è¦ç”±åº”用程åºã€ç¡¬ä»¶æŠ½è±¡å±‚ã€åµŒå…¥å¼æ“作系统和驱动程åºã€æ¿çº§æ”¯æŒ 包组æˆã€‚åµŒå…¥å¼æ“作系统主è¦å®žçŽ°åº”ç”¨ç¨‹åºå’Œç¡¬ä»¶æŠ½è±¡å±‚的管ç†ï¼Œåœ¨ä¸€äº›åº”用场åˆå¯ä»¥ä¸ä½¿ 用,直接编写裸机应用程åºã€‚嵌入å¼ç³»ç»Ÿè½¯ä»¶è¿è¡Œåœ¨åµŒå…¥å¼å¤„ç†å™¨ä¸ã€‚åœ¨åµŒå…¥å¼æ“作系统的 管ç†ä¸‹ï¼Œè®¾å¤‡é©±åŠ¨å±‚å°†ç¡¬ä»¶ç”µè·¯æŽ¥æ”¶æŽ§åˆ¶æŒ‡ä»¤å’Œæ„ŸçŸ¥çš„å¤–éƒ¨ä¿¡æ¯ä¼ 递给应用层,ç»è¿‡å¤„ç†åŽï¼Œ 将控制结果或数æ®å†å馈给系统硬件层,完æˆå˜å‚¨ã€ä¼ 输或执行ç‰åŠŸèƒ½è¦æ±‚。 全书.indd 25 2024/3/16 14:51:07 26 Arm 嵌入å¼ç³»ç»ŸåŽŸç†åŠåº”用——STM32F103 微控制器架构ã€ç¼–ç¨‹ä¸Žå¼€å‘ å›¾ 1-4 典型嵌入å¼ç³»ç»Ÿçš„组æˆç»“æž„ 1.7.1 硬件架构 嵌入å¼ç³»ç»Ÿçš„硬件架构以嵌入å¼å¤„ç†å™¨ä¸ºæ ¸å¿ƒï¼Œç”±å˜å‚¨å™¨ã€å¤–围设备ã€é€šä¿¡æ¨¡å—ã€ç”µæº åŠå¤ä½ç‰å¿…è¦çš„辅助接å£ç»„æˆã€‚嵌入å¼ç³»ç»Ÿæ˜¯é‡èº«å®šåšçš„专用计算机应用系统,ä¸åŒäºŽæ™®é€š 计算机组æˆï¼Œåœ¨å®žé™…应用ä¸çš„嵌入å¼ç³»ç»Ÿç¡¬ä»¶é…ç½®éžå¸¸ç²¾ç®€ã€‚除了微处ç†å™¨å’ŒåŸºæœ¬çš„外围设 å¤‡ï¼Œå…¶ä½™çš„ç”µè·¯éƒ½å¯æ ¹æ®éœ€è¦å’Œæˆæœ¬è¿›è¡Œè£å‰ªã€å®šåˆ¶ï¼Œå› æ¤åµŒå…¥å¼ç³»ç»Ÿç¡¬ä»¶é…ç½®éžå¸¸ç»æµŽã€ å¯é 。 éšç€è®¡ç®—机技术ã€å¾®ç”µå技术åŠçº³ç±³èŠ¯ç‰‡åŠ å·¥å·¥è‰ºæŠ€æœ¯çš„å‘展,以微处ç†å™¨ä¸ºæ ¸å¿ƒçš„集 æˆå¤šç§åŠŸèƒ½çš„ SoC 芯片已æˆä¸ºåµŒå…¥å¼ç³»ç»Ÿçš„æ ¸å¿ƒã€‚这些 SoC 集æˆäº†å¤§é‡çš„外围 USBã€ä»¥å¤ªç½‘〠ADC/DACã€äº’è”ç½‘ä¿¡æ¯æœåŠ¡ï¼ˆInternet Information Services,IIS)ç‰åŠŸèƒ½æ¨¡å—。å¯ç¼–程片上 ç³» 统( SOPC)结åˆäº† SoC å’Œå¯ç¼–程逻辑器件(Programmable Logic Device,PLD)的技术优点, 使系统具有å¯ç¼–程的功能,是å¯ç¼–程逻辑器件在嵌入å¼åº”用ä¸çš„完美体现,æžå¤§åœ°æé«˜äº†ç³» 统在线å‡çº§ã€æ¢ä»£çš„能力。以 SoC/SOPC ä¸ºæ ¸å¿ƒï¼Œç”¨æœ€å°‘çš„å¤–å›´å™¨ä»¶å’Œè¿žæŽ¥å™¨ä»¶æž„æˆä¸€ä¸ªåº” 用系统,以满足系统的功能需求,是嵌入å¼ç³»ç»Ÿå‘展的一个方å‘。 å› æ¤ï¼ŒåµŒå…¥å¼ç³»ç»Ÿè®¾è®¡æ˜¯ä»¥åµŒå…¥å¼å¾®å¤„ç†å™¨ /SoC/SOPC ä¸ºæ ¸å¿ƒï¼Œç»“åˆå¤–围接å£è®¾å¤‡ï¼Œ 包括å˜å‚¨è®¾å¤‡ã€é€šä¿¡æ‰©å±•è®¾å¤‡ã€æ‰©å±•设备接å£å’Œè¾…助设备(电æºã€ä¼ æ„Ÿå™¨ã€æ‰§è¡Œå™¨ç‰ï¼‰ï¼Œæž„ æˆç¡¬ä»¶ç³»ç»Ÿä»¥å®Œæˆç³»ç»Ÿè®¾è®¡çš„。 1.7.2 软件层次 嵌入å¼ç³»ç»Ÿè½¯ä»¶å¯ä»¥ç›´æŽ¥é¢å‘硬件的裸机程åºå¼€å‘,也å¯ä»¥åŸºäºŽæ“作系统的嵌入å¼ç¨‹åº 全书.indd 26 2024/3/16 14:51:07 第 1 ç« â€ƒ 绪论 27 å¼€å‘。当嵌入å¼ç³»ç»Ÿåº”ç”¨åŠŸèƒ½ç®€å•æ—¶ï¼Œç›¸åº”的硬件平å°ç»“构也相对简å•,这时å¯ä»¥ä½¿ç”¨è£¸æœº 程åºå¼€å‘æ–¹å¼ï¼Œä¸ä»…能够é™ä½Žç³»ç»Ÿå¤æ‚åº¦ï¼Œè¿˜èƒ½å¤Ÿå®žçŽ°è¾ƒå¥½çš„ç³»ç»Ÿå®žæ—¶æ€§ï¼Œä½†æ˜¯è¦æ±‚程åºè®¾ è®¡äººå‘˜å¯¹ç¡¬ä»¶æž„é€ å’ŒåŽŸç†æ¯”较熟悉。如果嵌入å¼ç³»ç»Ÿåº”ç”¨è¾ƒå¤æ‚,相应的硬件平å°ç»“构也相 坹夿‚,这时å¯èƒ½éœ€è¦ä¸€ä¸ªåµŒå…¥å¼æ“作系统管ç†å’Œè°ƒåº¦å†…å˜ã€å¤šä»»åŠ¡ã€å‘¨è¾¹èµ„æºç‰ã€‚在进行 基于æ“作系统的嵌入å¼ç¨‹åºè®¾è®¡å¼€å‘时,æ“作系统通过对驱动程åºçš„管ç†ï¼Œå°†ç¡¬ä»¶å„组æˆéƒ¨ 分抽象æˆä¸€ç³»åˆ— API å‡½æ•°ï¼Œè¿™æ ·åœ¨ç¼–å†™åº”ç”¨ç¨‹åºæ—¶ï¼Œç¨‹åºè®¾è®¡äººå‘˜å°±å¯ä»¥å‡å°‘对硬件细节 的关注,专注于程åºè®¾è®¡ï¼Œä»Žè€Œå‡è½»ç¨‹åºè®¾è®¡äººå‘˜çš„工作负担。 嵌入å¼ç³»ç»Ÿè½¯ä»¶ç»“æž„ä¸€èˆ¬åŒ…å« 3 个层é¢ï¼šè®¾å¤‡é©±åЍ层ã€OS 层ã€åº”用层(包括硬件抽象层〠应用程åºï¼‰ã€‚由于嵌入å¼ç³»ç»Ÿåº”ç”¨çš„å¤šæ ·æ€§ï¼Œéœ€è¦æ ¹æ®ä¸åŒçš„硬件电路和嵌入å¼ç³»ç»Ÿåº”用特点, 对软件部分进行è£å‰ªã€‚现代高性能嵌入å¼ç³»ç»Ÿçš„应用越æ¥è¶Šå¹¿æ³›ï¼ŒåµŒå…¥å¼æ“ä½œç³»ç»Ÿçš„ä½¿ç”¨æˆ ä¸ºå¿…ç„¶å‘展趋势。 1.设备驱动层 设备驱动层一般由æ¿çº§æ”¯æŒåŒ…和驱动程åºç»„æˆï¼Œæ˜¯åµŒå…¥å¼ç³»ç»Ÿä¸ä¸å¯æˆ–缺的部分。设备 é©±åŠ¨å±‚çš„ä½œç”¨æ˜¯ä¸ºä¸Šå±‚ç¨‹åºæä¾›å¤–å›´è®¾å¤‡çš„æ“作接å£ï¼Œå¹¶ä¸”实现设备的驱动程åºã€‚ä¸Šå±‚ç¨‹åº å¯ä»¥ä¸ç®¡è®¾å¤‡å†…部实现细节,åªé¡»è°ƒç”¨è®¾å¤‡é©±åŠ¨çš„æ“作接å£å³å¯ã€‚ 应用程åºè¿è¡Œåœ¨åµŒå…¥å¼æ“ä½œç³»ç»Ÿä¸Šï¼Œåˆ©ç”¨åµŒå…¥å¼æ“作系统æä¾›çš„æŽ¥å£å®Œæˆç‰¹å®šåŠŸèƒ½ã€‚åµŒ 入弿“ä½œç³»ç»Ÿå…·æœ‰åº”ç”¨çš„ä»»åŠ¡è°ƒåº¦å’ŒæŽ§åˆ¶ç‰æ ¸å¿ƒåŠŸèƒ½ã€‚æ ¹æ®ä¸åŒçš„åº”ç”¨ï¼Œç¡¬ä»¶å¹³å°æ‰€å…·å¤‡åŠŸ 能å„ä¸ç›¸åŒï¼Œè€Œä¸”所使用的硬件也ä¸ç›¸åŒï¼Œå…·æœ‰å¤æ‚çš„å¤šæ ·æ€§ã€‚å› æ¤ï¼Œé’ˆå¯¹ä¸åŒç¡¬ä»¶å¹³å°è¿› è¡ŒåµŒå…¥å¼æ“ä½œç³»ç»Ÿçš„ç§»æ¤æ˜¯æžä¸ºè€—时的工作,为简化ä¸åŒç¡¬ä»¶å¹³å°é—´æ“作系统的移æ¤é—®é¢˜ï¼Œ åœ¨åµŒå…¥å¼æ“作系统和硬件平å°ä¹‹é—´å¢žåŠ äº†ç¡¬ä»¶æŠ½è±¡å±‚ï¼ˆHALï¼‰ã€‚æœ‰äº†ç¡¬ä»¶æŠ½è±¡å±‚ï¼ŒåµŒå…¥å¼æ“ 作系统和应用程åºå°±ä¸éœ€è¦å…³å¿ƒåº•层的硬件平å°ä¿¡æ¯ï¼Œå†…æ ¸ä¸Žç¡¬ä»¶ç›¸å…³çš„ä»£ç 也ä¸å¿…å› ç¡¬ä»¶ çš„ä¸åŒè€Œä¿®æ”¹ï¼Œåªè¦ç¡¬ä»¶æŠ½è±¡å±‚能够æä¾›å¿…需的æœåŠ¡å³å¯ï¼Œä»Žè€Œå±è”½åº•层硬件,方便进行系 统的移æ¤ã€‚通常硬件抽象层是以æ¿çº§æ”¯æŒåŒ…的形å¼å®Œæˆå¯¹å…·ä½“硬件的æ“作的。 1)æ¿çº§æ”¯æŒåŒ… æ¿çº§æ”¯æŒåŒ…(BSP)是介于主æ¿ç¡¬ä»¶å’ŒåµŒå…¥å¼æ“作系统ä¸é©±åŠ¨ç¨‹åºä¹‹é—´çš„一层。BSP 是 所有与硬件相关的代ç 的集åˆï¼Œä¸ºåµŒå…¥å¼æ“作系统的æ£å¸¸è¿è¡Œæä¾›äº†æœ€åŸºæœ¬ã€æœ€åŽŸå§‹çš„ç¡¬ä»¶ æ“作的软件模å—。BSP å’ŒåµŒå…¥å¼æ“ä½œç³»ç»Ÿæ¯æ¯ç›¸å…³ï¼Œä¸ºä¸Šå±‚çš„é©±åŠ¨ç¨‹åºæä¾›äº†è®¿é—®ç¡¬ä»¶çš„å¯„ å˜å™¨çš„函数包,使之能够更好地è¿è¡ŒäºŽä¸»æ¿ç¡¬ä»¶ã€‚ BSP 具有以下三大功能。 (1)系统上电时的硬件åˆå§‹åŒ– , 如对系统内å˜ã€å¯„å˜å™¨åŠè®¾å¤‡çš„䏿–进行设置。这是比 较系统化的工作,硬件上电åˆå§‹åŒ–è¦æ ¹æ®åµŒå…¥å¼å¼€å‘所选的 CPU 类型ã€ç¡¬ä»¶åŠåµŒå…¥å¼æ“作 系统的åˆå§‹åŒ–ç‰å¤šæ–¹é¢å†³å®š BSP 应实现什么功能。 (2ï¼‰ä¸ºåµŒå…¥å¼æ“ä½œç³»ç»Ÿè®¿é—®ç¡¬ä»¶é©±åŠ¨ç¨‹åºæä¾›æ”¯æŒã€‚驱动程åºç»å¸¸éœ€è¦è®¿é—®ç¡¬ä»¶çš„å¯„å˜ å™¨ï¼Œå¦‚æžœæ•´ä¸ªç³»ç»Ÿä¸ºç»Ÿä¸€ç¼–å€ï¼Œé‚£ä¹ˆå¼€å‘人员å¯ç›´æŽ¥åœ¨é©±åŠ¨ç¨‹åºä¸ç”¨ C è¯è¨€çš„函数访问硬 件的寄å˜å™¨ã€‚但是,如果系统为å•独编å€ï¼Œé‚£ä¹ˆ C è¯è¨€å°†ä¸èƒ½ç›´æŽ¥è®¿é—®ç¡¬ä»¶çš„寄å˜å™¨ï¼Œåª 全书.indd 27 2024/3/16 14:51:07 28 Arm 嵌入å¼ç³»ç»ŸåŽŸç†åŠåº”用——STM32F103 微控制器架构ã€ç¼–ç¨‹ä¸Žå¼€å‘ æœ‰æ±‡ç¼–è¯è¨€ç¼–写的函数æ‰èƒ½å¯¹ç¡¬ä»¶çš„寄å˜å™¨è¿›è¡Œè®¿é—®ã€‚BSP å°±æ˜¯ä¸ºä¸Šå±‚çš„é©±åŠ¨ç¨‹åºæä¾›è®¿é—® 硬件的寄å˜å™¨çš„函数包。 (3)集æˆç¡¬ä»¶ç›¸å…³å’Œç¡¬ä»¶æ— å…³çš„åµŒå…¥å¼æ“作系统所需的软件模å—。BSP æ˜¯ç›¸å¯¹äºŽåµŒå…¥å¼ æ“作系统而言的,ä¸åŒçš„åµŒå…¥å¼æ“作系统对应于ä¸åŒå®šä¹‰å½¢å¼çš„ BSP。例如,VxWorks çš„ BSP å’Œ Linux çš„ BSP 相对于æŸä¸€ CPU æ¥è¯´å°½ç®¡å®žçŽ°çš„åŠŸèƒ½ä¸€æ ·ï¼Œä½†æ˜¯å†™æ³•å’ŒæŽ¥å£å®šä¹‰æ˜¯å®Œ å…¨ä¸åŒçš„,所以写 BSP ä¸€å®šè¦æŒ‰ç…§è¯¥ç³»ç»Ÿ BSP 的定义形å¼ï¼ˆBSP çš„ç¼–ç¨‹è¿‡ç¨‹å¤§å¤šæ•°æ˜¯åœ¨æŸ ä¸ªæˆåž‹çš„ BSP 模æ¿ä¸Šè¿›è¡Œä¿®æ”¹çš„ï¼‰ï¼Œè¿™æ ·æ‰èƒ½ä¸Žä¸Šå±‚åµŒå…¥å¼æ“ä½œç³»ç»Ÿä¿æŒæ£ç¡®çš„æŽ¥å£ï¼Œè‰¯å¥½ 地支æŒä¸Šå±‚åµŒå…¥å¼æ“作系统。 2ï¼‰é©±åŠ¨ç¨‹åº åªæœ‰å®‰è£…了驱动程åºï¼ŒåµŒå…¥å¼æ“作系统æ‰èƒ½æ“作硬件平å°ï¼Œé©±åŠ¨ç¨‹åºæŽ§åˆ¶åµŒå…¥å¼æ“作系 ç»Ÿå’Œç¡¬ä»¶ä¹‹é—´çš„äº¤äº’ã€‚é©±åŠ¨ç¨‹åºæä¾›ä¸€ç»„åµŒå…¥å¼æ“作系统å¯ç†è§£çš„æŠ½è±¡æŽ¥å£å‡½æ•°ï¼Œå¦‚è®¾å¤‡åˆ å§‹åŒ–ã€æ‰“å¼€ã€å…³é—ã€å‘é€ã€æŽ¥æ”¶ç‰ã€‚一般而言,驱动程åºä¸Žè®¾å¤‡çš„æŽ§åˆ¶èŠ¯ç‰‡æœ‰å…³ã€‚é©±åŠ¨ç¨‹åº è¿è¡Œåœ¨é«˜ç‰¹æƒçº§çš„处ç†å™¨çŽ¯å¢ƒä¸ï¼Œå¯ä»¥ç›´æŽ¥å¯¹ç¡¬ä»¶è¿›è¡Œæ“作,但æ£å› 如æ¤ï¼Œä»»ä½•一个设备驱 动程åºçš„错误都å¯èƒ½å¯¼è‡´åµŒå…¥å¼æ“ä½œç³»ç»Ÿçš„å´©æºƒï¼Œå› æ¤å¥½çš„驱动程åºéœ€è¦æœ‰å®Œå¤‡çš„é”™è¯¯å¤„ç† å‡½æ•°ã€‚ 2.OS 层 åµŒå…¥å¼æ“ä½œç³»ç»Ÿæ˜¯ä¸€ç§æ”¯æŒåµŒå…¥å¼ç³»ç»Ÿåº”用的æ“作系统软件,是嵌入å¼ç³»ç»Ÿçš„é‡è¦ç»„æˆ éƒ¨åˆ†ã€‚åµŒå…¥å¼æ“作系统通常包括与硬件相关的底层驱动软件ã€ç³»ç»Ÿå†…æ ¸ã€è®¾å¤‡é©±åŠ¨æŽ¥å£ã€é€š ä¿¡åè®®ã€å›¾å½¢ç•Œé¢ã€æ ‡å‡†åŒ–æµè§ˆå™¨ç‰ã€‚åµŒå…¥å¼æ“作系统具有通用æ“作系统的基本特点。例如, 能有效管ç†è¶Šæ¥è¶Šå¤æ‚的系统资æºï¼›èƒ½æŠŠç¡¬ä»¶è™šæ‹ŸåŒ–,将开å‘人员从ç¹å¿™çš„驱动程åºç§»æ¤å’Œ 维护ä¸è§£è„±å‡ºæ¥ï¼›èƒ½æä¾›åº“函数ã€é©±åŠ¨ç¨‹åºã€å·¥å…·é›†åŠåº”用程åºã€‚与通用æ“作系统相比较, åµŒå…¥å¼æ“作系统在系统实时高效性ã€ç¡¬ä»¶çš„相关ä¾èµ–性ã€è½¯ä»¶å›ºæ€åŒ–åŠåº”ç”¨çš„ä¸“ç”¨æ€§ç‰æ–¹é¢ 具有较为çªå‡ºçš„ç‰¹ç‚¹ã€‚åµŒå…¥å¼æ“作系统具有通用æ“作系统的基本特点,能够有效管ç†å¤æ‚çš„ 系统资æºï¼Œå¹¶ä¸”把硬件虚拟化。 ä¸€èˆ¬æƒ…å†µä¸‹ï¼ŒåµŒå…¥å¼æ“作系统å¯ä»¥åˆ†ä¸ºä¸¤ç±»ï¼Œä¸€ç±»æ˜¯é¢å‘控制ã€é€šä¿¡ç‰é¢†åŸŸçš„åµŒå…¥å¼ å®žæ—¶æ“作系统(RTOS), 如 VxWorksã€PSOSã€QNXã€Î¼COS-â…¡ã€RT-Threadã€FreeRTOS ç‰ï¼› å¦ä¸€ç±»æ˜¯é¢å‘消费电å产å“的嵌入å¼éžå®žæ—¶æ“作系统,如 Linuxã€Androidã€iOS ç‰ï¼Œè¿™ç±»äº§ å“åŒ…æ‹¬æ™ºèƒ½æ‰‹æœºã€æœºé¡¶ç›’ã€ç”µå书ç‰ã€‚ 3.应用层 1)硬件抽象层 硬件抽象层本质上就是一组对硬件进行æ“作的 API,是对硬件功能抽象的结果。硬件抽 象层通过 API ä¸ºåµŒå…¥å¼æ“ä½œç³»ç»Ÿå’Œåº”ç”¨ç¨‹åºæä¾›æœåŠ¡ã€‚ä½†æ˜¯ï¼Œåœ¨ Windows å’Œ Linux æ“作系 统下,硬件抽象层的定义是ä¸åŒçš„。 Windows æ“作系统下的硬件抽象层定义:ä½äºŽåµŒå…¥å¼æ“作系统的最底层,直接æ“作硬 件,隔离与硬件相关的信æ¯ï¼Œä¸ºä¸Šå±‚çš„åµŒå…¥å¼æ“ä½œç³»ç»Ÿå’Œé©±åŠ¨ç¨‹åºæä¾›ä¸€ä¸ªç»Ÿä¸€çš„æŽ¥å£ï¼Œ 全书.indd 28 2024/3/16 14:51:07 第 1 ç« â€ƒ 绪论 29 起到对硬件的抽象作用。HAL 简化了驱动程åºçš„ç¼–å†™ï¼Œä½¿åµŒå…¥å¼æ“作系统具有更好的å¯ç§» æ¤æ€§ã€‚ Linux æ“作系统下的硬件抽象层定义:ä½äºŽåµŒå…¥å¼æ“作系统和驱动程åºä¹‹ä¸Šï¼Œæ˜¯ä¸€ä¸ªè¿ 行在用户空间ä¸çš„æœåŠ¡ç¨‹åºã€‚ Linux 和所有 UNIX ä¸€æ ·ï¼Œä¹ æƒ¯ç”¨æ–‡ä»¶æŠ½è±¡è®¾å¤‡ï¼Œä»»ä½•è®¾å¤‡éƒ½æ˜¯ä¸€ä¸ªæ–‡ä»¶ï¼Œå¦‚ /dev/ mouse æ˜¯é¼ æ ‡çš„è®¾å¤‡æ–‡ä»¶åã€‚è¿™ç§æ–¹æ³•看起æ¥ä¸é”™ï¼Œæ¯ä¸ªè®¾å¤‡éƒ½æœ‰ç»Ÿä¸€çš„å½¢å¼ï¼Œä½†ä½¿ç”¨èµ·æ¥ å¹¶æ²¡æœ‰é‚£ä¹ˆå®¹æ˜“ï¼Œè®¾å¤‡æ–‡ä»¶åæ²¡æœ‰ä»€ä¹ˆè§„范,从一个简å•çš„æ–‡ä»¶åæ— 法得知它是什么设备〠具有什么特性。乱七八糟的设备文件,让设备的管ç†å’Œåº”用程åºçš„å¼€å‘å˜å¾—很麻烦,所以有 å¿…è¦æä¾›ä¸€ä¸ªç¡¬ä»¶æŠ½è±¡å±‚ä¸ºä¸Šå±‚åº”ç”¨ç¨‹åºæä¾›ç»Ÿä¸€çš„æŽ¥å£ï¼ŒLinux çš„ç¡¬ä»¶æŠ½è±¡å±‚å°±è¿™æ ·åº”è¿ è€Œç”Ÿäº†ã€‚ 2ï¼‰åº”ç”¨ç¨‹åº åº”ç”¨ç¨‹åºæ˜¯ä¸ºå®ŒæˆæŸé¡¹æˆ–æŸå‡ 项特定任务而被开å‘è¿è¡ŒäºŽåµŒå…¥å¼æ“作系统之上的程åºï¼Œ 如文件æ“作ã€å›¾å½¢æ“作ç‰ã€‚åœ¨åµŒå…¥å¼æ“作系统上编写应用程åºä¸€èˆ¬éœ€è¦ä¸€äº›åº”ç”¨ç¨‹åºæŽ¥å£ã€‚ åº”ç”¨ç¨‹åºæŽ¥å£ï¼ˆAPI)åˆç§°ä¸ºåº”用编程接å£ï¼Œæ˜¯è½¯ä»¶ç³»ç»Ÿä¸åŒç»„éƒ¨åˆ†è¡”æŽ¥çš„çº¦å®šã€‚åº”ç”¨ç¨‹åº æŽ¥å£çš„设计å分é‡è¦ï¼Œè‰¯å¥½çš„æŽ¥å£è®¾è®¡å¯ä»¥é™ä½Žç³»ç»Ÿå„部分的相互ä¾èµ–性,æé«˜ç»„æˆå•元的 å†…èšæ€§ï¼Œé™ä½Žç»„æˆå•元间的耦åˆç¨‹åº¦ï¼Œä»Žè€Œæé«˜ç³»ç»Ÿçš„维护性和扩展性。 æ ¹æ®åµŒå…¥å¼ç³»ç»Ÿåº”用需求,应用程åºé€šè¿‡è°ƒç”¨åµŒå…¥å¼æ“作系统的 API 函数æ“作系统硬件, 从而实现应用需求。一般情况下,嵌入å¼åº”用程åºå»ºç«‹åœ¨ä¸»ä»»åŠ¡åŸºç¡€ä¹‹ä¸Šï¼Œå¯ä»¥æ˜¯å¤šä»»åŠ¡çš„ï¼Œ 微课视频 é€šè¿‡åµŒå…¥å¼æ“作系统管ç†å·¥å…·ï¼ˆä¿¡å·é‡ã€é˜Ÿåˆ—ç‰ï¼‰å®žçŽ°ä»»åŠ¡é—´é€šä¿¡å’Œç®¡ç†ï¼Œè¿›è€Œå®žçŽ°åº”ç”¨éœ€ è¦çš„特定功能。 1.8 嵌入å¼ç³»ç»Ÿçš„设计方法 1.8.1 嵌入å¼ç³»ç»Ÿçš„æ€»ä½“结构 在ä¸åŒçš„应用场åˆï¼ŒåµŒå…¥å¼ç³»ç»Ÿå‘ˆçŽ°å‡ºçš„å¤–è§‚å’Œå½¢å¼å„ä¸ç›¸åŒï¼Œä½†é€šè¿‡å¯¹å…¶å†…部结构进 行分æžå¯ä»¥å‘现,一个嵌入å¼ç³»ç»Ÿä¸€èˆ¬éƒ½ç”±åµŒå…¥å¼å¾®å¤„ç†å™¨ç³»ç»Ÿå’Œè¢«æŽ§å¯¹è±¡ç»„æˆã€‚å…¶ä¸ï¼ŒåµŒ å…¥å¼å¾®å¤„ç†å™¨ç³»ç»Ÿæ˜¯æ•´ä¸ªç³»ç»Ÿçš„æ ¸å¿ƒï¼Œç”±ç¡¬ä»¶å±‚ã€ä¸é—´å±‚ã€è½¯ä»¶å±‚和功能层组æˆï¼›è¢«æŽ§å¯¹è±¡ å¯ä»¥æ˜¯å„ç§ä¼ 感器ã€ç”µæœºã€è¾“å…¥ / 输出设备ç‰ï¼Œå¯ä»¥æŽ¥æ”¶åµŒå…¥å¼å¾®å¤„ç†å™¨ç³»ç»Ÿå‘出的控制命令, 执行所规定的æ“作或任务。下é¢å¯¹åµŒå…¥å¼ç³»ç»Ÿçš„主è¦ç»„æˆè¿›è¡Œç®€å•æè¿°ã€‚ 1.硬件层 硬件层由嵌入å¼å¾®å¤„ç†å™¨ã€å¤–围电路和外部设备组æˆã€‚在一个嵌入å¼å¾®å¤„ç†å™¨çš„基础上 å¢žåŠ ç”µæºç”µè·¯ã€å¤ä½ç”µè·¯ã€è°ƒè¯•接å£å’Œå˜å‚¨å™¨ç”µè·¯ï¼Œå°±æž„æˆä¸€ä¸ªåµŒå…¥å¼æ ¸å¿ƒæŽ§åˆ¶æ¨¡å—。其ä¸ï¼Œ æ“作系统和应用程åºéƒ½å¯ä»¥å›ºåŒ–在 ROM 或 Flash ä¸ï¼Œä¸ºæ–¹ä¾¿ä½¿ç”¨ï¼Œæœ‰çš„æ¨¡å—在æ¤åŸºç¡€ä¸Šå¢ž åŠ äº†æ¶²æ™¶æ˜¾ç¤ºï¼ˆLiquid Crystal Display,LCD)ã€é”®ç›˜ã€USB 接å£ï¼Œä»¥åŠå…¶ä»–一些功能的扩 全书.indd 29 2024/3/16 14:51:07 30 Arm 嵌入å¼ç³»ç»ŸåŽŸç†åŠåº”用——STM32F103 微控制器架构ã€ç¼–ç¨‹ä¸Žå¼€å‘ å±•ç”µè·¯å’ŒæŽ¥å£ã€‚ 嵌入å¼ç³»ç»Ÿçš„硬件层是以嵌入å¼å¤„ç†å™¨ä¸ºæ ¸å¿ƒçš„,最åˆçš„嵌入å¼å¤„ç†å™¨éƒ½æ˜¯ä¸ºé€šç”¨ç›®çš„ è€Œè®¾è®¡çš„ã€‚åŽæ¥ï¼Œéšç€å¾®ç”µå技术的å‘展,出现了 ASIC,它是一ç§ä¸ºå…·ä½“任务而特殊设计 的专用集æˆç”µè·¯ã€‚由于 ASIC 在设计过程ä¸è¿›è¡Œäº†ä¸“é—¨ä¼˜åŒ–ï¼Œå…¶æ€§èƒ½ã€æ€§ä»·æ¯”都éžå¸¸é«˜ï¼Œé‡‡ 用 ASIC å¯ä»¥é™ä½Žç³»ç»Ÿè½¯ç¡¬ä»¶è®¾è®¡çš„夿‚åº¦å’Œç³»ç»Ÿæˆæœ¬ã€‚有的嵌入å¼å¾®å¤„ç†å™¨åˆ©ç”¨ ASIC 实 现,但 ASIC çš„å‰æœŸè®¾è®¡è´¹ç”¨éžå¸¸é«˜ï¼Œè€Œä¸”一旦设计完æˆï¼Œå°±æ— 法å‡çº§å’Œæ‰©å±•ï¼Œä¸€èˆ¬åªæœ‰åœ¨ 一些产é‡éžå¸¸å¤§çš„产å“è®¾è®¡ä¸æ‰è€ƒè™‘使用 ASIC。 2.ä¸é—´å±‚ 硬件层与软件层之间为ä¸é—´å±‚,也称为 BSP(æ¿çº§æ”¯æŒåŒ…),将系统软件与底层硬件部 分隔离,使系统的底层设备驱动程åºä¸Žç¡¬ä»¶æ— 关,一般应具有相关硬件的åˆå§‹åŒ–ã€æ•°æ®çš„输 å…¥ / 输出æ“作和硬件设备的é…ç½®ç‰åŠŸèƒ½ã€‚BSP 是主æ¿ç¡¬ä»¶çŽ¯å¢ƒå’Œæ“作系统的ä¸é—´æŽ¥å£ï¼Œæ˜¯è½¯ ä»¶å¹³å°ä¸å…·æœ‰ç¡¬ä»¶ä¾èµ–性的那一部分,主è¦ç›®çš„æ˜¯æ”¯æŒæ“作系统,使之能够更好地è¿è¡ŒäºŽç¡¬ 件主æ¿ä¸Šã€‚ 一般æ¥è¯´ï¼Œçº¯ç²¹çš„ BSP 所包å«çš„内容是与系统有关的驱动程åºï¼Œå¦‚网络驱动程åºå’Œç³» 统ä¸çš„网络åè®®ã€ä¸²å£é©±åŠ¨ç¨‹åºå’Œç³»ç»Ÿçš„下载调试ç‰ã€‚离开这些驱动程åºï¼Œç³»ç»Ÿå°±ä¸èƒ½æ£å¸¸ 工作。 3.软件层 è½¯ä»¶å±‚ä¸»è¦æ˜¯æ“作系统,有的还包括文件系统ã€å›¾å½¢ç”¨æˆ·æŽ¥å£å’Œç½‘络系统ç‰ã€‚æ“作系统 是嵌入å¼åº”用软件的基础和开å‘å¹³å°ï¼Œå®žé™…上是一段程åºï¼Œç³»ç»Ÿå¤ä½åŽé¦–先执行,相当于用 户的主程åºï¼Œç”¨æˆ·çš„其他应用程åºéƒ½å»ºç«‹åœ¨æ“作系统之上。æ“ä½œç³»ç»Ÿæ˜¯ä¸€ä¸ªæ ‡å‡†çš„å†…æ ¸ï¼Œå°† 䏿–ã€I/Oã€å®šæ—¶å™¨ç‰èµ„æºéƒ½å°è£…èµ·æ¥ï¼Œä»¥æ–¹ä¾¿ç”¨æˆ·ä½¿ç”¨ã€‚ æ“作系统的引入大大完善了嵌入å¼ç³»ç»Ÿçš„åŠŸèƒ½ï¼Œæ–¹ä¾¿äº†åº”ç”¨è½¯ä»¶çš„è®¾è®¡ï¼Œä½†åŒæ—¶ä¹Ÿå 用 了å®è´µçš„嵌入å¼ç³»ç»Ÿèµ„æºã€‚一般在大型的或需è¦å¤šä»»åŠ¡çš„åº”ç”¨åœºåˆæ‰è€ƒè™‘ä½¿ç”¨åµŒå…¥å¼æ“作 系统。 4.功能层 功能层由基于æ“作系统开å‘的应用程åºç»„æˆï¼Œç”¨æ¥å®Œæˆå¯¹è¢«æŽ§å¯¹è±¡çš„æŽ§åˆ¶åŠŸèƒ½ã€‚ä¸ºäº†æ–¹ 便用户æ“作,往往需è¦å…·æœ‰å‹å¥½çš„人机界é¢ã€‚ å¯¹äºŽä¸€äº›å¤æ‚çš„ç³»ç»Ÿï¼Œåœ¨ç³»ç»Ÿè®¾è®¡çš„åˆæœŸé˜¶æ®µå°±è¦å¯¹ç³»ç»Ÿçš„需求进行分æžï¼Œç¡®å®šç³»ç»ŸåŠŸ 能。然åŽå°†ç³»ç»Ÿçš„åŠŸèƒ½æ˜ å°„åˆ°æ•´ä¸ªç³»ç»Ÿçš„ç¡¬ä»¶ã€è½¯ä»¶å’Œæ‰§è¡Œè£…置的设计过程ä¸ï¼Œè¿™ä¸ªè¿‡ç¨‹ç§° 为系统的功能实现。 1.8.2 嵌入å¼ç³»ç»Ÿè®¾è®¡æµç¨‹ 嵌入å¼ç³»ç»Ÿçš„åº”ç”¨å¼€å‘æ˜¯æŒ‰ç…§ä¸€å®šçš„æµç¨‹è¿›è¡Œçš„ï¼Œä¸€èˆ¬ç”± 5 个阶段构æˆï¼šéœ€æ±‚分æžã€ä½“ 系结构设计ã€è½¯ / 硬件设计ã€ç³»ç»Ÿé›†æˆå’Œä»£ç 固化,å„ä¸ªé˜¶æ®µä¹‹é—´å¾€å¾€è¦æ±‚䏿–地é‡å¤å’Œä¿® 改直至最终完æˆè®¾è®¡ç›®æ ‡ã€‚ 全书.indd 30 2024/3/16 14:51:07 第 1 ç« â€ƒ 绪论 31 嵌入å¼ç³»ç»Ÿå¼€å‘å·²ç»é€æ¥è§„范化,在éµå¾ªä¸€èˆ¬å·¥ç¨‹å¼€å‘æµç¨‹çš„基础上,必须将硬件ã€è½¯ä»¶ã€ 人力ç‰å„æ–¹é¢èµ„æºç»¼åˆèµ·æ¥ã€‚嵌入å¼ç³»ç»Ÿå‘都是软件ã€ç¡¬ä»¶çš„结åˆä½“å’ŒååŒå¼€å‘过程,这是 其最大的特点。嵌入å¼ç³»ç»Ÿè®¾è®¡æµç¨‹å¦‚图 1-5 所示。 图 1-5 嵌入å¼ç³»ç»Ÿè®¾è®¡æµç¨‹ 全书.indd 31 2024/3/16 14:51:07 32 Arm 嵌入å¼ç³»ç»ŸåŽŸç†åŠåº”用——STM32F103 微控制器架构ã€ç¼–ç¨‹ä¸Žå¼€å‘ 1ï¼Žéœ€æ±‚åˆ†æž åµŒå…¥å¼ç³»ç»Ÿçš„特点决定了系统在开å‘åˆæœŸçš„需求分æžä¸å°±è¦æžæ¸…楚需è¦å®Œæˆçš„任务。在 æ¤é˜¶æ®µéœ€è¦åˆ†æžç³»ç»Ÿçš„需求,一般分为功能需求和éžåŠŸèƒ½éœ€æ±‚ä¸¤æ–¹é¢ã€‚功能需求是系统的基 本功能,如输入 / 输出信å·ã€æ“作方å¼ç‰ï¼›éžåŠŸèƒ½éœ€æ±‚åŒ…æ‹¬ç³»ç»Ÿæ€§èƒ½ã€æˆæœ¬ã€åŠŸè€—ã€ä½“积〠é‡é‡ç‰å› ç´ ã€‚ æ ¹æ®ç³»ç»Ÿçš„éœ€æ±‚ï¼Œç¡®å®šè®¾è®¡ä»»åŠ¡å’Œè®¾è®¡ç›®æ ‡ï¼Œå¹¶ç¼–å†™è®¾è®¡è§„æ ¼è¯´æ˜Žä¹¦ï¼Œä½œä¸ºæ£å¼æŒ‡å¯¼è®¾ è®¡å’ŒéªŒæ”¶çš„æ ‡å‡†ã€‚ 2.体系结构设计 需求分æžå®ŒæˆåŽï¼Œæ ¹æ®è®¾è®¡è§„æ ¼è¯´æ˜Žä¹¦è¿›è¡Œä½“ç³»ç»“æž„çš„è®¾è®¡ï¼ŒåŒ…æ‹¬å¯¹ç¡¬ä»¶ã€è½¯ä»¶çš„功能 划分,以åŠç³»ç»Ÿçš„硬件和æ“作系统的选型ç‰ã€‚ 3.软 / 硬件设计 基于体系结构对系统的软件ã€ç¡¬ä»¶è¿›è¡Œè¯¦ç»†è®¾è®¡ã€‚为了缩çŸäº§å“å¼€å‘周期,设计往往是 并行的。对于æ¯ä¸ªå¤„ç†å™¨ï¼Œç¡¬ä»¶å¹³å°éƒ½æ˜¯é€šç”¨çš„ã€å›ºå®šçš„ã€æˆç†Ÿçš„,在开å‘过程ä¸å‡å°‘了硬 ä»¶ç³»ç»Ÿé”™è¯¯çš„å¼•å…¥æœºä¼šã€‚åŒæ—¶ï¼ŒåµŒå…¥å¼æ“作系统å±è”½äº†åº•å±‚ç¡¬ä»¶çš„å¾ˆå¤šå¤æ‚ä¿¡æ¯ï¼Œå¼€å‘者利 用æ“作系统æä¾›çš„ API 函数å¯ä»¥å®Œæˆå¤§éƒ¨åˆ†åŠŸèƒ½ã€‚å¯¹äºŽä¸€ä¸ªå®Œæ•´çš„åµŒå…¥å¼åº”用系统的开å‘, 应用系统的程åºè®¾è®¡æ˜¯åµŒå…¥å¼ç³»ç»Ÿè®¾è®¡ä¸€ä¸ªéžå¸¸é‡è¦çš„æ–¹é¢ï¼Œç¨‹åºçš„è´¨é‡ç›´æŽ¥å½±å“整个系统 功能的实现,好的程åºè®¾è®¡å¯ä»¥å…‹æœç³»ç»Ÿç¡¬ä»¶è®¾è®¡çš„ä¸è¶³ï¼Œæé«˜åº”用系统的性能;å之,会 ä½¿æ•´ä¸ªåº”ç”¨ç³»ç»Ÿæ— æ³•æ£å¸¸å·¥ä½œã€‚ ä¸åŒäºŽåŸºäºŽ PC å¹³å°çš„程åºå¼€å‘,嵌入å¼ç³»ç»Ÿçš„程åºè®¾è®¡å…·æœ‰å…¶è‡ªèº«çš„特点,程åºè®¾è®¡ çš„æ–¹æ³•ä¹Ÿä¼šå› ç³»ç»Ÿæˆ–äººè€Œå¼‚ã€‚ 4.系统集æˆå’Œä»£ç 固化 把系统ä¸çš„软件ã€ç¡¬ä»¶é›†æˆåœ¨ä¸€èµ·ï¼Œè¿›è¡Œè°ƒè¯•,å‘现并改进å•元设计过程ä¸çš„错误。 嵌入å¼è½¯ä»¶å¼€å‘完æˆä»¥åŽï¼Œå¤§å¤šæ•°åœ¨ç›®æ ‡çŽ¯å¢ƒçš„éžæ˜“失性å˜å‚¨å™¨ä¸è¿è¡Œï¼Œç¨‹åºå†™å…¥ Flash 固化,ä¿è¯æ¯æ¬¡è¿è¡ŒåŽä¸‹ä¸€æ¬¡è¿è¡Œæ— 误,所以嵌入å¼è½¯ä»¶å¼€å‘与普通软件开å‘相比, å¢žåŠ äº†å›ºåŒ–é˜¶æ®µã€‚åµŒå…¥å¼åº”用软件调试完æˆä»¥åŽï¼Œç¼–译器è¦å¯¹æºä»£ç 釿–°ç¼–译一次,以产生 å›ºåŒ–åˆ°çŽ¯å¢ƒçš„å¯æ‰§è¡Œä»£ç ,å†çƒ§å†™åˆ° Flashã€‚å¯æ‰§è¡Œä»£ç çƒ§å†™åˆ°ç›®æ ‡çŽ¯å¢ƒä¸å›ºåŒ–åŽï¼Œæ•´ä¸ªåµŒ å…¥å¼ç³»ç»Ÿçš„å¼€å‘就基本完æˆäº†ï¼Œå‰©ä¸‹çš„就是对产å“的维护和更新了。 1.8.3 嵌入å¼ç³»ç»Ÿçš„软/硬件ååŒè®¾è®¡æŠ€æœ¯ ä¼ ç»Ÿçš„åµŒå…¥å¼ç³»ç»Ÿè®¾è®¡æ–¹æ³•,硬件和软件分为两个独立的部分,由硬件工程师和软件工 程师分别按照拟定的设计æµç¨‹åˆ†åˆ«å®Œæˆã€‚è¿™ç§è®¾è®¡æ–¹æ³•åªèƒ½æ”¹å–„硬件ã€è½¯ä»¶å„自的性能,而 有é™çš„设计空间ä¸å¯èƒ½å¯¹ç³»ç»Ÿè¿›è¡Œè¾ƒå¥½çš„æ€§èƒ½ç»¼åˆä¼˜åŒ–。从ç†è®ºä¸Šæ¥è¯´ï¼Œæ¯ä¸ªåº”ç”¨ç³»ç»Ÿéƒ½å˜ åœ¨ä¸€ä¸ªç¡¬ä»¶ã€è½¯ä»¶åŠŸèƒ½çš„æœ€ä½³ç»„åˆï¼Œå¦‚何从应用系统需求出å‘ï¼Œä¾æ®ä¸€å®šçš„æŒ‡å¯¼åŽŸåˆ™å’Œåˆ† é…算法对软/硬件功能进行分æžåŠåˆç†çš„划分,从而使系统的整体性能ã€è¿è¡Œæ—¶é—´ã€èƒ½é‡è€— æŸã€å˜å‚¨èƒ½é‡è¾¾åˆ°æœ€ä½³çжæ€ï¼Œå·²æˆä¸ºè½¯ / 硬件ååŒè®¾è®¡çš„é‡è¦ç ”究内容之一。 全书.indd 32 2024/3/16 14:51:07 第 1 ç« â€ƒ 绪论 33 系统ååŒè®¾è®¡ä¸Žä¼ 统设计相比有以下两个显著的区别。 (1)æè¿°ç¡¬ä»¶å’Œè½¯ä»¶ä½¿ç”¨ç»Ÿä¸€çš„表示形å¼ã€‚ (2)软 / 硬件划分å¯ä»¥é€‰æ‹©å¤šç§æ–¹æ¡ˆï¼Œç›´åˆ°æ»¡è¶³è¦æ±‚。 显然,这ç§è®¾è®¡æ–¹æ³•å¯¹äºŽå…·ä½“çš„åº”ç”¨ç³»ç»Ÿè€Œè¨€ï¼Œå®¹æ˜“èŽ·å¾—æ»¡è¶³ç»¼åˆæ€§èƒ½æŒ‡æ ‡çš„æœ€ä½³è§£å†³ æ–¹æ¡ˆã€‚ä¼ ç»Ÿæ–¹æ³•è™½ç„¶ä¹Ÿå¯æ”¹è¿›è½¯ / ç¡¬ä»¶æ€§èƒ½ï¼Œä½†ç”±äºŽè¿™ç§æ”¹è¿›æ˜¯å„自独立进行的,ä¸ä¸€å®šä½¿ ç³»ç»Ÿç»¼åˆæ€§èƒ½è¾¾åˆ°æœ€ä½³ã€‚ ä¼ ç»Ÿçš„åµŒå…¥å¼ç³»ç»Ÿå¼€å‘采用软件开å‘与硬件开å‘分离的方å¼ï¼Œå…¶è¿‡ç¨‹å¯æè¿°å¦‚下。 (1)需求分æžã€‚ (2)软 / 硬件分别设计ã€å¼€å‘ã€è°ƒè¯•ã€æµ‹è¯•。 (3)系统集æˆã€‚ (4ï¼‰é›†æˆæµ‹è¯•。 (5)若系统æ£ç¡®ï¼Œåˆ™ç»“æŸï¼Œå¦åˆ™ç»§ç»è¿›è¡Œã€‚ (6)若出现错误,需è¦å¯¹è½¯ / 硬件分别验è¯å’Œä¿®æ”¹ï¼›è¿”回æ¥éª¤ï¼ˆ3),å†ç»§ç»è¿›è¡Œé›†æˆæµ‹è¯•。 虽然在系统设计的åˆå§‹é˜¶æ®µè€ƒè™‘了软 / 硬件的接å£é—®é¢˜ï¼Œä½†ç”±äºŽè½¯ä»¶ä¸Žç¡¬ä»¶åˆ†åˆ«å¼€å‘, å„自部分的修改和缺陷很容易导致系统集æˆå‡ºçŽ°é”™è¯¯ã€‚ç”±äºŽè®¾è®¡æ–¹æ³•çš„é™åˆ¶ï¼Œè¿™äº›é”™è¯¯ä¸ä½† 难以定ä½ï¼Œè€Œä¸”æ›´é‡è¦çš„æ˜¯å¯¹å®ƒä»¬çš„ä¿®æ”¹å¾€å¾€ä¼šæ¶‰åŠæ•´ä¸ªè½¯ä»¶ç»“构或硬件é…置的改动。显然, 这是ç¾é𾿀§çš„。 为é¿å…ä¸Šè¿°é—®é¢˜ï¼Œä¸€ç§æ–°çš„开呿–¹æ³•应è¿è€Œç”Ÿâ€”软 / 硬件ååŒè®¾è®¡æ–¹æ³•。首先,应用 ç‹¬ç«‹äºŽä»»ä½•ç¡¬ä»¶å’Œè½¯ä»¶çš„åŠŸèƒ½æ€§è§„æ ¼æ–¹æ³•å¯¹ç³»ç»Ÿè¿›è¡Œæè¿°ï¼Œé‡‡ç”¨çš„æ–¹æ³•åŒ…æ‹¬æœ‰é™æ€è‡ªåŠ¨æœº (Finite-State Machine,FSM)ã€ç»Ÿä¸€åŒ–çš„è§„æ ¼è¯è¨€ï¼ˆCSPã€VHDL)或其他基于图形的表示工具, 其作用是对软 / 硬件统一表示,便于功能的划分和综åˆã€‚ç„¶åŽï¼Œåœ¨æ¤åŸºç¡€ä¸Šå¯¹è½¯ / 硬件进行 划分,å³å¯¹è½¯ / 硬件的功能模å—进行分é…。但是,这ç§åŠŸèƒ½åˆ†é…䏿˜¯éšæ„的,而是从系统功 èƒ½è¦æ±‚å’Œé™åˆ¶æ¡ä»¶å‡ºå‘ï¼Œä¾æ®ç®—法进行的。完æˆè½¯ / 硬件功能划分之åŽï¼Œéœ€è¦å¯¹åˆ’分结果进 è¡Œè¯„ä¼°ã€‚ä¸€ç§æ–¹æ³•是性能评估,å¦ä¸€ç§æ–¹æ³•是对硬件ã€è½¯ä»¶ç»¼åˆä¹‹åŽçš„ç³»ç»Ÿä¾æ®æŒ‡ä»¤çº§è¯„ä»· 傿•°è¿›è¡Œè¯„ä¼°ã€‚å¦‚æžœè¯„ä¼°ç»“æžœä¸æ»¡è¶³è¦æ±‚,说明划分方案选择ä¸åˆç†ï¼Œéœ€é‡æ–°åˆ’分软 / 硬件 模å—,以上过程é‡å¤ï¼Œç›´è‡³ç³»ç»ŸèŽ·å¾—ä¸€ä¸ªæ»¡æ„的软 / 硬件实现为æ¢ã€‚ 软 / 硬件ååŒè®¾è®¡è¿‡ç¨‹å¯æè¿°å¦‚下。 (1)需求分æžã€‚ (2)软 / 硬件ååŒè®¾è®¡ã€‚ (3)软 / 硬件实现。 (4)软 / 硬件ååŒæµ‹è¯•和验è¯ã€‚ è¿™ç§æ–¹æ³•的特点是在ååŒè®¾è®¡ã€ååŒæµ‹è¯•å’ŒååŒéªŒè¯æ–¹é¢ï¼Œå……分考虑了软 / 硬件的关系, 并在设计的æ¯ä¸ªå±‚次上给予测试验è¯ï¼Œå°½æ—©å‘现和解决问题,é¿å…ç¾é𾿀§é”™è¯¯çš„出现。 全书.indd 33 2024/3/16 14:51:07