手机斗地主玩3局领红包

手机斗地主玩3局领红包
联系我们
  • 深圳市同为旭业科技有限公司

    热线1(舒先生)

    手机:13926579481 

    QQ:2108725098

    热线2(彭小姐)

    手机斗地主玩3局领红包 手机:13714275397  

    QQ:1261192466

    电话:0755-29080943

    传真:0755-29080943

    深圳总部地址:深圳市龙华新区清祥路1号宝能科技园6栋A座9楼F单元  

    深圳工厂:深圳市宝安区石岩街道龙腾社区石环路133号径贝工业区厂房三层

    东莞一厂:东莞市塘厦第一工业区18号

新闻详细
  • 浅谈开发51单片机操作系统应注意的问题都有哪些
    新闻分类:手机斗地主玩3局领红包    作者:handler    发布于:2019-01-114    文字:【】【】【

      (1)操作系统软件代码不宜过长

      由于51系列单片机的系统硬件资源相对匮乏,如果操作系统的代码大于应用程序的代码,即使是用户的应用程序也应考虑给操作系统提供资源,这样的操作系统即使功能完善也不现实。目前流行的嵌入式操作系统不能应用于51系列单片机,因为代码太大。

      开发一个基于5000行的裸机应用程序需要7-8kb的ROM空间。一个操作系统使用数十KB,这不算空间。实时的优势可能会丧失(执行如此多的指令需要时间)。因此,Mucos的作者不支持将他的代码移植到51系列的单片机上也就不足为奇了。

      (2)操作系统不能占用太多的片内RAM空间

      51系列单片机只有128个或者256个字节的片内RAM空间,稍微不注意就用完了。如果操作系统把片内的RAM使用得所剩无几,那用户的应用程序用什么? 如果说用户的程序可以把变量定义在片外RAM中的话,那么系统的硬件堆栈放在哪?

      众所周知,51系列单片机的硬件堆栈不能放在片外,所以要在51系列单片机上开发操作系统的话就要少用它的片内RAM。但是不用片内RAM是办不到的,因为操作系统也要传递参数,也要使用堆栈。

      C51单片机的C函数传递参数是通过寄存器和存储器的,不能通过堆栈。但是可以通过一些措施使得操作系统代码少用片内RAM。

      (3)解决好函数的重入问题

      开发实时占先式的操作系统,可重入函数是非用不可的。可重入函数可以被一个以上的任务调用,而不必担心数据被破坏。可重入函数任何时候都可以被中断,一段时间后又可以运行,而应用数据不会丢失。使得函数具有可重入性必须使得函数能够满足下列三个条件之一:

      ① 不使用共享资源;

    手机斗地主玩3局领红包   ② 在使用共享资源时关中断,使用完毕后再开中断;

      ③ 在使用共享资源时申请信号量,使用完后释放信号量。

      这些条件在标准C中编程很容易实现,但是在Keil C51中就比较麻烦。因为标准C是把局部变量分配到用户堆栈中(动态分配),而Keil C51将局部变量分配到寄存器或内存固定地址(静态分配),并通过变量覆盖分析的方法,使多个函数的局部变量使用相同的内存地址以减少内存占用。

      在 Keil C51中,如果局部变量分配在寄存器中还好些,如果局部变量分配在内存中就比较麻烦。

    手机斗地主玩3局领红包   本文由单片机开发整理,此文不代表本站观点。

    分享到:
    点击次数:175  更新时间:2019-01-11  【打印此页】  【关闭

版权所有:2019 深圳市同为旭业科技有限公司     舒先生:13926579481  彭小姐:13714275397

电话:0755-29080943   深圳总部地址:深圳市龙华新区清祥路1号宝能科技园6栋A座9楼F单元  

电脑版 | 手机版