学习(踩坑)记录——新建工程
配置:CCS8.3 + CC3200 + SDK1.3.0
踩了一下午的坑,才完整的建立了一个可以用工程。为了方面说明,后面直接使用SDK中的PWM例程中的文件。
1、红色框框为需要注意的地方
2、右键工程,选择添加文件,然后定位到SDK中的pwm例程中,选中三个文件,如下图:
然后点击打开,ccs会提示复制还是链接到工程中,如下图
这里需要注意:
(1)添加这个main文件之前需要删除创建工程时自动创建的main文件。
(2)如果是添加库文件的话,因为库文件我们一般不会去改动,所以选择link to files,链接该文件即可,如果是添加后面可能会改动的文件,那么就选择copy files。
这里因为我们添加的主函数和引脚配置函数,不属于库文件,所以最好选择copy。
3、接下来就是配置工程属性了,主要包括一下几个步骤,
(1)先创建一个路径变量,方便后面使用。
(2)CCS对于工程的配置有两种模式,debug和release,debug模式下生成的bin文件很大,大概是release模式下的10倍还要多(实测debug模式bin文件47k,release只有4k),而且我在debug模式下生成的bin文件下载到板子上之后无法运行,不知道怎么回事。
所以索性刚开始我就把模式改为release模式,不用默认的debug模式。修改方式如下图
(3)优化等级调为off,不需要优化。
(4)添加包含路径,这一步很重要,保证程序编译过程中编译器能找到正确的头文件。添加之后如下图
当然,如果工程中需要的文件比较多的话,为了便于管理,可能会自己新建文件夹,这时也需要把自己新建的文件夹路径包含进去。
(5)修改堆和栈的大小为0x800。
(6)添加链接器的查找路径
4、重要问题解决
经过上面的配置,一个工程基本上建立了,编译发现没有问题,在线调试也是妥妥的:
但是当想要下载到开发板上的时候,发现release文件夹中没有生成bin文件!
百度了很多,都说需要在build选项卡中添加一段代码
添加的代码具体内容如下:
"${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/armofd" "${CG_TOOL_ROOT}/bin/armhex" "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"
但是添加完了之后,重新编译还是没有生成bin文件!
通过对比标准工程的配置,发现了上面配置的一个疏忽的地方:预定义标志,如下图
那么为什么需要添加这个预定义标志呢?
通过搜索main文件,会发现主函数中有下面这段代码:
也就是说没有定义ccs的时候,这个函数得不到执行。进一步查看这个函数的功能:
用来为中断向量表分配地址!
那么这个函数的参数就应该是中断向量表了:
那么之前之所以无法生成bin文件,可能是因为没有中断向量表!
所以在工程属性选项卡中添加了CCS的预定义标志之后,再次编译,发现在release文件夹中出现了bin文件:
至此,一个完整的工程算是建立了。
虽千万里,吾往矣。