您好,我想问下这个HCG生成的代码必须使用CCS project来使用吗?如果用CCS建立一个C++的工程,能不能使用HCG生成的代码呢?
另外,如何在CCS中配置建立一个C++的工程呢?具体应该如何操作?
Regards
yong
yong zhang2:
在CCS中选择建立C++工程时在project type中选择的是GNU Autotools,生成后控制台显示两个错误,Program “g++” not found in path 和 Program "gcc" not found in path.
如果选择project type中的Executable里面的工程,在右边ToolChains里面有两个选项,选择Microsoft Visual C++编译后还是会有错误,缺少kernel32.lib,添加这个库文件后还会有一些lnk2019的错误,无法解析的外部符号
想问下这个如果建立C++工程的话还需要装其他的什么东西吗?感觉现在使用编译器还得包含机器上原来的编译器之类的东西
Regards
yong
Jay:
回复 yong zhang2:
Hi yong,
即使你需要使用C++来写程序,在建立工程时还是需要建立CCS Project,而不是建立普通的C++ 工程。
Halcogen生成的代码都是C格式的,如果需要有C++ 来写程序的话,需要修改一下。可以把每个外设封装成一个类,把预先定义函数都作为成员函数。类的构造函数和析构函数需要手动添加,头文件也需要对应修改。
Regards,
Jay
yong zhang2:
回复 Jay:
Hi,Jay
如果单纯的使用CCS作为开发环境进行C++的开发的话还需要装什么插件么?
另外,之前做的一个C++工程,如果要结合HCG 的代码使用的话就只能把那些文件一个个的复制过来然后再去调用HCG的代码了么,这样工程量貌似很大啊。
您这列说的把外设封装成一个类指的是把HCG中生成的比如说can.c中的函数封装起来么?
Regards,
yong
yong zhang2:
回复 Jay:
另外需要向您咨询的是如果不需要使用芯片的某些功能,比如说不使用SCI模块,那在HCG中还是会生成相应的.c跟.h文件在程序中会使用到么?这样的话全部生成的文件都得做相应的改变吗?
如果按照您提供的例子改成CPP的文件,那么下次再使用HCG生成代码后是不是还需要再改一遍呢?
regards,
yong
Jay:
回复 yong zhang2:
Hi yong,
1. 你在Halcogen配置时,需要用到的外设模块把它使能,这样Halcogen就生成对应的.c文件, 但是.h不管是否使能都会存在。
2. 如果用Halcogen再次生成,那么会生成一个新的.c文件,不会覆盖改完的.cpp,但仍需要再改一遍。目前,Halcogen只能生成C文件。
Regards,
Jay
yong zhang2:
回复 Jay:
如果涉及到中断的话,将中断服务程序改成相应的cpp文件会不会影响系统正常的调用呢?中断函数这块我们自己配置只是在HCG中给了中断的向量表,这个程序内部具体调用会不会因为改成cpp而受影响呢?
还有就是以太网这部分程序用到lwip的协议栈,这块好像不太可以改成cpp的吧?
regards,
yong
Jay:
回复 yong zhang2:
Hi yong,
中断不会有影响。
以太网部分可以不用改,因为C++是兼容C的,也就是说,在C++ 的工程里,所以C定义的函数都可以正常使用。
Regards,
Jay