AM5728调试经历(3)
此次主要讲述将TI-processor-SDK的历程导入到CCS中。
- 本将向您展示如何使用Linux命令行处理示例应用程序。
1.首先使用终端访问历程所在位置。
root@ubuntu:/home/pc20170227/ti-processor-sdk/example-applications/arm-benchmarks-version
2.然后可以使用以下命令
make clean
make
3.构建完成后,您可以使用file命令验证可执行文件是否为ARM设备构建。
arm-benchmarks-version
如前所述,输出列出dhrystone可执行文件是针对ARM设备的:
dhrystone/Release/dhrystone: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, not stripped
4.当使用CCS来构建这些项目时,各个基准测试也可以使用CCS / Eclipse项目文件。 要查看这些项目文件,请执行以下操作:
cd dhrystone
ls -la
5.您应该会看到.project和.project之类的文件。 这些文件允许使用CCS构建dhrystone项目。
将应用程序导入CCS
重点:
1.示例应用程序具有可导入的现有CCS / Eclipse项目文件。(实现之前的步骤即可以实现)
2.CCSv6用于编译示例应用程序
步骤:
1.打开CCS并且选好workspace
2.从CCSv6主窗口中选择:file->import->General -> Existing Projects into Workspace。
3.点击next,在Import Projects界面选择Browse。
4.在打开的文件浏览器窗口中导航到SDK INSTALL DIR/example-applications 路径,然后点击OK。
5.选择要导入的项目。 点击finish。
6.现在可以看到Project Explorer选项卡中列出的所有项目。
7.为了构建其中一个项目,请使用以下步骤。 对于这个例子,我们将使用mem-util项目。
选择project - >build project以构建突出显示的项目。
展开mem-util项目并查看Debug或Release目录中的mem_util.elf文件(具体取决于使用的构建配置)。 应该看到标记为[arm / le]文件的文件,这意味着它被编译为ARM。
同时,也可以使用Project - > Build All在Project Explorer中构建所有项目。
建立一个新的CCS工程
本节将介绍如何在CCS中创建一个新项目,并对ARM设备进行交叉编译。
步骤:
1.从主CCSv6窗口中选择File -> New -> Project
2.选择C/C++ -> C Project ,点击next
3.在对话框中设置以下值:
Project Name: helloworld
Project type: Executable -> Empty Project
Toolchains: Cross GCC
设置完成后点击next。
4.勾上debug和release,点击next。
5.在command对话框中设置以下值:
Tool command prefix: arm-linux-gnueabihf-
Tool command path: /home/pc20170227/ti-processor-sdk/linux-devkit/sysroots/Arago Linux/usr/bin(使用browse即可找到)
6.点击finish,然后加入source文件。
在CCSV6窗口点击:File -> New> Source File,在源文件对话框中将Source file设置为helloworld.c
然后点击finish即可以开始写code了。写完code后,在build project即可。生成的可执行文件可以在Debug目录中找到。
配置Remote System Explorer (RSE)
现在我们已经编译了helloworld项目,在开发板上执行内置的结果是非常有用的。下面将介绍如何使用远程系统资源管理器(RSE)来传输文件。 实际的传输步骤将在下一节中介绍,但在传输完成之前必须先配置RSE。 有关详细信息可以参考
http://processors.wiki.ti.com/index.php/How_to_setup_Remote_System_Explorer_plug-in
步骤:
1.点击Window -> Perspective -> Open Perspective -> Other
在菜单窗口中选择Remote System Explorer。
点击ok,将看到RES已经打开。
2.以下步骤将创建一个到目标设备的新的RSE连接。
点击 File -> New -> Other
选择 Remote System Explorer -> Connection.
点击next选择linux。
点击next。
3.在Remote Linux System Connection窗口:
Host name: 输入开发板的IP地址。
Connection name:默认值与主机名相同,但这可以更改为更可读的值,例如“my target evm”
点击next。
4.选择ssh.files以使用安全Shell协议进行通信。
next,选择processes.shell.linux使用shell来处理远程系统上的进程。
next,ssh.shells将使用shell命令。
点击finish即可完成RSE的配置。
5.当启用RSE视图时,您可能会关闭C / C ++视图。 为了获得该视图,您可以浏览您的项目执行以下步骤:
1.Window -> Show View -> Other
2.C/C++ -> C/C++ Projects
点击ok即可。
6.完成新建连接向导并打开“RSE”后,必须配置新连接以与目标EVM通信。
右击 My Target EVM,选择Properties。在HOST窗口下,改变user id为boot,然后点击ok
7.右击My Target EVM选择connect,直接选择ok,然后选择yes即可。
通过RSE转移文件
步骤:
1.打开Sftp Files -> Root -> /home -> root.
2.使用选项卡切换到C / C ++视图。 展开helloworld在Debug目录中查找helloworld可执行文件。
3.copy后paste到Files -> Root -> /home -> root目录下。(现在应该已经将helloworld可执行文件转移到目标设备。)
4.为了执行刚刚传输的helloworld二进制文件,需要打开终端到目标设备。 或者,您可以使用其他终端/控制台(即Teraterm,minicom等)。 由于CCS提供了一个内置的权限,所以我们使用那个。 以下步骤将涵盖在目标设备上打开新终端。
5.使用以下设置配置终端(确保使用目标的IP地址):
6.现在terminal就已经被打开了。要运行helloworld应用程序,请在终端窗口中使用以下命令:
chmod +x helloworld
./helloworld
使用CCS和GDB进行调试
之前已经介绍了使用CCS来创建项目,为ARM构建源代码,将可执行文件传输到目标文件,并运行该可执行文件,如果可执行文件出现问题,那么知道该怎么办。 在本节中,将介绍如何配置CCS来调试helloworld应用程序。
步骤:
1.首先,使用CCS中的终端在目标上启动gdbserver:gdbserver :10000 helloworld
2.切换到C / C ++项目视图,右键单击Debug / helloworld可执行文件并选择Debug As -> Debug Configurations
3.右键单击C / C ++远程应用程序并选择New。
4.默认情况下,您将创建一个helloworld配置。 将名称更改为helloworld Debug。
5.在主选项卡上,添加绝对文件路径以指向/ home / root / helloworld。 如果连接选择为local,请将其更改为My Target EVM
6.切换到debugger并且做以下修改:
GDB debugger: /home/pc20170227/ti-processor-sdk/linux-devkit/sysroots/Arago Linux/usr/bin/arm-linux-gnueabihf-gdb
GDB command file: ti-processor-sdk-linux/.gdbinit
(如果使用文件浏览器,则需要右键单击并选择Show hidden files以查找.gdbinit文件。)
7.现在点击使用GDB(DSF)旁边的“Select Other…”
8.选择 “manual configuration”
9.在connection选项卡设置ip地址为目标板ip地址。
10.选择Apply,然后debug,您的系统应该停在主函数的第一行。 您现在可以使用窗口顶部的控件来控制调试会话。