广东快3>WIKI库>学习嵌入式>嵌入式环境搭建需求

嵌入式环境搭建需求



环境搭建需求分析


广东快3根据我们移植的基本步骤来说,我们安装完交叉编译器过后下一步主要的方式要确定我们目标机和主机的连接方式,也就是我们现在要讲的PC跟开发板之间的一个环境搭建。


那么首先我们还是看一下我们需要完成什么样的功能或者说我们有什么需求。然后我们根据这个需求来进一步确定我们是如何进行操作的。在这个地方的需求我们只列出一点也是最直接的一点,就是说我们的开发涉及到实在PC上开发也就是说我们在主机中开发,而我们最终的目标实现也就是最终的执行结果是在开发板上去显示出来的。


所以说我们就一定涉及到一个新的问题就是“主机中的数据 如何传递 到开发板?”所以说我们在之前也给大家确立了几个连接方式,其中像串口、USB口、网络接口包括我们的Debug Jtag调试接口都可以作为我们物理传输数据的主要方式。



数据文件的传递


所以说这个地方我们就来简单说一下,一般来说传输数据我们可以认为是两种目的,一个就是普通是数据文件的传递。比如说我们后面要用的uboot kernel我们的内核,这些我们都可以认为我们要传递的基本数据的单元,那么这个地方我们主要的目的就是传递,那么传递东西我们在最早最早之前,一般情况下我们不太使用串口因为串口,虽然串口可以传输普通的比如说hello world等等字符串。既然能传输字符串,那么我们的uboot内核这样的文件其实也是能传的,道理是一样的,但是速度太慢,所以我们的串口很少直接去用在我们的“uboot kernel”这两个数据,量的传递过程中。


那么我们更多的时候是用网络接口,那么网络接口中我们最主要的使用方式叫TFTP的服务,就说通过这个服务,我们可以把“uboot kernel”这两个都可以传输。


广东快3我们讲具体细节就可以知道TFTP主要传递的是内核的文件。uboot我们会通过其他方法去烧写,当然网络接口也有办法来传,但是这个一般情况下要看你们的开发环境,一般来说内核为主。


广东快3以上这是一种,然后这只是一种普通数据。



调试数据


第二种数据我们说就不仅仅是数据的传递了,我们可能还需要一个调试的问题。因为我们在实际开发程序的时候,我们一般不可能回避调试的问题,就说我们有的同学肯定不敢保证一下子就成功了。那么很多情况下,我们嵌入式开发往往都在我们PC芯调相当于在x86上把它调好。调好过后我们直接把这样的程序通过交叉编把它放到我们的板子上就可以了。理论上是以这样一套过程但是很多情况下,因为板子的其他环境跟我们PC是不太一致的,所以很可能导致我们板子上的调试并不是很顺利,所以这样的话我们就需要在我们的开发板和主机之间建立一种更方便,更合适的调试解决方案。


广东快3那么有的同学说,我们还是可以用网络接口比如说我们用TFTP或者是FTP等等这样的方式把数据传到网络上,也就是传到板子上然后在板子上运行就可以了。是的,这种方法没有问题,本身就可以进行解决了,但是我们在实际开发中,其实你会发现这样的方法不太方便,因为你看我还要在主机上编,编完之后还要通过网络接口敲很多命令,然后把它传到板子上然后我还要打开板子得终端,或者交互接口来进行相应的测试,所以这样虽然可以解决打死你略微显得麻烦一些,但是大家来思考一个问题,我们如果说可以把可执行文件在编译的过程中直接就放到板子上了。那么这样我们就可以在板子上直接操作或者直接调试或者直接进行相应的编辑都可以,这样是不是更加方便一点。


所以说我们在调试中就想给大家提供一个更加方便的东西,就不仅仅是一种传递的概念而且还有一种直接相当于使用我们主机的一块硬盘空间直接挂载到板子上来使用的方法,也就是说对于调试我们更多的时候是使用的一种挂载调试的方式。


demand1.png


如图,这样来看,为什么我们不敢在板子上直接去调试,因为板子的容量太小了,那么我们就想办法吧,容量扩大就行。但是很显然这样的成本很高,所以说我们可以像如图一样考虑。 比如图左下方的大四边形是一块板子然后我在U盘上去把这里的数据填好。因为U盘上的数据可以很大比如说我买一个移动硬盘一样,那么相当于我的板子上挂着一个非常庞大的数据存储的地方,那么我们如果能把数据直接在U盘上进行操作相当于就可以完成我们在开发板上操作U盘的数据。


所以这是我们的一个想法,但是U盘拔来拔去很麻烦,比如说我们把它插在他板子上过后,板子运行起来后可以直接取U盘里的数据直接进行相应的操作就可以了。但是我们还涉及到把U盘拔出来放在我的PC上接上去,然后还要把数据拷过去,所以说这样来说还是很麻烦。但是这种思路却给我们一个新的尝试方法也就是说我们在调试东西的时候不一定非要进行网络的传输把数据传过来。只需要进行把相应的数据挂到这个板子上就可以了。


广东快3所以后来我们就想了一个办法, 所谓的U盘其实就是通过USB这样的接口(图上椭圆上的圆圈)去接到板子上,那现在我们就想到一个办法通过网络或者网线,然后我们一个共享的数据块当成一个U盘的容量或容器(图中右边的椭圆)然后通过网线这个物理接口而不是通过USB这样的一个接口然后跟板子进行一个衔接,也就是说它们数据1和0的传递方式不是通过USB接口来传而是通过网线,然后这样的板子就是在原有的基础上又多了一个硬盘空间,如果这块硬盘恰好又跟我们的PC(图右边的四边形)又是共用的,也就是说我这块共享空间就在PC上而我现在所有的操作编译都直接在四边形中的椭圆也就是硬盘空间去填数据或者是去修改或者是gcc编译都在这个目录下进行操作(如图片右方),然后我就把这样的目录跟这个板子通过图中的这两个线走tcpip协议把这个网线跟这个板子进行挂载,就相当于这个板子平白无故多了一个U盘的东西,我们就相当于在PC上修改板子上就能看到了。


所以说这种情况调试起来就会更加方便,也就是说我们不需要在进行更多的数据传递的方式了。


比如说我们后面像调试内核的驱动包括应用程序,很多时候我们都是借助以上的这种方式把我们PC上也就是说主机上的一些软件进行相应的开发然后在我们板子上进行验证所以说这种调试方法在我们实际工程开发中应该是用的非常非常多的,那么下面我们就来说一下走网络雷打不动的是TCPIP协议但是学网络的应该知道TCPIP只是应用层以下的协议,但是我们真正想使用这个协议还是必须有个应用层来为我们用户去操作接口。


那么应用层的协议就是NFS,这个网络协议应该是说我们Linux系统和Linux系统之间的挂载方式,当然PC可以Windows,Linux就可以通过其他的方法。但一般不可能我们所有的编译内核和应用程序都是交叉编译器的arm-lang-linux也就是说我们最终都是在Linux环境下进行编译的,所以这样的话我们肯定要走Linux和Linux之间的一个网络传递数据的协议。


这个协议大家把它记住叫做“NFS”它是个挂的概念不是传的概念,前面我们讲的是传的概念这个是挂的概念,这就是我们在需求分析中需要考虑的事情,所以说挂载中我们需要考虑把通过使用NFS。


广东快3总的来说要想把主机数据传递给开发板,我们主要要保证的第一个需求就是网络接通。网络接通后我们通过网络中像TFTP协议、NFS协议就可以方便的进行我们数据的传输了。


当然这两个协议只是为了调试,真正生产中,比如我们在最后把这个产品发布出去的时候,其实可以把它去掉的,因为这个只是为了我们开发人员在调试的时候提供一些便利和效率,最终对于用户来说,因为他不调板子所以说如果是想保护板子里的一些信息,可以把这些相关的接口都给它关掉,这个也是在有些产品公司中比较喜欢用的方法就是调试的时候用一个版本,最终发布的时候把相关的服务给关掉,这样你的产品在流到市场的时候就至少避免了一种别人可以很方便通过这些标准协议来取得你板子里数据的一种方法。


广东快3以上就是我们的需求分析。



【本文由麦子学院独家原创,转载请注明出处并保留原文链接】

分享到:

目录