嵌入式系统开发之环境的建立

slgkaifa slgkaifa     2022-09-06     591

关键词:

交叉编译调试环境建立在宿主机(也就是你的电脑)上。对于的开发板叫目标板。要全然手工的建立针对某特定的目标板的交叉编译环境是一个很麻烦的过程。有些人会问,为什么须要建立特定的环境,从网上下载一个通用的不即可了?既然很麻烦,有没有简单的方法,假设有简单的方法,是不是手工的就不要学习了?以下给大家具体介绍。
linux内核被设计成必须使用GNU的gcc来编译,而不是不论什么一种c编译器都能够。gcc对c进行了不要的扩展,这使得他更适合开发操作系统内核。linux内核和编译器的关系很密切,甚至不同版本号的内核须要使用不同版本号的gcc编译器。比方。假设目标板採用的某一个是ARM核的处理器。则须要使用某个版本号的arm-linux-gcc。
不仅是linux内核,linux应用程序编译时,也须要使用交叉gcc编译器。它依赖于宿主机的操作系统。因此。针对嵌入式平台建立交叉编译系统,一般是在pc上建立目标代码来为目标板平台的编译工具链(toolchains)。它能够编译和处理linux内核及应用程序。一般来说,须要下面几个工具的源代码:binutils。gcc。glibc-linuxthreads和linux内核源代码等。
鉴于手工配置这些工具链非常麻烦。非常多嵌入式开发板的生产商都提供了建立交叉编译环境的脚本或者提供了已经配置好交叉编译环境的linux虚拟机文件,仅仅须要执行这样一个脚本或者是使用现有的虚拟机文件就完毕了整个环境的搭建。此外,通过crosstool(一个专门建立编译工具链的脚本的工具),能够在非常大程序上简化工作量。
以下对这些工具链的内容及相关软件进行具体介绍:
(1)binutils
一组编译开发工具。包含连接器,汇编器以及其它用于目标文件和档案的工具。
(2)gcc
gcc(GNU Compiler Collection)是linux下的高级语言编译器,它不但可以支持c/c++语言的编译,并且可以支持FORTRAN。JAVA,ADA等编程语言。
(3)glibc
提供系统调用和基本函数的c库。如open。malloc。printf等。

全部linux上的c程序编译时都须要与glibc库连接。假设是动态连接的程序。在执行时也须要用到它。


(4)glibc-linuxthreads
POSIX(portable operating system interface,可移植操作系统接口)线程库。
(5)linux内核源代码及针对某一个特定P平台的补丁包
须要依据项目的须要。选择合适的linux内核版本号。另外,针对不同的cpu类型,一般存在特定的补丁程序,在进行内核编译曾经。须要首先对linux内核进行打补丁的操作。
至于手动配置工具链,过程较为麻烦,须要了解的能够看我之前推荐的那本书。在132页。

试解释嵌入式linux系统建立交叉开发平台的必要性……

嵌入式考试用的哈交叉开发平台有两种理解:交叉编译环境和跨平台开发环境。所谓交叉编译环境,指的是开发程序的宿主机和目标机为不同平台的开发环境。一般在开发嵌入式linux系统程序过程中,宿主机和目标机为不同的架... 查看详情

转载:嵌入式系统开发步骤

...bootloaderlinux内核移植建立并烧写根文件系统到目标板开发嵌入式应用程序部署与配置系统(1)建立交叉开发环境开发主机的操作系统一般选用某一个发行版本号的linux系统,如RedHatlinux等。linux内核版本号能够依据项目的详细需... 查看详情

qtquick系列教程之开发环境的搭建

...开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。QtCreator是全新的跨平台QtIDE,可单独使用,也可与Qt库和开发工具组成一套完整的SDK.其中包括:高级C++代码编辑器,项目和生成管理工... 查看详情

嵌入式操作系统介绍之nuttx

目录1 NuttX实时操作系统2 关键特征3 支持的平台4 支持的板卡5 文件系统6 设备驱动7 C/C++库8 网络9 Flash支持10 USB支持11 图形支持12 插件13 开发环境14 链接1 NuttX实时操作系统NuttX是一个实时操作系统(RTOS)&#... 查看详情

macosjavaee开发环境搭建之jdk下载安装及环境变量配置

JDK是JAVA语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具1.下载安装1)访问Oracle官网http://www.oracle.com,浏览到首页的底部... 查看详情

嵌入式开发之zynq——zynq开发环境搭建

http://blog.csdn.net/shushm/article/details/51728690http://www.cnblogs.com/fpga/p/4593602.htmlhttp://blog.csdn.net/zccrazywinds/article/details/50900545 http://blog.csdn.net/shushm/article/detail 查看详情

嵌入式操作系统介绍之nuttx

更好的排版:https://mp.weixin.qq.com/s/W5-PhZmL8aZpT4nKy14_HQ目录1 NuttX实时操作系统2 关键特征3 支持的平台4 支持的板卡5 文件系统6 设备驱动7 C/C++库8 网络9 Flash支持10 USB支持11 图形支持12 插件13 开发环境14 链接1 NuttX... 查看详情

嵌入式linux从入门到精通之第十五节:嵌入式系统简介

嵌入式系统的层级结构如下图所示:开发环境这里以三星s5pv210为开发环境:系统资源s5pv210是三星公司推出的32位RISC微处理器,其CPU采用的是ARMCortex-A8内核,基于ARMv7架构丰富的片内资源,为手持设备和其它移动领域应用,提供了... 查看详情

android自动化测试之环境搭建

...工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。Android是google公司推出的手机开发平台。Android-sdk就是指Android专属的软件开发工具包。 Android-sdk中我们最常用的就是 查看详情

cortex-m3之stm32嵌入式系统设计的内容简介

...2深入开发以及stm32高级开发三部分。基础开发部分介绍了嵌入式系统概述、stm32最小系统设计、stm32程序设计入门、gpio应用、gcc编译器的安装与应用、stm32外部中断、面向对象设计的本质、usart通信等内容;深入开发部分介绍了深... 查看详情

嵌入式开发经验

任何开发都依赖硬件,在嵌入式领域。CPU的外设很重要,我们一般都是根据外设进行开发。其实CPU的核心(ARM、PowerPC等)反而对于我们而言并不是那样重要。开发时,一个好的硬件测试平台很重要。包括调试器和开发环境。同... 查看详情

软件开发环境都有哪些

...AVA等如果开发数据库软件,还需要Oracle、SQLServer等如果是嵌入式,还需要ARM编辑器等开发过程:需求分析->总体设计->详细设计->软件测试,过程写的比较简单软件开发方法:敏捷开发等问题四:软件开发的开发环境有哪几... 查看详情

《arm嵌入式linux系统开发详解》高清pdf下载链接

 《ARM嵌入式Linux系统开发详解》高清pdf下载链接百度网盘链接:https://pan.baidu.com/s/1IoguVgzbubUb5O96Ul5uyw提取码:plb8下载链接2:http://ziliaoshare.cn/Download/p_ARMQRSLINUXXTKFXJ.zip   图书简介本书是获得了大量读者好评的“Li... 查看详情

sourceinsight安装在linux上啊(虚拟机环境)求具体步骤!望各位高手不吝赐教!谢谢

...C编程基础linuxC语言环境概述Gcc使用方法Gdb调试技术。4、嵌入式系统开发基础嵌入式系统概述交叉编译配置TFTP服务配置NFS服务下载Bootloader和内核嵌入式Linux应用软件开发。4、嵌入式系统移植Linux内核代码平台相关代码分析ARM平台... 查看详情

17.2搭建嵌入式qt运行环境

17.2 搭建嵌入式QT运行环境17.2.1采用的嵌入式开发板介绍嵌入式开发板: 采用友善之臂Tiny4412  Tiny4412开发板的内核、uboot、交叉编译器均采用友善之臂光盘自带的包。交叉编译器的版本是arm-linux-gcc4.5.1 ,该编译... 查看详情

成为linux程序员需要学习啥

...统的主要特点;3、Linux的组成;4、主要的Linux版本;5、嵌入式Linux简介与发展第二部分虚拟机安装和LINUX系统安装 虚拟机安装;2Linux系统的安装;3Linux系统的常用软件的安装;4Linux快速入门5熟悉运用Linux环境下,常用命令的操... 查看详情

建立目标板linux系统

...建立内核c) 建立根文件系统d) 设置引导软件与配置2、为嵌入式系统开发软件3、网络功能:a) 网络功能让嵌入式系统能够跟外界交互。b) HTTP,Telnet,SSH及SNMPc) 在具有网络功能的嵌入式系统中,值得注意的是“远程更新”... 查看详情

android系统编程入门系列之应用环境及开发环境介绍

    作为移动端操作系统,目前最新的Android11.0已经发展的比较完善了,现在也到了系统的整理一番的时间,接下来的系列文章将以Android开发者为中心,争取用归纳总结的态度对初级入门者所应掌握的基础知识聊以标记。应... 查看详情