在学习一门编程语言的时候应该了解一些基础的东西,这样有利于自己的学习,以免后期因为一些专有名词而耽误了自己的学习。
(1)嵌入式系统
对于嵌入式系统的概念,我的理解就是:嵌入式系统一定是个软件,硬件统一起来的概念,特定的软件系统是紧密的、有针对性的某款具体硬件的,有的嵌入式系统是有独立使用功能的,比如无线路由器,而有的只是一个嵌入式产品的一部分,比如手机modem部分,DSP处理器部分。
(2)arm
arm有两个概念,一个是指arm公司,一个是指arm核,我们看到的arm926,arm11,cortexa8,a9等说法,都是arm core的概念,是arm公司设计的最基本的架构,它类比于x86的概念。
而平时我们说的6410,2440,都是叫嵌入式处理器的,是具体的CPU的概念。是这些半导体公司使用arm core,再加上自己的外设IP,造就出的一颗特定的CPU产品。举例子:s3c6410是基于arm11的core来做出的一个CPU,但是6410不等同于arm11处理器。
(3)Linux
Linux是个操作系统,是运用操作系统理论写的一个软件,它实现了最基本的操作系统API给上层用户,同时它还管理着硬件操作。
(4)ubuntu
ubuntu是个linux的发行版,其实就是个桌面系统,winxp总用过吧,类似了。就是把一系列具有界面功能的软件组合在一起供你方便的使用么。你可以把ubuntu理解成一系列的linux应用软件的组合。我们就是利用ubuntu来进行程序的交叉编译的哦。
(5)c语言
Linux内核的所有程序都是用c语言开发的,没学过c语言的赶紧开始吧,这个是最基本的元素了,c语言都不懂其他的啥也别看了。编程语言可是所有应用,内核等软件的基础啊。
(6)开发板
拿ok6410的开发板来举个例子,s3c6410是颗三星的CPU,它是基于arm11的core制作的。而ok6410是个开发板,是用s3c6410作为主CPU,然后自己设计一些外设,组合成的一块板子,可以用来做产品搞开发,这就是开发板的概念。你可以类比联想下:你的笔记本电脑就是个开发板,它有好多外设供你使用,键盘,lcd,usb,硬盘,内存等等吧,它用的CPU是intel x86的核。
(7)GCC,Glibc
gcc是编译器,是用来在linux的环境下编译c语言的编译器,因为linux是用c语言写的,所以gcc也是用来编译linux的编译器工具。这个可以联想windows上的c编译工具,tubo c,VC++,不过这类都是IDE集成开发环境,我们这的gcc完全是单个的,命令行编译器。
glibc,是一些列c语言的库函数的组合,就是一些最基本的,最通用的功能,不需要你自己再去实现啦,你只需要调用glibc中这些库就可以啦,方便啊。
(8)编译器工具链
顾名思义就是把一系列用来编译生成程序最终可执行档的工具组合,比如:gcc,glibc等。我们在编译arm linux的时候经常看到arm-linux-gcc这类都是用来交叉编译基于arm的cpu的程序可执行文件,当我要你在ubuntu上编译个c hello程序,gcc -c hello.c hello,其实生成的hello程序是针对x86架构的程序,因为这个hello程序我不是要你们运行了么哪里运行的,就是你自己的PC机啊。你pc是什么cpu的啊,x86的啊。
如果你想编译基于arm核的CPU的的程序,运行在ok6410的开发板上,你就要用arm-linux-gcc的编译器,这个编译完成之后生成的文件只能运行在arm的开发板上的哦,arm-linux-gcc -c hello.c hello,把你编译后的hello文件在你的电脑上运行下,怎么样,执行不了了吧因为这个是针对arm的文件,不是x86的了。
IT互联网作为时下热门的行业,各行各业都与之相关联。人工智能、云计算、大数据、区块链、互联网+等等,生活、工作时时刻刻也在与互联网密不可分。开设各类IT、泛IT课程,均可免费试听,时代科技集团致力于培养几大方向中软件人才课程与少儿教育课程。助你一臂之力,更多免费训练营让你从零起步。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!