如何采用51单片机开发操作体系

发布时间:2023-07-19  

1,操作体系软件的代码不能太长

由于51系列单片机的体系硬件资本相对缺乏,假如操作体系的代码比运用程序的代码还大,乃至使得用户的运用程序要考虑给操作体系让出资本,这样的操作体系即便功用再完善,也不实用。如今盛行的嵌入式操作体系就不能运用于51系列单片机,原因是代码太大。开发一个5000行的基于裸机的运用程序也即是占用 7~8KB ROM空间,一个操作体系用掉了几十KB,占空间不算,实时性的优势恐怕也没了(执行这么多的指令要时间)。所以,μCOS的作者也不支持将他的代码移植到51系列单片机上,这也就不奇怪了。


2,操作体系不能占用太多的片内RAM空间

51系列单片机只要128个或许256个字节的片内RAM空间,略微不留意就用完了。假如操作体系把片内的RAM运用得所剩无几,那用户的运用程序用啥? 假如说用户的程序能够把变量界说在片外RAM中的话,那么体系的硬件仓库放在哪? 尽人皆知,51系列单片机的硬件仓库不能放在片外,所以要在51系列单片机上开发操作体系的话就要少用它的片内RAM。可是不用片内RAM是办不到的,由于操作体系也要传递参数,也要运用仓库。C51单片机的C函数传递参数是经过寄存器和存储器的,不能经过仓库。可是能够经过一些措施使得操作体系代码少用片内RAM。


3,解决好函数的重入疑问

开发实时占先式的操作体系,可重入函数是非用不可的。可重入函数能够被一个以上的使命调用,而不用忧虑数据被损坏。可重入函数任何时候都能够被间断,一段时间后又能够运转,而运用数据不会丢失。使得函数具有可重入性有必要使得函数能够满意下列三个条件之一:

① 不运用共享资本;

② 在运用共享资本时关间断,运用完毕后再开间断;

③ 在运用共享资本时请求信号量,运用完后开释信号量。

这些条件在标准C中编程很简单完结,可是在Keil C51中就比较费事。由于标准C是把局部变量分配到用户仓库中(动态分配),而Keil C51将局部变量分配到寄存器或内存固定地址(静态分配),并经过变量覆盖分析的办法,使多个函数的局部变量运用一样的内存地址以减少内存占用。在 Keil C51中,假如局部变量分配在寄存器中还好些,假如局部变量分配在内存中就比较费事。


4,仓库的分配疑问

占先式操作体系的主要使命即是进行使命的调度,经过对使命的实时调度来完结体系的功用。使命调度过程中,不可避免的发作使命对体系资本的抢占疑问,由于体系中 CPU只要一个,而每个使命都以为自个是CPU的绝对占用者,每一个使命都是一个死循环。使命间进行切换的根据即是各自的优先级,一个高优先级的使命能够经过使命调度函数或许间断退出函数等来间断正在运转的使命。被间断的使命只要自个的优先级在当时安排妥当使命表中最高时,才能从被间断处继续运转。这就需求为每个使命分配使命仓库,来保留使命的环境变量。由于每个使命在不一样时间被间断时需求保留的环境变量数目不一样,所以使命仓库空间的分配疑问也是一门学识。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>