使用DS5 进行Linux应用开发.docx
《使用DS5 进行Linux应用开发.docx》由会员分享,可在线阅读,更多相关《使用DS5 进行Linux应用开发.docx(14页珍藏版)》请在冰豆网上搜索。
![使用DS5 进行Linux应用开发.docx](https://file1.bdocx.com/fileroot1/2022-11/23/55927e67-46fd-4318-adf2-dada35c4f010/55927e67-46fd-4318-adf2-dada35c4f0101.gif)
使用DS5进行Linux应用开发
使用DS-5进行Linux应用开发
版本信息
此教程主要讲解创建一个简单的“Helloworld”程序,然后加载到DS-5提供的Cortex-A9 的固定虚拟平台(FVP),在平台上运行嵌入式Linux系统。
前期准备
此教程需要您已经安装ARMDS-5,并安装了license,如果没有,请学习GettingStartedwithARMDS-5安装DS_5并获取License。
创建简单的helloworld的Linux程序
在DS-5中创建一个Linux的C语言程序:
1.创建一个新的C工程并使用DS-5自带的GCC编译工具链。
2.配置好DS-5的GCC编译工具链的编译器和链接器,生成与FVP中ARM嵌入式Linux系统对应的编译选项。
3.创建源文件并编译,生成相应的应用程序。
创建新工程
1.打开DS-5软件,在DS-5的工具栏中选择SelectFile>New>CProject,弹出相应的C语言工程对话框。
2.在C语言工程对话框中:
a)在工程名栏,输入HelloWorldGCC作为工程的工程名;
b)在Projecttype中选择Executable>EmptyProject;
c)在Toolchains选项中,选择GCC4.x[arm-linux-gnueabihf](DS-5builtin)选项;
d)点击Finish创建一个HelloWorld_GCC的C语言工程。
你可以在ProjectExplorer中查看建立的工程。
配置新工程相关设置
1.在ProjectExplorer视图中,右键HelloWorld_GCC工程,选择Properties;
注意:
你也可以通过DS-5的工具栏来打开project的properties选项,在主工具栏中选择Project>Properties;
2.选择C/C++Build>Settings>ToolSettings对话框;
a)你需要特定的相关的选项,在GCCCCompiler4[arm-linux-gnueabihf]>Miscellaneous>Otherflags:
i.DS-5v5.21.1和以前的支持软浮点文件系统。
输入:
-marm-march=armv4t-mfloat-abi=soft
ii.DS-5v5.22及以后的版本支持硬浮点文件系统,输入:
-marm-mfloat-abi=hard
这些标志指示GCC编译器编译生成二进制文件与特定的架构和文件系统相兼容。
更多关于ARMGCC编译器的信息和编译选项请参照,请看:
http:
//gcc.gnu.org/onlinedocs/gcc/ARM-Options.html
b)在HelloWorld_GCC工程的配置对话框,点击OK应用此设置并关闭对话框。
生成源文件并编译工程
1.在ProjectExplorer视图中,右键单击HelloWorld_GCC工程并选择New>SourceFile;
2.在新的源文件对话框中,输入文件名HelloWorld_GCC.c;
3.点击Finish完成创建,打开文件并编辑。
源文件也可以在在ProjectExplorer视图中查看,在HelloWorld_GCC中。
4.添加下列代码在新文件中,使用快捷键CTRL+S保存。
#include
intmain(intargc,char**argv)
{
printf("Helloworld\n");
return0;
}
什么是argc和argv?
argc和argv是C或C++中用来将命令行的参数传递给main函数。
argc是argv的指针数。
变量命名为argc(argumentcount)和argv(argumentvector)是通用命名规则。
5.在ProjectExplorer视图中,右键点击HelloWorld_GCC工程并选择Build工程。
这将生成Linux可执行文件和所需的支持文件。
Debug条目下的文件夹包含调试所需的额外文件。
在FixedVirtualPlatform(FVP)上调试Linux程序
当你创建了工程并编译了代码,启动调试器在DS-5提供的FixedVirtualPlatform(FVP)运行程序。
在这个教程里,我们使用DS-5提供的FVP_VE_Cortex-A9x4。
创建DS-5DebugConfiguration并连接FVPModel
1.在DS-5菜单栏,选择Run>DebugConfigurations;
2.在DebugConfigurations对话框中:
a)选择DS-5Debugger;
b)点击Newlaunchconfigurations按钮。
这将创建一个新的DS-5调试配置,这将显示各种需要特殊设置的的选项,从而将您的应用程序加载到目标板中。
3.在DebugConfigurations对话框中:
a)创建一个新的配置选项。
例如名字HelloWorld_Linux_FVP;
b)在Connection栏中,选择ARMFVP(InstalledwithDS-5)>Cortex-A9x4pre-configuredtobootARMEmbeddedLinux>LinuxApplicationDebug>Startgdbserveranddebugtargetresidentapplication;
默认情况,你的工作区相关路径是相关的主机挂载点,这个位置用于目标板挂载区的可读写挂载点上。
c)在Files对话框,在TargetConfiguration>Applicationontarget区域输入/writeable/HelloWorld_GCC/Debug/HelloWorld_GCC;
这个指定的HelloWorld_GCC应用将会挂载在目标板的
/writeable/HelloWorld_GCC/Debug/目录下。
d)在Files对话框中,选择Loadsymbolsfromfile,并选择工作目录。
e)在Open对话框,选择Debug文件夹下的HelloWorld_GCC应用。
f)点击OK;
这个设置的路径下的文件包含需要的symbols信息。
g)选择Debugger栏,选择Debugfromentrypoint。
h)点击Debug加载应用程序到目标板上,加载调试信息到调试器中;
i)在确认视图对话框出现时,点击Yes;DS-5连接FVPmodel,,加载Linux到FVPmodel,,并显示连接状态到DebugControl视图。
应用程序加载到目标板上,停在entrypoint,准备进一步操作。
其他的视图将显示其他的相关调试连接信息。
例如:
·Commands视图将显示调试器的输出的信息,也可以使用这个视图输入DS-5命令。
·C/C++编辑器视图显示C,C++,ormakefile的内容。
当您编辑这些内容的时候他们就会更新。
·反汇编视图显示了加载的程序在内存中的地址和汇编指令。
指示了你的程序在代码中停止的位置。
在这个例子中,他停止在main()函数中。
这个视图显示了其他的信息使你能够了解代码的细节。
·Memory视图显示了代码怎么存储在目标内存中的。
例如,去查看程序中字符串HelloWorld怎样存在内存中的。
1.打开Memory视图。
2.在地址栏中输入,0x00008440并回车视图将会显示目标板内存中的内容。
3.标记关键字符串HelloWorld查看他们ASCII编码值。
Memory视图显示代码的16进制值,旁边页显示相应的代码在内存中ASCII码值
·点击
运行应用。
你可以在AppConsole查看应用输出情况。
单步执行程序
使用Debug提供的控制功能实现单步执行程序。
-点击继续执行代码
-点击中断或者暂停执行的代码
-点击执行代码
-点击执行过该函数
-点击跳出执行的函数
-这是一个开关,选择这个是你想让以上控制执行汇编行还是C源码行。
断开调试连接
想要断开调试连接,你可以右键选择连接工程并选择selectDisconnectfromTarget或者选择Debug控制栏的连接选项,点击
断开连接。