当前位置:  技术问答>linux和unix

如何让程序在CPU上裸跑?

    来源: 互联网  发布时间:2016-10-02

    本文导语:  最近有个客户需求,其对实时性要求相当的高,以至于程序不能跑在操作系统之上,需要直接跑在CPU上,ARM的或X86的。 我现在有两个初步想法,请大侠们给我评估评估: 1:硬件(譬如是ARM板子)只有一个核,这个...

最近有个客户需求,其对实时性要求相当的高,以至于程序不能跑在操作系统之上,需要直接跑在CPU上,ARM的或X86的。

我现在有两个初步想法,请大侠们给我评估评估:
1:硬件(譬如是ARM板子)只有一个核,这个核只能运行我的程序
问题:
(1)如何写代码?跟写Linux内核代码比较,有什么要注意的地方?
(2)如何编译代码?用gcc吗?编译时有什么要注意的地方吗?
(3)怎么让它运行起来?

2:硬件(譬如是ARM板子)有两个核,一个核运行我的程序(此程序代码跟一个核的一样),一个核跑Linux系统。
问题:
(1)在这里多一个Linux系统有什么好处?
(2)对我程序的运行的实时性会有什么影响?

谢谢!

|
关于1,建议参考uboot,vivi,redboot等bootloader的代码,这些程序都是直接跑在裸机上的。
关于2,虽然有双核,但不可能一个核跑OS,另一个核跑裸程序。因为内存、系统总线等都只有一套。
对实时性要求高的话,可以试试Vxworks

|
写一个能把板子弄起来的bootloader,直接参考现有操作系统的就行,Linux或者vxWorks之类的。然后在从loader跳转到内核的那个地方跳到你的程序里,大概应该是这么做,可能细节上还得斟酌。
编译器用gcc就可以,编出来个elf之类的,然后在像ram加载的时候注意加载地址,从loader跳转的时候跳到第一条指令。

|
这个你直接去看bootloader吧,那个是裸跑程序,对于实时性要求很高,但是任务简单的,可以使用裸跑的办法来实现。但是要是你的任务复杂,需要多个任务同时运行的话,那还是os吧!如果裸跑的话,你可以把ARM板子当做一个supper单片机就行了!你想怎么搞就怎么搞啊!

    
 
 

您可能感兴趣的文章:

  • 用哪些函数可以得到执行一个程序的系统CPU时间,用户CPU时间,时钟时间啊?
  • 如何用C程序获取系统的CPU的数目,以及各个CPU的ID
  • 多cpu程序开发问题
  • python计算程序开始到程序结束的运行时间和程序运行的CPU时间
  • 应用程序的%cpu 突然猛增到200左右
  • linux多线程程序cpu占用率问题
  • linux c程序运行cpu时间不包括 i/o时间
  • linux下程序启动后cpu占用率达到101%--102%
  • 谁能告诉我,怎样知道我所使用的机器安装了几个cpu(用c程序)
  • 请问, 怎样通过程序方式,获取到当前系统的CPU,内存等情况
  • 按百分比消耗CPU资源的 shell程序
  • 程序的CPU利用率奇怪问题
  • 在liunx系统上跑程序,几个小时后系统死机,而cpu不狂涨,也无内存泄露
  • cpu是怎么找到中断程序的堆栈的?
  • 我有一个linux下的c程序,每次运行时cpu都要占用90%左右,怎么回事?
  • 请问,怎样通过程序方式,获取AIX系统当前的CPU, 内存使用情况?
  • 在程序中如何获得某个进程的CPU占用率
  • 等待大侠出手相救,在多线程程序中执行system函数导致CPU利用率不停的增长的问题。
  • 怎么样用程序取得Linux系统的CPU利用率和内存的使用情况呀?
  • linux 程序 system cpu 占用较高说明什么问题?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 重装服务器后IIS网站错误(应用程序中的服务器错误)
  • 为什么我在java程序里启动的一个程序在java程序关闭后,该程序的所有进程都关掉了
  • windows server2008上PowerBuilder程序系统错误解决方法
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 网络技术 iis7站长之家
  • 程序员的八种级别,你属于哪一级?
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 我的程序是用c写的gtk+程序,有个函数的参数要传给它图片的文件名,但是图片和原程序不在同一目录下怎么办?怎么在程序里指定文件的路径
  • 在docker容器中通过apt-get安装新的程序
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.
  • linux下通过crond实现自动执行程序
  • 我写了个linux下的网络程序,程序在多个电脑间通信,但是我没有多个电脑,怎么调试这样的程序啊?
  • http协议介绍,文件上传分析及程序举例
  • 在java控制台程序中,可以用System.exit(0);使用一个程序终止,那么在servlet中如何使一个servlet程序终止呢?
  • 程序员赚钱致富的6种方法
  • 程序调用脚本,脚本启动另一个程序,如何让原始程序彻底释放资源?
  • HASH查找的程序实现及性能分析
  • linux下,一个程序如何向另一个程序发送消息,另一个程序如何接收
  • 程序员为了健康必看!早晨空腹喝水,是对还是错?
  • jsp程序运行一次后,再修改原jsp程序,为什么运行还是的还是原来的程序??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3