会员中心     
首页 > 资料专栏 > 经营 > 运营治理 > 其他资料 > 深入剖析51单片机软件函数的可重入性问题4页

深入剖析51单片机软件函数的可重入性问题4页

新技术进***
V 实名认证
内容提供者
热门搜索
单片机 函数 软件
资料大小:384KB(压缩后)
文档格式:WinRAR(4页)
资料语言:中文版/英文版/日文版
解压密码:m448
更新时间:2025/8/9(发布于天津)

类型:积分资料
积分:10分 (VIP无积分限制)
推荐:免费申请

   点此下载 ==>> 点击下载文档


“深入剖析51单片机软件函数的可重入性问题4页”第1页图片 图片预览结束,如需查阅完整内容,请下载文档!
文本描述
ME 专题论述
TOPICAL DISCUSS
深入剖析51单片机软件函数的可重入性问题
朱剑辉、刘胜阳1,郑瀕\洪小骏\苏思友^
1.上?蜿天电T-技术鑷究所.上雋201108,2.上?航天技本研究R)
撗要:介炤了 VTS-51单片机的内存分布、C51变量存镣方式和**参教传递方式.由此引友了对C51 *教可重入姓问超 的思考和分析,与其他处? S (:?言《浲S不用的是,除了在*教体中4式访问全局资*会破钵*教的可f入性之外, C51 *教参教传递和局郜变量存祛分it空间时,吁能存在ft式的全局资*访问冲突,用样会孕致*教不T重入,通过对备 钟情况下的全馬资*访问冲突分析.提出了相庭的解决方案以遵免不可重入函教被多任务垌用引起软件运行异當.
关键调:MCS-Shi*)存分寧,变*存嬙 参教传遒I访网冲突 中图分类号:TP31文《标识码:A
In-depth Analysis of 51 Microcontroller Software Function Reentrant Problem
/hu Jianhui1 ?Kiv Miengyang1 */heng Yinn1 ?llong Xia^un1 ?Sv Siyoa'
(1. Shanghai Aerospace Electronic Technology In9titutc*Shanghai 2〇ll〇8?Ohinas2. Shanghai Academy of Spaceflight Technology)
Abstracts In the papertthe memory distribution of MCS*51 microcontroller*the storage mode of Col variable and the transfer mode of function parameter arc introduced, which causes the thinking and analysis of the reentrant problem of C51 fuiMrtiovL Unlike other processor C compilers*in addition to the fact that explicit acces? to global resources in the body of a function breaks function rcntrant*C5t function parameter parsing and local variable store allocation may also result in implicit global reMurcc accc,9 conflicts ihat cause function non*rcr entrant. Ete^cd on the analy^i^ of global rc5〇urcc accc?^ conflicts in various ca5C5*thc corrc^poiKlinR mlution^ arc put forward to Avoid software running exceptions cauMrd by non-reentrant function bcin^ called by multi-task.
Keywords: MCS-SInncmory diMributiomstorage modetparameter pa^singiacccM conflict
o引言
MCS-51系列单片机S—种8位MCU,因1J5成度
A.可*性A、结构?单和易于使用等特性?被广泛应用于 S内外各类电子产品和T*测控領域MCS-51系列 单片机在实际S用中通常采用C51语言实现应用软件编 ff. C51语言是继承C语吉发展而来的,专f】应用于 MCS-51系约单片机软件编程受到各类缟译器的支 持(如Keil.Wave等它既具有C语吉的灵活性,足一种 结构化的ff序设计语言.乂支持对其内邾竒存器的直接访 问.运行效韦丨?分接近JL编语言.同时,它还提供了丰富的 库甬数和完备的数据类?,编译器可对单片机内》寄存器 和数据存储器进行自动分K管理,具有较好的移植性和扩 R性.因而被广泛应用于MCS - 51系列单片机软件 编涅〇?,
函数可S人性问题足?级语吉编S中的通用问S,即 在甬》体运行的任何地方被中断(或任务切換当中断返 网时,甬数SS仍然饞够正碥无误地继续执,若甬数
ft参数传递.变fit存储或函》体编e中使用了全局资 則在S数运行过B中被中断后.该全局资源可能被改写. 导致中断返网后函数播续执行异常,那么该函数即不可重 人函数,必须要采取相?的措掩对共皁资源进行保护,或 苒避免对全局资源的操作,
由于51单片机软件在编译完毕时.包括函数参数和 局部变址在内的所有变ft地址均间定.而不采用堆栈方式 传递和存储,容易引起隐式的兩数可虽入性问因此, 本文W述了 C51 ?数參数传递和局部变址存储分K方 式.对所有可能存在全局资《访问冲突的环节进行分析. 并提出了相应的解决方案,
1 MCS-51单片机内存分配 1.1单片机内存布局
MCS-51系列单片机括3个基本S,即8〇31、8〇51 和8751.在此《?上乂逐漸演化出52系列增强S(8032/ 8052/8752)和采用CMOS 丁艺的低功耗型 ?)C31/ 80C51/87C51)等类塱
4 Microcontrollers & Embedded Systems 2023 年第 8 期
www, mesnet. com, cn