7-ARM裸机开发步骤

各平台开发步骤:

7-ARM裸机开发步骤_第1张图片
gcc和arm-linux-gcc的区别:

gcc是linux系统下面用来将代码编译成一个可执行程序的手段。编译出来的是适用于linux系统的可执行二进制文件。所以你用gcc编译出来的可执行程序只有在linux系统下面可以运行。
举个例子你的可执行程序里面有一句01011.这句在linux下面可能是吃饭的意思,但是在windows下面可能01011是撒尿的意思。那你说linux的可执行程序放在window下面能正常运行吗?肯定不能嘛。你要的目的是吃饭,它帮你执行撒尿很显然就不对了。同样的可能01011在ARM下面的意思是睡觉。
不同系统的机器码含义是不一样的。所以你在linux系统下面写的代码要怎样才能在ARM系统上面跑呢。这就需要用到交叉编译。**arm-linux-gcc是什么意思?就是告诉你的编译器,我编写的环境是linux,但是我希望生成的可执行程序是在arm上面跑的。这就是交叉编译。**编写环境和执行环境分离的一种手段。

名词解释:gcc

gcc是linux系统下主要的编译软件,
gcc的全称是GNU编译器套件(GNU Compiler Collection),
除了可以编译c语言开发的程序外,还可以开发C++、Java等多个语言的程序。
GCC的初衷是为GNU操作系统专门编写的一款编译器。

使用gcc的原因:功能强大、稳定、开源免费。

1)gcc -v 查看gcc的版本,从而验证了gcc编译器正常。
不论你使用哪一个版本的gcc,只有后面能够正常编译就可以了。

2)gcc -o 输出文件名 源文件
o:output

交叉编译模式:

通常编译嵌入式程序的平台成为宿主机(如:PC的ubuntu系统,CPU架构为X86架构),
运行嵌入式程序的平台成为目标机(如:某款ARM开发板,CPU架构为ARM架构)。
在X86平台编辑和和编译器arm-linux-gcc编译ARM架构的程序,
两者属于不同的架构平台,从而属于交叉编译模式。
然后将程序烧写到ARM开发板中(下载方式有:JTAG、USB、SD卡、网络等多种方式),
然后在开发板上运行该程序。

编辑器
推荐使用windows平台的source insight和notepad。
source insight在查看代码、编辑代码等功能时非常好用。

编译器
推荐使用arm-linux-gcc
arm-linux-gcc是基于linux平台的arm编译器。它是开源免费的编译器。
arm-linux-gcc功能强大、稳定、支持的arm芯片众多、更新速度快。

入门误区:使用ads、MDK
ads(停止更新)、MDK,是windows平台的编译器,功能较弱。
1)只适合个人或者小团队的开发,不适合于中型、大型团队的协作开发。
2)是收费软件。

我们学习嵌入式的目的是找工作。
那么在学习过程中就要掌握企业实际开发的开发流程。

//============================================================
编辑器
推荐使用windows平台的source insight和notepad。
source insight在查看代码、编辑代码等功能时非常好用。

source insight:c文件、h文件、ARM汇编文件
notepad:其他文件,如Makefile(简单理解为:指明了要编译哪些源文件、指定编译后的输出文件名)

source insight是收费软件,但是这个软件可以免费35天。
版本:3.5
安装包:自己百度一下"source insight3.5"

1)增加文件类型
options–>documents options中,将c source file的文件过滤设置为*.c;.h;.S

2)新建项目(新建工程)
project–>new project,然后将相应的文件添加到该项目中。

3)字体的设置(解决中文乱码)
options–>documents options中,将screen fonts设置为:宋体、常规、12、GB2312.

使用alt+F12来调整字体的等宽。

4)说明一下source insight的窗口

项目窗口:指明该项目中有哪些文件。
主窗口:显示当前打开文件的文件内容。
符号窗口:显示了当前打开文件的函数名、结构体名、宏定义等等。
上下文窗口:光标放在某个函数上(变量上、宏定义上),在下面的上下文窗口就可以看到相应的定义。

5)显示行号
view–>line number

6)快速跳转到某一行
工具栏中有一个go to line。

7)高亮关键词
光标放在关键词上,然后右键菜单—>highlight word

8)查看函数定义位置
光标放在函数上,然后右键菜单—>jump to defintion,或者ctrl + 鼠标左键。
go back (alt + ,)回到上一次光标所在位置,或者使用工具栏中的向左箭头。
go forward(alt + .)回到下一次光标所在位置,或者使用工具栏中的向右箭头。

9)查找
右键菜单–>lookup reference,或者ctrl + / 。

你可能感兴趣的:(7-ARM裸机开发步骤)