学习(踩坑)记录——新建工程

配置: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文件:


至此,一个完整的工程算是建立了。

原文地址:https://www.cnblogs.com/qsyll0916/p/10288986.html

时间: 2024-11-10 01:14:45

学习(踩坑)记录——新建工程的相关文章

Django学习踩坑记录

这是个补坑过程的记录.可补充. 1.启动django的时候报错 原因:端口被酷狗占用 解决办法:指定端口号 2.运行启动时报错 解决办法将C:\Windows\System32\drivers\etc\hosts文件中下面这名话放开:127.0.0.1 localhost 或者 将 HOST字段改为 '127.0.0.1'我的解决办法: 原文地址:https://www.cnblogs.com/LinxiHuang/p/9248091.html

unionId突然不能获取的踩坑记录

昨天(2016-2-2日),突然发现系统的一个微信接口使用不了了.后来经查发现,是在网页授权获取用户基本信息的时候,unionid获取失败导致的. 在网页授权获取用户基本信息的介绍中(http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html),unionid可以在第二步(https://api.weixin.qq.com/sns/oauth2/access_token)和第四步的2个接口中获得.其中,第四步的接口是

IDFA踩坑记录

IDFA踩坑记录: 1.iOS10.0 以下,即使打开"限制广告跟踪",依然可以读取idfa: 2.打开"限制广告跟踪",然后再关闭"限制广告跟踪",idfa会改变: 3.越狱机器安装开发证书打的包,读取的idfa正常: 4.越狱机器安装本地打的发布证书的包,读取idfa异常,第一次打开app读取的是一个错误的idfa,第二次打开会变成另外一个错误的idfa: 5.越狱机器安装Testflight的包,读取idfa异常,第一次打开app读取的是一

【Pysc2】Deepmind Pysc2 环境配置及其踩坑记录

1. 下载星际争霸II游戏 可以直接下暴雪战网,然后在战网内下载. 2. 下载Pysc2 cmd后在命令行输入 pip install pysc2 3. 下载sc2 cmd后在命令行输入 pip install sc2 4. 下载地图 https://github.com/ClausewitzCPU0/SC2AI 解压密码: iagreetotheeula (表示自己同意最终用户许可协议) 解压在Maps的文件夹,我是使用的暴雪战网下载的游戏,发现游戏文件夹里并没有Maps, 需要自己手动创建.

Linux Git 踩坑记录

Linux Git 踩坑记录 git cherry-pick 冲突解决 出现: error: could not apply xxxxxx(commit ID)... ***** hint: after resolving the conflicts, mark the corrected paths hint: with 'git add ' or 'git rm ' hint: and commit the result with 'git commit' 此时使用git status命令查

微信小程序之蓝牙 BLE 踩坑记录

前言 前段时间接手了一个微信小程序的开发,主要使用了小程序在今年 3 月开放的蓝牙 API ,此过程踩坑无数,特此记录一下跳坑过程.顺便开了另一个相关的小项目,欢迎 start 和 fork: BLE_MiniProgram API简介 微信小程序目前有蓝牙 API 共 18 个,其中操作蓝牙适配器的共有 4 个,分别是 wx.openBluetoothAdapter 初始化蓝牙适配器 wx.closeBluetoothAdapter 关闭蓝牙模块 wx.getBluetoothAdapterS

.NET CORE2.2 下 Ocelot+Consul服务发现踩坑记录

历史原因,笔者所在公司的项目目前还在使用 .NET CORE 2.2版本,在所有业务应用升级完成服务注册发现之后,最后剩下 Ocelot 网关服务升级.在升级过程中,遇到一些问题,记录此文,以便有相同情况的同学参考. 1. Ocelot 升级服务发现 根据官方文档 ,通过简单的添加配置,既可以将原有配置方式改为服务发现: 安装插件 Install-Package Ocelot.Provider.Consul 13.5.2,.Net Core 2.x 最后一个版本 配置服务 s.AddOcelot

vue2.0 踩坑记录之组件

- did you register the component correctly? For recursive components, make sure to provide the "name" option. 出现如上错误的原因大致有以下三点(我踩坑只踩到了这四种情况,如果还有 之后会更新) 1.未能正确的拼好components单词. 这是个低级错误,应该作为第一步排查的可能 2.定义子组件时没有在父组件的内部定义 子组件一定要在父组件中局部注册 3.局部注册的定义写在了实

CISCO配置文件的导出和导入(Timed out)问题 踩坑记录

起因: 我:这台交换机我要用. 武哥:不行,在测试,上面很多配置项都不能动! 我..... 后来武哥找了台3560交换机让我自己玩去:"拷贝一下交换机配置,就能用了" 使用工具:3CDaemon 大致流程: 1 开启3CDaemon,这样你的电脑就能作为一个tftp服务器了,监控udp 69端口 2 交换机配置文件拷贝到tftp上 #copy   源   目的: 输入tftp服务器地址 确定文件名(如果是交换机从tftp下载要输入文件名) ok 简单so 3 将tftp服务器上的配置文

java用毫秒数做日期计算的一个踩坑记录

错误示例: Date today = new Date(); Date nextMonth = new Date(today.getTime() + 30* 1000*60*60*24); println(today); println(nextMonth); Result:  Sat Sep 30 11:18:24 CST 2017 Sun Sep 10 18:15:37 CST 2017 代码说明:上面代码的目的是计算一个月后的日期,从结果发现明显是错误的(回到上个月去了) 原因分析:30*