“第007课 裸机开发步骤和工具使用(免费))”的版本间的差异
Baiwen root(讨论 | 贡献) |
Baiwen root(讨论 | 贡献) 小 (保护“第007课 裸机开发步骤和工具使用(免费))”([编辑=仅允许管理员](无限期)[移动=仅允许管理员](无限期))) |
||
(未显示2个用户的7个中间版本) | |||
第1行: | 第1行: | ||
=001节_裸机开发步骤简介 = | =001节_裸机开发步骤简介 = | ||
− | 回忆大学在VC6. | + | 回忆大学在VC6.0上面学习C语言,操作大致流程如下: |
− | |||
− | |||
− | + | x86平台,Windows应用程序:建立工程/项目,编辑源码,编译代码(编译器:VC6.0),运行。 | |
− | |||
− | + | ||
+ | 在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,只有后面能够正常编译就可以了。 | 不论你使用哪一个版本的gcc,只有后面能够正常编译就可以了。 | ||
− | + | 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 | + | source insight针对:c文件、h文件、ARM汇编文件 |
− | + | ||
+ | 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编辑器和二进制文件查看工具 = | |
+ | |||
+ | 下面介绍两个免费的工具: | ||
+ | 文本编辑器工具[https://notepad-plus-plus.org/ Notepad++]和二进制查看工具[https://www.hhdsoftware.com/free-hex-editor Free Hex Editor Neo]。 | ||
+ | |||
+ | |||
+ | Notepad++使用技巧: | ||
+ | # 按住Ctrl+鼠标滚轮,可以缩放文本内容大小; | ||
+ | # 查看c语言文件时,双击变量,即可在高亮整个文本中的该变量; | ||
+ | # 查看c语言文件时,光标放在任一括号处,即可高亮整个括号范围; | ||
+ | # 快捷键“Ctrl+F”,打开查找窗口,可搜索所需字符; | ||
+ | |||
+ | Free Hex Editor Neo使用技巧: | ||
+ | # 打开hex二进制文件,默认每行显示16个数,即0x00-0x0f; | ||
+ | # 在菜单栏的View->Offset可设置左边偏移的显示进制; | ||
+ | # 在菜单栏的View->Display As可设置当前数据的显示进制; | ||
+ | # 在菜单栏的View->Columns As可设置当前每行显示多少数据; | ||
+ | # 在菜单栏的View->Group By可设置当前数据显示的数据类型; | ||
+ | |||
+ | ='''《《所有章节目录》》'''= | ||
+ | <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++使用技巧:
- 按住Ctrl+鼠标滚轮,可以缩放文本内容大小;
- 查看c语言文件时,双击变量,即可在高亮整个文本中的该变量;
- 查看c语言文件时,光标放在任一括号处,即可高亮整个括号范围;
- 快捷键“Ctrl+F”,打开查找窗口,可搜索所需字符;
Free Hex Editor Neo使用技巧:
- 打开hex二进制文件,默认每行显示16个数,即0x00-0x0f;
- 在菜单栏的View->Offset可设置左边偏移的显示进制;
- 在菜单栏的View->Display As可设置当前数据的显示进制;
- 在菜单栏的View->Columns As可设置当前每行显示多少数据;
- 在菜单栏的View->Group By可设置当前数据显示的数据类型;