使用ds-凯发app
文章来源:米尔科技 发布日期:2021.1.19 浏览次数:23 次 |
简介
这个教程主要是带你创建一个简单的“hello world”程序,然后加载到ds-5提供的cortex- a9 的固定虚拟平台(fvp),平台运行嵌入式linux系统。
预准备
这个教程假设您已经安装了arm ds-5并安装了license,如果没有,请学习安装ds_5并获取license。
创建一个简单的hello world的linux程序,
在ds-5中创建一个linuxc程序:
- 创建一个新的c工程并使用ds-5自带的gcc工具链。
- 配置好ds-5gcc工具链编译器和链接器,生成与fvp中arm嵌入式linux系统对应的编译选项。
-
创建源文件并编译这个文件生成相映红的应用程序。
1. 打开ds-5,在ds-5的工具栏中选择select file> new > c project 弹出相应的c工程对话框。
2. 在c工程对话框中:a. 在工程名栏,输入hello world gcc 作为你工程的工程名
b. 在 project type, s选择 executable >empty project。
c. 在 toolchains选项中,选择gcc 4.x[arm-linux-gnueabihf] (ds-5 built in)选项。
d. 点击 finish 创建一个helloworld_gcc的c工程。
你可以在projectexplorer 中查看工程。
配置和设置新工程
1. 在projectexplorer 视图中, 右键helloworld_gcc 工程,选择properties。
小贴士:你也可以通过在ds-5的工具栏打开project的 properties选项 ,在主工具栏 选择 project >properties.
2. 选择c/c build >settings > tool settings 对话框.
a. y你需要特定的相关的选项,在gcc c compiler 4[arm-linux-gnueabihf] > miscellaneous > other flags:
§ ds-5 v5.21.1 和以前的支持软浮点文件系统。所以输入:
-marm -march=armv4t -mfloat-abi=soft
§ ds-5 v5.22 及以后的版本支持硬浮点文件系统,所以输入:
-marm-mfloat-abi=hard
这些标志指示gcc 编译器编译生成二进制文件与特定的架构和文件系统相兼容。
更多关于arm gcc编译器的信息和编译选项请参照, 请看:
b. 在helloworld_gcc 工程的配置对话框,单机ok应用这个设置关闭对话框。
源文件并编译工程
1. 在projectexplorer 视图中,右键单击helloworld_gcc 工程并选择 new > sourcefile.
2. 在新的源文件对话框中,输入文件名helloworld_gcc.c。
3. 点击finish完成创建,打开文件并编辑。click tocreate the source file and open it in the code editing view.
源文件也可以在在project explorer 视图中查看, 在 helloworld_gcc中。
4. 添加下列代码在新文件中,使用快捷键 ctrl s 保存。
1
2
3
4
5
6
7
|
#include
int main( int argc, char ** argv) {
printf ( "helloworld\n" );
return 0;
}
|
什么是argc 和 argv?
argc 和argv 是c或c 中用来将命令行的参数传递给main函数。
argc 是argv的指针数
变量命名为argc (argumentcount) 和 argv (argumentvector) 是通用命名规则
5. 在projectexplorer 视图中, 右键点击helloworld_gcc 工程并选择 build 工程。
这将生成linux可执行文件和所需的支持文件。
debug 条目下的文件夹包含调试所需的额外文件。
在fixed virtual platform (fvp) model上调试linux程序。
当你创建了工程并编译了代码,启动调试器在ds-5提供的fixed virtual platform(fvp)运行程序。
在这个教程里,我们使用ds-5提供的fvp_ve_cortex-a9x4 。
创建ds-5 debug configuration 和连接fvp model
1. 在 ds-5菜单栏,选择run > debugconfigurations.
2. 在debug configurations 对话框中:a. 选择ds-5 debugger.
b. 点击new launchconfigurations 按钮。
这将创建一个新的ds-5调试配置,这将显示各种需要特殊设置的的选项,从而将您的应用程序加载到目标板中。
3. 在debugconfigurations 对话框中:
a. 创建一个新的配置选项。例如名字helloworld_linux_fvp.
b. 在connection t栏中, 选择arm fvp (installedwith ds-5) > cortex-a9x4 pre-configured to boot arm embedded linux >linux application debug > start gdbserver and debug target residentapplication。
默认情况,你的工作区相关路径是相关的host挂载点,这个位置用于目标板挂载区的可读写挂载点上。
c. 在 files 对话框,在 targetconfiguration > application on target 区域 输入/writeable/helloworld_gcc/debug/helloworld_gcc.
这个指定的helloworld_gcc 应用将会挂载在目标板的/writeable/helloworld_gcc/debug/目录下。
d. 在 files对话框中, 选择 load symbolsfrom file, 并选择工作目录。
e. 在open 对话框, 选择debug文件夹下helloworld_gcc 应用。f. 点击 ok
这个设置的路径下的文件包含需要的symbols 信息。
g. 选择debugger 栏, 选择debug from entry point。
h. 点击 debug 加载应用程序到目标板上,加载调试信息到调试器中。i. i在确认视图对话框出现时,点击 yes.
ds-5 连接fvp model,,加载linux 到 fvp model,,并显示连接状态到debug control 视图。应用程序加载到目标板上,停在entry point,准备进一步操作。
其他的视图将显示其他的相关调试连接信息。
例如:
· commands 视图将显示调试器的输出的信息,也可以使用这个视图输入ds-5 命令。
· c/c 编辑器视图显示c, c , or makefile的内容。当您编辑这些内容的时候他们就会更新。
· 反汇编视图显示了加载的程序在内存中的地址和汇编指令。
指示了你的程序在代码中停止的位置。在这个例子中,他停止在main() 函数中。这个视图显示了其他的信息使你能够了解代码的细节。
· memory视图显示了代码怎么存储在目标内存中的。例如,去查看程序中字符串 hello world 怎样存在内存中的。
1. 打开memory 视图。2. 在地址栏中输入, 0x00008440 并回车视图将会显示目标板内存中的内容。
3. 标记关键字符串 hello world查看他们ascii 编码值。
memory 视图显示代码的16进制值,旁边页显示相应的代码在内存中ascii 码值
· 点击 运行应用。
你可以在app console 查看应用输出情况。单步执行程序
使用debug提供的 控制功能实现单步执行程序。
-点击继续执行代码
-点击中断或者暂停执行的代码
-点击执行代码
-点击执行过该函数
-点击跳出执行的函数
-这是一个开关,选择这个是你想让以上控制执行汇编行还是c源码行。
断开调试连接
想要断开调试连接,你可以右键选择连接工程并选择selectdisconnect fromtarget 或者选择debug控制栏的连接选项,点击 断开连接。
本文来自凯发app-凯发k8官网科技,原文地址:
http://www.myir-tech.com/resource/575.asp,转载请注明出处。