工具/软件:Code Composer Studio
我遇到的问题与 https://e2e.ti.com/support/development_tools/code_composer_studio/f/81/t/60.4509万相同。
不要认为它与内核相关,但某些系统工具已更新。
内核版本:
uname -a
Linux SMP.0-81-lowlatency #104-Ubuntu 4.4 抢占世界时间2017年6月14日09:42:54 x86_64 x86_64 x86_64 x86_64 GNU/Linux
已重新安装ccs7:
rm -rf .ti
rm -rf ti
已安装最新的CCS7 7.2 .0.0.0013万
在命令提示符下:
~/ti/ccsv7/eclipse$./CCStudio
分段故障(内核转储)
然后尝试通过命令行执行xdctools:
TI/xdctools_3_50_02_20_core/xs.x86_64 U:错误:无法创建会话管理器错误:无法创建会话管理器:找不到JVM;尝试将环境变量'XDCTOOLS_JAVA_HOME'设置为包含64位Java运行时环境(1.7 或更高版本)的任何目录的绝对路径;例如,'/usr/a/jvm-a/Openlib-java/7
因此:
导出XDCTOOLS_JAVA_HOME=$JAVA_HOME
这是:
XDCTOOLS_JAVA_HOME=/usr/lib/jvm/java-8-oracle
然后从makefile中剪切并粘贴到命令行:
"/home/tcmichals/ti/xdctools_3_50_02_20_core/xs" xdc.tools.configuro configPkg -t gnu.targets.arm.a9F -p ti.platforms.evmAM437X -r版本-c "/home/tcmichals/ti/gcc-arm-none-eabi-4_9-2015q3"-
分段故障(内核转储)
这确实奏效。
/home/tcmichals/ti/xdctools_3_50_02_20_core/xs
认为问题出在JRE中编译的所有TI工具集。
我有一个strace dump显示它正在调用JRE:
execve ("./CCStudio",["./CCStudio"],[/* 71个vars */])= 0
BRK (NULL) = 0x18b3000
ACCESS("/etc/ld.so.nohwcap",F_OK)=-1 ENOENT (无此类文件或目录)
mmap (NULL,8192,PROT_READ|PROT_WRITE,MAP_PRIVILE|MAP_ANONYMOUS,-1, 0)= 0x7ff783eb0000
readlink ("/proc/self/exe","/home/tcmichals/ti/ccsv7/eclipse"...,4096)= 41
ACCESS("/etc/ld.so.preloce", R_OK)=-1 ENOENT (无此类文件或目录)
open("/home/tcmichals/ti/ccsv7/eclipse/jre/lib/amd64/tls/x86_64 /libjsig.so",O_RDONLY|O_CLOEXEC)=-1 ENOENT (无此类文件或目录)
stat("/home/tcmichals/ti/ccsv7/eclipse/jre/lib/amd64/tls/x86_64,0x7fffe0834ce0)=-1环境(无此类文件或目录)
open("/home/tcmichals/ti/ccsv7/eclipse/jre/lib/amd64/tls/libjsig.so",O_RDONLY|O_CLOEXEC)=-1 ENOENT (无此类文件或目录)
stat("/home/tcmichals/ti/ccsv7/eclipse/jre/lib/amd64/tls",0x7fffe0834ce0)=-1 ENOENT (无此类文件或目录)
open("/home/tcmichals/ti/ccsv7/eclipse/jre/lib/amd64/x86_64 /libjsig.so",O_RDONLY|O_CLOEXEC)=-1 ENOENT (无此类文件或目录)
stat("/home/tcmichals/ti/ccsv7/eclipse/jre/lib/amd64/x86_64,0x7fffe0834ce0)=-1 ENOENT (无此类文件或目录)
open("/home/tcmichals/ti/ccsv7/eclipse/jre/lib/amd64/libjsig.so",O_RDONLY|O_CLOEXEC)=3.
....
futex (0x80d054,FUTEX_WAKE_OP_PRIVATE,1,1,0x80d050, {FUTEX_OP_SET,0,FUTEX_OP_CMP_GT,1})= 1
Futex (0x80d028,FUTEX_WAKE_PRIVATE,1) = 1
Futex (0x79.7254万,FUTEX_WAY_PRIVATE,3,NULL)= 0
Futex (0x79.7228万,FUTEX_WAKE_PRIVATE,1) = 0
-- SIGSEGV {si_signo=SIGSEGV,si_code=SEGH_MAPERR,si_addr=0x7fffbf6074a0}--
RT_sigprocmask (SIG_SETMasK,~[RTMIN RT_1],~[kill stop RTMIN RT_1],8)= 0
-- SIGSEGV {si_signo=SIGSEGV,si_code=SEGH_MAPERR,si_addr=0x7fffbf607fe0}--
++已被SIGSEGV (核心转储)+++杀死