“第007课 裸机开发步骤和工具使用(免费))”的版本间的差异

来自百问网嵌入式Linux wiki
(保护“第007课 裸机开发步骤和工具使用(免费))”([编辑=仅允许管理员](无限期)[移动=仅允许管理员](无限期)))
 
(未显示2个用户的5个中间版本)
第1行: 第1行:
 
=001节_裸机开发步骤简介 =
 
=001节_裸机开发步骤简介 =
  
回忆大学在VC6.0上面学习C语言,
+
回忆大学在VC6.0上面学习C语言,操作大致流程如下:
x86平台,Windows应用程序:
 
建立工程/项目,编辑源码,编译代码(编译器:VC6.0),运行。
 
  
x86平台,Ubuntu应用程序:
+
x86平台,Windows应用程序:建立工程/项目,编辑源码,编译代码(编译器:VC6.0),运行。
编辑源码,编译代码(编译器:gcc),运行。
 
  
名词解释:gcc
+
 
 +
在Ubuntu上学习C语言,操作大致流程如下:
 +
 
 +
x86平台,Ubuntu应用程序:编辑源码,编译代码(编译器:gcc),运行。
 +
 
 +
 
 +
两者是几乎一致的。
 +
 
 +
 
 +
名词解释:
 +
 
 +
* '''gcc''':
 +
<blockquote>
 
  gcc是linux系统下主要的编译软件,
 
  gcc是linux系统下主要的编译软件,
 
  gcc的全称是GNU编译器套件(GNU Compiler Collection),
 
  gcc的全称是GNU编译器套件(GNU Compiler Collection),
 
  除了可以编译c语言开发的程序外,还可以开发C++、Java等多个语言的程序。
 
  除了可以编译c语言开发的程序外,还可以开发C++、Java等多个语言的程序。
 
  GCC的初衷是为GNU操作系统专门编写的一款编译器。
 
  GCC的初衷是为GNU操作系统专门编写的一款编译器。
 +
</blockquote>
 +
 +
 +
使用gcc的原因:'''功能强大、稳定、开源免费'''。
 +
 +
 +
1)<code>gcc  -v</code>查看gcc的版本,从而验证了gcc编译器正常。
  
使用gcc的原因:功能强大、稳定、开源免费。
 
1)gcc  -v  查看gcc的版本,从而验证了gcc编译器正常。
 
 
不论你使用哪一个版本的gcc,只有后面能够正常编译就可以了。
 
不论你使用哪一个版本的gcc,只有后面能够正常编译就可以了。
  
2)gcc   -o  输出文件名    源文件
+
2)<code>gcc   -o  输出文件名    源文件</code>
 
o:output
 
o:output
  
  
交叉编译模式:
+
* '''交叉编译模式''':
 +
<blockquote>
 
  通常编译嵌入式程序的平台成为宿主机(如:PC的ubuntu系统,CPU架构为X86架构),
 
  通常编译嵌入式程序的平台成为宿主机(如:PC的ubuntu系统,CPU架构为X86架构),
 
  运行嵌入式程序的平台成为目标机(如:某款ARM开发板,CPU架构为ARM架构)。
 
  运行嵌入式程序的平台成为目标机(如:某款ARM开发板,CPU架构为ARM架构)。
第29行: 第44行:
 
  然后将程序烧写到ARM开发板中(下载方式有:JTAG、USB、SD卡、网络等多种方式),
 
  然后将程序烧写到ARM开发板中(下载方式有:JTAG、USB、SD卡、网络等多种方式),
 
  然后在开发板上运行该程序。
 
  然后在开发板上运行该程序。
 +
</blockquote>
  
编辑器
+
 
 +
* '''编辑器''':
 
推荐使用windows平台的source insight和notepad。
 
推荐使用windows平台的source insight和notepad。
 
source insight在查看代码、编辑代码等功能时非常好用。
 
source insight在查看代码、编辑代码等功能时非常好用。
  
编译器
+
* '''编译器'''
 
推荐使用arm-linux-gcc
 
推荐使用arm-linux-gcc
 
arm-linux-gcc是基于linux平台的arm编译器。它是开源免费的编译器。
 
arm-linux-gcc是基于linux平台的arm编译器。它是开源免费的编译器。
 
arm-linux-gcc功能强大、稳定、支持的arm芯片众多、更新速度快。
 
arm-linux-gcc功能强大、稳定、支持的arm芯片众多、更新速度快。
 +
  
 
入门误区:使用ads、MDK
 
入门误区:使用ads、MDK
 +
 
ads(停止更新)、MDK,是windows平台的编译器,功能较弱。
 
ads(停止更新)、MDK,是windows平台的编译器,功能较弱。
 +
 
1)只适合个人或者小团队的开发,不适合于中型、大型团队的协作开发。
 
1)只适合个人或者小团队的开发,不适合于中型、大型团队的协作开发。
 +
 
2)是收费软件。
 
2)是收费软件。
  
 
=002节_source insight代码查看工具的使用 =
 
=002节_source insight代码查看工具的使用 =
  
编辑器
+
'''编辑器'''
 +
 
 
推荐使用windows平台的source insight和notepad。
 
推荐使用windows平台的source insight和notepad。
 +
 
source insight在查看代码、编辑代码等功能时非常好用。
 
source insight在查看代码、编辑代码等功能时非常好用。
 
 
source insight:c文件、h文件、ARM汇编文件
+
source insight针对:c文件、h文件、ARM汇编文件
notepad:其他文件,如Makefile(简单理解为:指明了要编译哪些源文件、指定编译后的输出文件名)
+
 
 +
notepad针对:其他文件,如Makefile(简单理解为:指明了要编译哪些源文件、指定编译后的输出文件名)
  
  
 
source insight是收费软件,但是这个软件可以免费35天。
 
source insight是收费软件,但是这个软件可以免费35天。
 
版本:3.5
 
版本:3.5
 +
 
安装包:自己百度一下"source insight3.5"
 
安装包:自己百度一下"source insight3.5"
 +
 +
 +
source insight常用设置:
 +
 
1.增加文件类型
 
1.增加文件类型
 +
 
  options-->documents options中,将c source file的文件过滤设置为*.c;*.h;*.S
 
  options-->documents options中,将c source file的文件过滤设置为*.c;*.h;*.S
 +
 +
 
2.新建项目(新建工程)
 
2.新建项目(新建工程)
 +
 
  project-->new project,然后将相应的文件添加到该项目中。
 
  project-->new project,然后将相应的文件添加到该项目中。
 +
 +
 
3.字体的设置(解决中文乱码)
 
3.字体的设置(解决中文乱码)
 +
 
  options-->documents options中,将screen fonts设置为:宋体、常规、12、GB2312.
 
  options-->documents options中,将screen fonts设置为:宋体、常规、12、GB2312.
 
使用alt+F12来调整字体的等宽。
 
使用alt+F12来调整字体的等宽。
 +
  
 
4.说明一下source insight的窗口
 
4.说明一下source insight的窗口
 +
 
  项目窗口:指明该项目中有哪些文件。
 
  项目窗口:指明该项目中有哪些文件。
 
  主窗口:显示当前打开文件的文件内容。
 
  主窗口:显示当前打开文件的文件内容。
 
  符号窗口:显示了当前打开文件的函数名、结构体名、宏定义等等。
 
  符号窗口:显示了当前打开文件的函数名、结构体名、宏定义等等。
 
  上下文窗口:光标放在某个函数上(变量上、宏定义上),在下面的上下文窗口就可以看到相应的定义。
 
  上下文窗口:光标放在某个函数上(变量上、宏定义上),在下面的上下文窗口就可以看到相应的定义。
 +
 +
 
5.显示行号
 
5.显示行号
 +
 
  view-->line number
 
  view-->line number
 +
 +
 
6.快速跳转到某一行
 
6.快速跳转到某一行
 +
 
  工具栏中有一个go to line。
 
  工具栏中有一个go to line。
 +
 +
 
7.高亮关键词
 
7.高亮关键词
 +
 
  光标放在关键词上,然后右键菜单--->highlight word
 
  光标放在关键词上,然后右键菜单--->highlight word
 +
 +
 
8.查看函数定义位置
 
8.查看函数定义位置
 +
 
  光标放在函数上,然后右键菜单--->jump  to defintion,或者ctrl + 鼠标左键。
 
  光标放在函数上,然后右键菜单--->jump  to defintion,或者ctrl + 鼠标左键。
 
  go back  (alt + ,)回到上一次光标所在位置,或者使用工具栏中的向左箭头。
 
  go back  (alt + ,)回到上一次光标所在位置,或者使用工具栏中的向左箭头。
 
  go forward(alt + .)回到下一次光标所在位置,或者使用工具栏中的向右箭头。
 
  go forward(alt + .)回到下一次光标所在位置,或者使用工具栏中的向右箭头。
 +
 +
 
9.查找
 
9.查找
 +
 
  右键菜单-->lookup reference,或者ctrl + / 。
 
  右键菜单-->lookup reference,或者ctrl + / 。
  
# 003节_notepad编辑器和二进制文件查看工具 #
+
=003节_notepad编辑器和二进制文件查看工具 =
 +
 
 
下面介绍两个免费的工具:
 
下面介绍两个免费的工具:
文本编辑器工具[Notepad++](https://notepad-plus-plus.org/)和二进制查看工具[Free Hex Editor Neo](https://www.hhdsoftware.com/free-hex-editor)
+
文本编辑器工具[https://notepad-plus-plus.org/ Notepad++]和二进制查看工具[https://www.hhdsoftware.com/free-hex-editor Free Hex Editor Neo]
 +
 
  
 
Notepad++使用技巧:
 
Notepad++使用技巧:
第94行: 第149行:
  
 
Free Hex Editor Neo使用技巧:
 
Free Hex Editor Neo使用技巧:
# 打开hex二进制文件,默认每行显示16个数,即0x00-0x0f;
+
# 打开hex二进制文件,默认每行显示16个数,即0x00-0x0f;
#  在菜单栏的View->Offset可设置左边偏移的显示进制;
+
#  在菜单栏的View->Offset可设置左边偏移的显示进制;
#  在菜单栏的View->Display As可设置当前数据的显示进制;
+
#  在菜单栏的View->Display As可设置当前数据的显示进制;
#  在菜单栏的View->Columns As可设置当前每行显示多少数据;
+
#  在菜单栏的View->Columns As可设置当前每行显示多少数据;
#  在菜单栏的View->Group By可设置当前数据显示的数据类型;
+
#  在菜单栏的View->Group By可设置当前数据显示的数据类型;
  
 +
='''《《所有章节目录》》'''=
 
<categorytree mode=all background-color:white;">ARM裸机加强版</categorytree>
 
<categorytree mode=all background-color:white;">ARM裸机加强版</categorytree>
 
[[Category:ARM裸机加强版 ]]
 
[[Category:ARM裸机加强版 ]]

2018年1月24日 (三) 16:28的最新版本

001节_裸机开发步骤简介

回忆大学在VC6.0上面学习C语言,操作大致流程如下:

x86平台,Windows应用程序:建立工程/项目,编辑源码,编译代码(编译器:VC6.0),运行。


在Ubuntu上学习C语言,操作大致流程如下:

x86平台,Ubuntu应用程序:编辑源码,编译代码(编译器:gcc),运行。


两者是几乎一致的。


名词解释:

  • 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)是收费软件。

002节_source insight代码查看工具的使用

编辑器

推荐使用windows平台的source insight和notepad。

source insight在查看代码、编辑代码等功能时非常好用。

source insight针对:c文件、h文件、ARM汇编文件

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


source insight是收费软件,但是这个软件可以免费35天。 版本:3.5

安装包:自己百度一下"source insight3.5"


source insight常用设置:

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 + / 。

003节_notepad编辑器和二进制文件查看工具

下面介绍两个免费的工具: 文本编辑器工具Notepad++和二进制查看工具Free Hex Editor Neo


Notepad++使用技巧:

  1. 按住Ctrl+鼠标滚轮,可以缩放文本内容大小;
  2. 查看c语言文件时,双击变量,即可在高亮整个文本中的该变量;
  3. 查看c语言文件时,光标放在任一括号处,即可高亮整个括号范围;
  4. 快捷键“Ctrl+F”,打开查找窗口,可搜索所需字符;

Free Hex Editor Neo使用技巧:

  1. 打开hex二进制文件,默认每行显示16个数,即0x00-0x0f;
  2. 在菜单栏的View->Offset可设置左边偏移的显示进制;
  3. 在菜单栏的View->Display As可设置当前数据的显示进制;
  4. 在菜单栏的View->Columns As可设置当前每行显示多少数据;
  5. 在菜单栏的View->Group By可设置当前数据显示的数据类型;