arm嵌入式linux系统为什么要在Linux主机上编译后下载到开发板呢?为什么
答案:2 悬赏:20 手机版
解决时间 2021-01-31 20:34
- 提问者网友:听门外雪花风
- 2021-01-31 07:50
arm嵌入式linux系统为什么要在Linux主机上编译后下载到开发板呢?为什么不能像单片机一样在windows下编译后下载呢?Windows下难道没有可以编译能在arm开发板下运行的程序的软件?
最佳答案
- 五星知识达人网友:轻雾山林
- 2021-01-31 08:46
同学不要把单片机和嵌入式化成等同。单片机只不过是嵌入式里面的一个小分支。
你问这个问题说明你对软件的编译原理还不够深入。
简单来说就是单片机的IDE已经集成了很多步骤,编译,链接,以及调试功能,更重要的是单片机编程需要的接口是比较平台化的比如说在8位机上的程序涉及到寄存器的操作,到其他单片机就要重头开发,
用到的函数也不同,linux应用编程其实用的是linux平台的c库以及linux的API,这些在Windows是没有的,除非你自己配置环境。而单片机说白了,基本都是根据某款单片机到各个论坛去或者芯片厂商去要接口实现函数,开发中很少用到C库中的函数。
而在PC的linux中是有开源的内核代码,以及编译环境,linux中的编译器可以找到需要实现的头文件以及动态库和静态库。在开发的过程中也需要有单独的调试工具,比如GDB等。
当然你可以在Windows下从网上下载好对应的linux内核源码以及编译器,配置好路径,也可以实现在Windows下进行编译运行,但这样会遇到很多的兼容性问题,而且你的做法不是主流,实际开发这么搞会带来很多麻烦
你问这个问题说明你对软件的编译原理还不够深入。
简单来说就是单片机的IDE已经集成了很多步骤,编译,链接,以及调试功能,更重要的是单片机编程需要的接口是比较平台化的比如说在8位机上的程序涉及到寄存器的操作,到其他单片机就要重头开发,
用到的函数也不同,linux应用编程其实用的是linux平台的c库以及linux的API,这些在Windows是没有的,除非你自己配置环境。而单片机说白了,基本都是根据某款单片机到各个论坛去或者芯片厂商去要接口实现函数,开发中很少用到C库中的函数。
而在PC的linux中是有开源的内核代码,以及编译环境,linux中的编译器可以找到需要实现的头文件以及动态库和静态库。在开发的过程中也需要有单独的调试工具,比如GDB等。
当然你可以在Windows下从网上下载好对应的linux内核源码以及编译器,配置好路径,也可以实现在Windows下进行编译运行,但这样会遇到很多的兼容性问题,而且你的做法不是主流,实际开发这么搞会带来很多麻烦
全部回答
- 1楼网友:玩世
- 2021-01-31 10:15
1. 单片机很少跑操作系统,arm嵌入式系统如果不跑操纵系统,当然用iar,keil等等集成开发环境也可以编译出来程序,但是如果要跑操作系统,目前主流的都是跑的基于linux内核的操作系统。
2. 既然使用的是基于linux的系统,那在linux下用交叉编译环境编译出程序就是自然而然的。就好像你要写一个windows下运行的程序,自然首选是在windows下开发。
3. 搭建linux的编译环境很简单。即使是windows的系统,装个虚拟机,安装一下交叉编译环境,也就可以了。
4. 搭建windows编译环境的方法基本都是先安装一个类linux环境的软件,比如cgwin,然后和linux下步骤基本相同,没多大区别。
5. 你想用windows的环境,应该是对linux不熟悉吧。但是,学习linux是做嵌入式省不了的,是必须的。我也是这么一步一步走来的,推荐从单片机裸奔(无操作系统)过渡到arm linux的一本书《linux c 一站式学习》
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯