• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

为什么ucos移植时有些函数必须用汇编写?

a17d06fe39f8d3aa 2019-04-28 浏览量:622
为什么ucos移植时有些函数必须用汇编写?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 因为 c 无法实现所有 汇编的功能。

    不仅仅是 ucos, freeRTOS, linux ,底层都有汇编代码,就是你的裸机程序,开机启动部分也是 汇编代码。

    芯片一开机只能运行汇编代码,汇编准备好了 c 语言运行环境,才能运行 c 代码

    • 发布于 23小时前
    • 举报
    • 评论 0
    • 2
    • 0

其他答案 数量:6
  • 通常说是确保切换任务的高效性,包括部分中断纯C完成不了。

    某乎有同样的问题,有个回答很好。其中有部分说法:纯C语言不能保存CPU内指定通用寄存器的内容,而汇编可以(至于为啥,还没弄明白)。所以传统OS系统底层任务切换只用用汇编。当然现代OS是可以纯C的。


  • 单片机中断操作的指令C语言实现不了,只能用汇编。 任务切换部分用汇编是为了提高效率。

  • 这个是为了保证高效性,其实使用C语言也可以【实现,只是效率不高,而RTOS的任务高度的时间要越小越好,所以用汇编

  • 因为操作系统底层用c语言实现不了,只能用汇编对cpu直接操作,而且汇编执行效率高,对系统也有好处
    • 发布于2019-05-01
    • 举报
    • 评论 0
    • 0
    • 0

  • ucos这种实时操作系统的系统底层切换任务,用C做不到,所以只能用汇编;另外汇编是对硬件操作效率更高,执行更快。


    • 发布于2019-05-01
    • 举报
    • 评论 0
    • 0
    • 0

  • ucos这类操作系统,在进行任务调度的时候,涉及到对堆栈的操作,此外,它还有临界区的功能,临界区要屏蔽中断,这类涉及到最底层的操作都是需要用汇编完成的
    • 发布于2019-05-09
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

为什么ucos移植时有些函数必须用汇编写?