因为我之前有个想法,就是成为RT-thread tricore的贡献者,因为RT-thread中正好缺少TC内核。但是有计划前需要先进行可行性评估。
我在官网学习了上传流程后,发现需要使用env环境,然后它的构建工具是scons。发现虚拟环境使用的编译器tool文件夹下没有hightec。所以在scons官网学习了下如何自建工程,使用外部编译构建。最简单的就是gcc体系-c -o的,那么我想hightec编译器tricore-gcc应该很容易就可以用起来。
结果验证了不行,需要lisence。由于scons不是应用程序,我理解为是python37的一个壳。所以访问调用外部编译器估计有麻烦。直接在cmd命令中输入tricore编译命令,就可以正常使用的。那么我想成为RT-thread tricore内核的贡献者是不可能了。
image.png
既然学习了scons,总是希望能让其起作用,并且我要验证下能否自己构建环境,于是想到了CCRH在我本机可以用。虽然它不是gcc体系的,但是我仅简单使用,把命令定死,只要能用scons来构建外部工程,我认为本次学习就没有白花时间,不抛弃,不放弃继续尝试后,成功啦~
image.png
作为初学者,制作了如下构建代码,成功使用ccrh编译最小工程~
下一步我还是准备多学习下meson这才是当下主流的构建工具,WIN10上的cmake做交叉编译不方便,只支持一个ghs。
env = Environment( CC = 'G:/CC-RH/V1.07.00/bin/ccrh.exe',
CCFLAGS = '-Xcommon=rh850 -Xcpu=g3m -g -Xmsg_lang=english -Xobj_path=DefaultBuild',
TARGET_ARCH = 'arm',
HOST_ARCH = 'arm',
CCCOM = '${TEMPFILE("$CC $_MSVC_OUTPUT_FLAG -c $CHANGED_SOURCES $CFLAGS -g_line '
'$CCFLAGS ","$CCCOMSTR")}',
ASCOM = '$CC $CCFLAGS -c $CHANGED_SOURCES',
LINKCOM = 'G:/CC-RH/V1.07.00/bin/rlink.exe -subcommand=DefaultBuild\Apples.clnk',
#LIBPATH = 'G:/CC-RH/V1.07.00/lib/'
)
asmobj = env.Object(['boot.asm','cstart.asm'])
env.Program('main.c',LINKFLAGS = asmobj,CPPPATH = '.')
网友评论