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

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的绝对占用者,每一个使命都是一个死循环。使命间进行切换的根据即是各自的优先级,一个高优先级的使命能够经过使命调度函数或许间断退出函数等来间断正在运转的使命。被间断的使命只要自个的优先级在当时安排妥当使命表中最高时,才能从被间断处继续运转。这就需求为每个使命分配使命仓库,来保留使命的环境变量。由于每个使命在不一样时间被间断时需求保留的环境变量数目不一样,所以使命仓库空间的分配疑问也是一门学识。

日本开发出提高有机发光二极管发光效率技术
安立公司确立TD-LTE GCF协议一致性测试系统领先地位
苹果手机:10款iphone8原型机测试中 屏幕或有“惊喜”
电脑并行接口定义图
预计今年,全球向智能手机销量或将达15亿部
如何采用51单片机开发操作体系
新荣耀将走向中高端市场
用于CAN总线的汽车级瞬态电压抑制器ESDCAN03-2BM3Y
滤波电容在嵌入式应用中的选择
区块链自媒体被戴“高薪”帽,月薪3万、6万难实现
小功率、小音箱、小空间获得饱满宽广声音的方法
机器视觉基础颜色模型和拍照中的术语详细资料概述
手机充不上电怎么回事
解读无人机躲闪术:机器学习让我战胜击剑高手
如何计算室内室外全彩LED显示屏屏体的面积
realme X50干不过红米K30 红米有一个压倒性的优势
关于正激变压器有哪些必须知道的?
华为5G Book RRU满足5G网络部署需求,助力中国电信完成城市5G全覆盖
S7-1200和CP343-1的Profinet通信方法
中国移动基于面向 5G 及数据中心的高速光引擎建设项目