4.交叉编译

来源:互联网 发布:石头剪刀布 网络歌手 编辑:程序博客网 时间:2024/06/01 07:48
4.交叉编译
4.1.两种开发模式:
非嵌入式开发,A机(类)编写源代码、编译得到可执行程序,发布给A机(类)运行。
嵌入式开发,A机(类)编写源代码、编译得到可执行程序,发布给B机(类)运行
4.2.为何使用交叉编译:
嵌入式开发的CPU比较简单,本身无法搭建开发环境,有些甚至连操作系统都没有;
交叉编译可以用高性能机器为低性能机器开发软件(包括裸机软件、系统级和应用级软件)。
“既然我们已经有了主机编译器,那为什么还要交叉编译呢?”其实答案很简单。有时是因为目的平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器的某些特征;有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器;有时又是因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器。
“既然可以交叉编译,那还要主机编译干吗?”其实答案也很简单,交叉编译是不得已而为之!与主机编译相比,交叉编译受的限制更多,虽然在理论上我们可以做任何形式的交叉编译,但事实上,由于受到专利、版权、技术的限制,并不总是能够进行交叉编译,尤其是在业余条件下!
4.3.交叉编译特点:
必须使用专用的交叉工具链。
由于可执行程序不能本地运行调试,因此要配合一定的手段(专用调试器、JTAG调试器、USB下载、串口下载、SD启动、网络共享...)将可执行程序加载到目标嵌入式设备上运行及调试。
4.4.宿主机、目标机
宿主机(host) :编辑和编译程序的平台,一般是基于X86的PC机,通常也被称为主机。
目标机(target):用户开发的系统,通常都是非X86平台。host编译得到的可执行代码在target上运行。
4.5.当我们在看书或者是听教学视频的时候,我们应该带着一种怀疑的态度来看待,这样,当我们的意见和老师的不一致的时候,我们可以探讨,这样我们才能够有进步。
0 0
原创粉丝点击