AM5728调试经历(2)

这次的主要内容是在Linux上安装CCS6.1.3软件。首先可以从TI的官网上下载CCS的安装文件,可以选择在线安装或者下载全部安装包。

在终端解压缩安装包,使用如下命令(所有命令都是在超级用户权限下进行):tar -zxvf CCS6.1.3.00034_linux.tar.gz。
解压得到CCS6.1.3.00034_linux.bin文件,在bin文件所在目录下,在终端运行.bin文件。

然后安装过程就跟在Windows上一样。
这里要说明一下,笔者所用的linux为ubunt14.04,为64位操作系统,Linux系统也像Windows系统可以分为32位和64位,支持向下兼容。ccs的Linux开发环境只支持Linux32位系统。所以在Linux64位系统上安装ccs需要安装ccs运行时支持的32位库文件。可以分为一下几个步骤:
- 在Linux终端执行 apt-get update​
- apt-get install libc6:i386 libx11-6:i386 libasound2:i386 libatk1.0-0:i386 libcairo2:i386 libcups2:i386 libdbus-glib-1-2:i386 libgconf-2-4:i386 libgcrypt20:i386 libgdk-pixbuf2.0-0:i386 libgtk-3-0:i386 libice6:i386 libncurses5:i386 libsm6:i386 liborbit2:i386 libudev1:i386 libusb-0.1-4:i386 libstdc++6:i386 libxt6:i386 libxtst6:i386 libgnomeui-0:i386 libusb-1.0-0-dev:i386 libcanberra-gtk-module:i386 gtk2-engines-murrine:i386 unzip(ccs 运行时需要的32位库文件)
- 执行ccs安装执行文件 ./ccs_setup_6.1.3.00034.bin进行文件的安装,然后会弹出windows环境下的安装图形化界面。根据提示选择合适的安装选项知道finish
- 安装驱动。​进入CCS的安装目录执行sudo ./install_drivers.sh
- 插入debuger xds100执行指令lsusb就会看到​ Future Technology Devices International, Ltd Texas Instruments XDS100v2 JTAG / BeagleBone A3相关字样,表明驱动安装成功

到这里,CCS就已经安装成功了。


使用内置GCC工具链

在这里要说明一下,安装SDK_LINUX到linux环境即可。
本节将向您介绍SDK中内置的GCC工具链的位置。 您还将了解如何以及何时使用环境设置脚本来配置您的环境以使用此工具链。

  • 交叉编译器位于SDK中的linux-devkit目录中
  • 在linux-devkit目录中有许多为ARM内核预先构建的库
  • 系统源环境设置脚本配置以使用此交叉编译器和预构建的库
  • 示例应用程序如何使用环境设置脚本
    步骤​
  • 打开终端
  • 交叉编译器位于SDK安装目录的linux-devkit / sysroots / AragoLinux/ usr / bin目录中。 在终端窗口中输入以下命令,将machine,version和Arago Linux字段替换为您正在使用的目标机器和安装的SDK版本。 Arago Linux版本可能是x86_64-arago-linux。
cd /home/pc20170227/ti-processor-sdk/linux-devkit/sysroots/<Arago Linux>/usr/bin


-现在应该可以看到所有库(其中一些包含在其各自的子目录中)的列表,可作为SDK中的预构建包使用。
为了更容易执行交叉编译,并确保链接到正确的交叉编译库而不是主机系统库,环境设置脚本已经在linux-devkit目录中创建。 此脚本将配置许多标准变量(如CC)以使用交叉编译工具链,以及将工具链添加到PATH和库位置的配置路径。 要使用环境设置脚本提供的设置,您需要源脚本。 执行以下命令以生成环境设置脚本并观察CC变量的更改:

echo $CC
cd /home/pc20170227/ti-processor-sdk/linux-devkit
source environment-setup
echo $CC

您应该已经观察到,在环境设置脚本源代码之后,CC变量现在包含arm-linux-gnueabihf-gcc的值。 还发生了另一个更改,即标准提示从root @ ubuntu更改为[linux-devkit]。 此更改的目的是便于识别环境设置脚本的来源。 这一点很重要,因为有时你不想从环境设置脚本中获取源代码。 一个完美的例子是构建Linux内核时。 在内核构建期间,有一些应用程序被编译,这些应用程序将在主机上运行以辅助内核构建过程。 如果已经提供了环境设置脚本,那么标准CC变量将导致为ARM构建这些应用程序,从而导致它们无法在x86主机系统上执行。
如上所述,有时不适合提供环境设置脚本,或者您只想在特定构建过程中提供源代码,但不会影响默认环境。 在SDK中完成的方法是将项目Makefile中的environment-setup脚本源化,以便仅在构建过程中使用它。 要查看此信息,请执行以下操作:
1.关闭已打开的终端,因为它已经具有环境设置脚本。
2.打开一个新终端
3.运行如下指令

cd /home/pc20170227/ti-processor-sdk/example-applications/matrix-gui-browser-2.0
gedit Makefile.build

在Makefile.build文件中,可以看到我们设置了一个名为ENV_SETUP的变量,它指向环境设置脚本。 在qmake构建目标中,我们执行操作“@。$ {ENV_SETUP}”。 该行使用“@”符号,它在make中执行一个shell命令,而“。 符号,这是另一种获取文件的方式,在调用qmake2命令之前获取环境设置脚本。
要查看此工作,请使用以下命令交叉编译matrix-gui-browser项目:
关闭gedit,执行指令:make -f Makefile.build
请注意在输出中arm-linux-gnueabihf-g ++编译器在构建期间被调用。 还要注意,您的提示仍然显示sitara @ ubuntu这意味着,当环境设置脚本来源的构建,效果消失后,make完成。
要验证所构建的matrix_browser可执行文件是否是交叉编译的,可以使用以下命令:
file matrix_browser
您应该看到类似于以下的输出,显示该程序是为ARM编译的:
matrix_browser: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, not stripped

顶层Makefile

本节将讨论在处理器Linux SDK根目录中找到的顶层Makefile。 我们将讨论如何使用它,关键变量,然后构建一些目标。 您可以在Processor Linux SDK顶级Makefile中找到更多信息。
步骤:
1.打开终端,并且访问sdk目录
cd /home/pc20170227/ti-processor-sdk
2.顶层Makefile位于SDK的根目录中,还有一个名为Rules.make的补充文件。 Rules.make文件提供了顶层Makefile以及单个项目Makefile使用的变量和设置。 使用以下命令打开Rules.make文件:
gedit Rules.make
在Rules.make文件中,您将找到描述目标系统的变量,如PLATFORM和ARCH。 您还将找到指向SDK安装根目录,linux-devkit目录位置和交叉编译器的变量。
3.如何构建单个组件执行以下命令只构建u-boot和SPL引导加载程序。关闭当前回话,并且执行以下命令:
make u-boot-sp

了解开发板支持目录

本节将介绍处理器Linux SDK中的board-support目录的关键组件。

重点:
1.SDK验证预先构建的镜像可用
2.Linux内核附带了与用于SDK的配置匹配的配置文件
3.MLO来自u-boot
4.其他驱动程序位于extra-drivers目录中

步骤:
1.打开终端
2.进入 board-support directory路径
3.列出目录的内容,使用ls指令

4.列出prebuilt-images目录的内容。

5.这些镜像已经预编译并测试,可在目标设备上工作。 它们代表了一个已知的起点。
当构建Linux系统时,从已知正在工作的内核配置开始,然后添加和删除片段以优化系统通常是有帮助的。 在处理器Linux SDK中,提供了用于在prebuilt-images目录中构建预构建内核映像的内核配置。 可以使用以下命令看到此配置(用实际内核版本替换版本)。
ls linux-“kernelversion”/arch/arm/configs/tisdk_*
您应该看到一个格式为tisdk_”machine”_defconfig的文件。 您可以将此配置用作您自己的内核版本的基本配置。

6.在最新的SDK中,不再有单独的代码库来生成MLO引导加载程序。 相反,此引导加载程序现在是u-boot代码库的一部分,并使用u-boot的第二个程序加载程序(SPL)功能生成。 在上一个实验中,使用make u-boot命令编译u-boot。 如果使用以下命令查看u-boot目录的内容,您将注意到存在MLO文件和u-boot.img文件。 这些都是在u-boot构建操作期间构建的。

在上面的映像中,MLO和u-boot.img文件被突出显示。 这两个文件都是在单个u-boot构建操作期间创建的。 好处是,您现在可以共享相同的u-boot代码来构建初始引导加载程序,以及构建功能齐全的u-boot引导加载程序

AM5728调试经历(2)相关推荐

  1. AM5728调试经历

    AM5728调试经历(1) 由于本科生毕业设计的要求,研究生导师希望能够尽快的搭建出基于DSP的视觉处理平台,所以选择使用AM5728这样一款高性能的ARM+DSP,笔者是只菜鸟,博文中有些错误还请大 ...

  2. Code:blocks 调试经历,调试成功这其一

    Code:blocks 调试经历,调试成功这其一 小白游览了贴吧 ,又查了百度,终于能调试了 照吧友说的 不要有中文路径 cb里会显示乱码 cb跟其他编译系统不一样,可已单独执行文件,和其他部分编译软 ...

  3. 关于VCP(Virtual Com Port)拓展的调试经历(一)

    * The Overview 前日,接到老板部署的任务,将现有的基于STM32L151与L432的LoRaWAN程序中添加USB CDC(Communication Device Class)功能,并 ...

  4. 一次SSIS Package的调试经历

    SSIS Package的调试有时是一个非常艰难的过程,由于SSIS 编译器给出的错误信息,可能并不完善,需要程序员根据错误信息抽丝拨茧,寻找错误的根源,进而解决问题. 第一部分:SSIS提供的调试工 ...

  5. SJA1000的调试经历【转】

    去年年底的时候,一个公司给我打电话,问我最近有没有空,说要请我帮忙做一个基于CAN总 线通讯的东西,我去看了看,是一个数据采集系统,下面是一系列数据采集的智能板卡,上位机是 基于WINBOND的一块4 ...

  6. FM1288回声消除调试经历

    一.回声消除原理 http://blog.51cto.com/silversand/166095 二.FM1288配置下载 1.通过I2C模式下载 代码例子: 点击打开链接 I2C设备地址" ...

  7. 一次堆破坏的调试经历

    过程是这样的,在vc debug的过程中,突然弹出了一个assert窗口: Windows has triggered a breakpoint in cs.exe. This may be due ...

  8. 记一次GI安装失败(root.sh在第一个node上失败)的调试经历

    新拿到一个c'lu'ster,尝试安装GI(grid infrastructure),root.sh在第一个node上失败了.调试过程 第一步:首先查看log 在root.sh的log里 看到如下的错 ...

  9. 关于VCP(Virtual Com Port)拓展的调试经历(三)

    本以为上次调试就是终点,实在没想到.在做最终测试时发现节点无法进入低功耗模式,因为Debug模式与低功耗模式是互锁的,所以没有发现这个问题. 先说说现象,强制打开串口打印观察节点,发现原来是节点进入S ...

最新文章

  1. 习惯几乎可以绑住一切,只是不能绑住偶然。比如那只偶然尝了鲜血的老虎。...
  2. PAT1066 Root of AVL Tree (25)(AVL树)
  3. python基础学习中要懂的知识点:反射机制
  4. 剖析SQL Server执行计划
  5. eclipse连接hdfs操作设置用户名
  6. 计算机学的语数英大概是那些,职高如果选电子商务专业那是不是要学语数英
  7. [ZJOI2010]网络扩容[网络流24题]
  8. viewpage 去掉左右切换效果_ViewPager实现多页面切换以及动画效果
  9. 在Web应用程序中执行常见搜索场景的服务器端方法
  10. 移动互联网时代,学iOS开发好吗
  11. 倒数第N个字符串 (15 分)
  12. Linux实战教学笔记29:MySQL数据库企业级应用实践
  13. 《3D数学基础:图形与游戏开发》
  14. 【MODIS】MODIS数据的常用下载源
  15. 想定制Android系统实现改机?看完我也会了
  16. 2022南理工软件工程专硕考研经验
  17. beetlsql使用
  18. 基于Hadoop平台使用MapReduce统计某银行信用卡违约用户数量
  19. 三菱FX3U——SFC单流程的使用
  20. TOM企业邮箱,2021“重心出发”,聚焦企业邮箱安全办公!

热门文章

  1. 刘彬20000词汇03
  2. 程序员修仙之路-数据结构之设计一个高性能线程池
  3. 程序员 不经历风雨,怎么见彩虹
  4. 占内存少的java开发工具_Java所占内存中神奇的64MB
  5. c语言实现24位彩色图像二值化
  6. EWASM Gas Costs——gas 计算
  7. java_2017.9.18
  8. 树莓派安装Ubuntu20.04
  9. java ssm野生动物公益保护网站系统
  10. 如何用 Python 爬取需要登录的网站?