软件开发从入门到专家

+荐课 提问/讨论 评论 收藏
  • 本课程为精品课,您可以登录eeworld继续观看:
  • 软件开发从入门到专家
  • 登录
  • 课程目录
  • 相关资源
  • 课程笔记

大家好我是德州仪器无线连接技术部门的现场应用工程师Barbara Wu 这里我要给大家介绍德州仪器新一代的低功耗蓝牙芯片 软件开发的相关知识 之前我们介绍过芯片架构工作原理 以及软件开发包 这一讲我们深入来了解一下软件开发 看看如何从快速的开发入门 到软件专家 软件有存放于ROM的代码 和基于flash的代码两部分组成 在cc2640上ROM里面存放TI RTOS内核 和部分的BLE协议栈 在cc2640R2F上更多的BLE协议栈被放进了ROM 这些放在ROM资源是不需要占用flash的空间的 因此cc2640R2F提供了更大的flash空间 供上层应用程序使用 在flash部分上层应用程序 BLE的profile TI RTOS 都是以源码的方式提供 BLE的protocol协议栈 以库的方式提供通过API函数接口访问 可以使用CCS或IAR 作为编译器开发来调试软件 在编译的时候 应用程序和BLE协议栈 是分开编译的 这样的好处是在无限升级软件的时候 可以根据需要选择只升级应用程序的部分 或者同时升级应用程序和协议栈 从而提高了无限升级操作的效率 降低整个应用系统的使用功耗 协议栈和上层应用程序都基于TI RTOS开发 TI RTOS是一个实时操作系统 支持抢占式的多线程 只有确定性的调度机制 使用专门为低功耗而定制的内核 可以零延时配置和响应中断 包括各种定时器 软件层的时钟 精度可以达到微秒级别 同时TI RTOS还集成了非常多的软件功能模块 比如用于不同任务之间调度的信号量 外设接口的驱动程序 以及对电源功耗管理的模块 上层应用程序可以直接调用这些模块 相对应的API函数接口 从而简单快速的完成对应的操作 而不需要另外再重新编程 特别是功耗管理模块 已经在BLE协议栈中集成 上层应用程序只需要完成自己的应用需求开发 系统会自动根据软件应用情况 控制整个设备运行在能够满足应用的最低功耗状态 在软件开发方面 TI提供了非常丰富的例程以及多样的上手方式 从左到右不同的开发方式 涵盖了从简单版到进阶版的所有阶段 首先最简单的CCS Cloud加example的方式 不需要预先安装任何软件开发包 只需要一块launchpad和可以连接到互联网的浏览器 在浏览器中打开云服务器中的内存 可以再现编译例程或者烧录你的launchpad 对于需要的例程 也可以直接从源服务器下载到本地 进阶版的SimpleLink Academy 是一个学习例程的非常好的工具 在这个工具中基于几个典型的例程 分别完成不同的功能任务 工具列出了完成不同的功能需要做的代码的修改 并解释为什么需要做这样的修改 以及不同语句的作用 最后还有互动问答帮助理解 在整个step by step的教学过程中 用户可以学习到TI RTOS 自定义BLE的服务开发 Ble网路处理器 sensor controller等等非常有用的BLE相关知识 如果简单版的CCS Cloud 和进阶版的SimpleLink Academy 都满足不了你 你可以选择最难模式 直接使用BLE协议栈开发包和GitHub 协议栈开发包包含了对SIG定义好的 一些通用的BLE profile的使用实例 同时也包含了很多TI自定义BLE profile的例程 可以很容易的基于这些例程修改 或者搭建自己的BLE设备应用程序 同时github上TI还提供了一些不断添加在开发包上 包含新的功能的例程 比如组成设备的一体化 网络处理器的应用 从窗口打印应用调试信息等功能 都是最先从github上发布的 下面我们就以project zero例程为例 为大家介绍如何使用CCS Cloud 首先打开Chrome浏览器 打开链接 找到cc2640R2 launchpad 在开发版的目录下找到project zero 这个时候我们可以看到project zero的 Introduction已经在界面上显示 在界面上我们可以看到project zero App Project in Resource Explorer 打开这个 就直接打开了project zero例程 点击import to CCS Cloud 就可以导入工程到CCS Cloud 在这个地方看到project zero 已经被导入了 在这里我们已经连接了cc2640R2 Launchpad开发版到电脑上 所以直接点击Run 就可以再现编译工程和烧录开发版 这个时候看到已经在烧录开发版 这个时候烧录已经完成 board reset已经完成 那么如何使用这个软件呢 我们可以在Resource Explorer里面 找到对这个例程的说明 那么说明有提到在这个烧录完成开发版之后需要一个窗口调试工具 所以我打开一个调试工具 设置串口 然后我reset一下板子 这个时候可以看到 板子是已经进入了一个广播的状态 那么这个其实和我们的这个guide里面 显示的是一样的 进入广播状态 所以这个时候我拿出手机 在guide里面 它有说如何把project zero 连接到手机 所以TI有提供一个 叫Sensor Tag for IOS的app 那么我现在就打开一个这样的app 然后按照操作去连接 在连接上之后 可以看到log再根据实时的更新了 那么具体要做怎么样的操作呢 实际上可以看到它这个project zero里面 只有三个service 那么这个service其实在我们的文档里面也是有介绍的 它有说 对应的有三个service service下面会有不同的属性值 比如LED0对应的是111这个UID 那么我对它进行读或者写的操作 应该就可以对它控制开和关 那么回到我们的窗口调试工具 看一下 首先我读一下 LED0现在是一个零的状态 然后我要对它进行写 把它写成01 这个时候就可以看到 板子上面的灯亮了 因为这个地方我们只能看到log 所以其实在我这边的时候板子已经亮了灯 但是从log里面其实已经打出来了 这个灯确实是点亮了 那同样的我们也可以做相应的操作映射开发板上的按键操作 以及在手机和开发板之间进行 数据的收发 project zero是一个非常好的基础程序 从log信息我们可以轻松的在代码里找到对应的位置 很容易上手的一个软件开发 下面进入进阶版的simplelink Academy 前面有介绍这是一个非常棒的学习例程的工具 这个工具可以通过在线的方法访问 也可以下载安装本地文件 安装之后我们就可以直接在ccs里面访问到 SimpleLink Academy里的例子和任务 是根据cc2640/cc2640r2软件的发展 不断更新的 今天我们同样可以在academy中 找到基于project zero的教程 比如我打开了SimpleLink Academy 在BLE的最基础的教程之中 我们可以看到project zero如何使用 包括如何建立自己的环境 需要什么样的开发版 需要下载什么样的开发包 然后有介绍我们刚才介绍过的 用CCS Cloud的方法 然后编译 发现不同的service 如何使用notification 到最后如何自定义自己的应用程序 除了基于BLE协议栈的教程 SimpleLink Academy同样也提供了对TI-RTOS教程 通过课程可以了解到 TI- RTOS的几个重要组成部分 例如任务 信号量 中断 处理流程等 在完成了基础教程之后 SimpleLink Academy又提供了进阶版的任务 例如如何用SIG组织发布的 使用图形界面的开发工具 Bluetooth Developer Studio 来定义和开发自己的BLE协议 又例如 如何添加红外信号的驱动 这些进阶的教程可以帮助你一步步的深入学习 更多的平台知识在完成了进阶版的教程之后 相信已经可以满足大多数的应用开发需要 但是SimpleLink Academy还开设了提高班 在提高班里你可以学习到更多的工具的使用 帮助你完成一些定制化的 或者说有差异性的功能的开发 比如如何使用Sensor Controller 进一步优化系统的功耗 如何把cc2640只作为一个BLE的网络传输芯片 外部添加一个MCU来完成更加复杂的应用需求等等 相信大家可以通过SimpleLink Academy 快速从入门到专家 TI还提供了很多PC端的调试工具 来帮助大家调试自己的程序 BTool和BLE Device Monitor 都可以在PC端模拟一个BLE Central设备 BTool可以测试所有可能的BLE操作 更偏向于对BLE协议栈的调试 而BLE Device Monitor 提供更加直观和图形化的界面 主要偏向于对自定义BLE服务 和属性的调试 Packet Sniffer是一个分析空中数据包的程序 Flash Programmer是烧录工具 通过三讲的介绍希望大家对cc2640 Cc2640R2F的开发有一些直观的了解 如果需要更加详细和具有针对性问题的解答 可以通过TI官方网站获取帮助 这里列出几个非常有用的TI官网连接 在TI BLE官网界面 我们可以很容易的下载到芯片的数据手册 操作指导文档 应用文档 软件开发包并购买TI的开发版 TI的支持社区有英文和中文两个版本 分别有全球的TI工程师 和中国本地的工程师为你的特定问题提供技术支持 欢迎大家通过访问这些TI技术网站 获得更多的关于TI BLE型芯片的信息和支持 谢谢大家的时间
课程介绍 共计3课时,32分4秒

CC2640R2F软件速成

蓝牙 直播 CC2640

带领您了解CC2640R2软件开发,从熟悉您的第一个CC2640R2F例程到编写差异化定制应用,帮助您从入门到专家一步到位。

推荐帖子

有关TI蓝牙官方技术群建立
考虑到论坛TI的蓝牙活动正在进行,为了方便大伙技术交流,到时想交流蓝牙技术和参加活动的技术朋友都加入到303514407[backcolor=rgba(255, 255, 255, 0.2)]这个蓝牙技术群。 [ 本帖最后由 wateras1 于 2013-11-21 10:53 编辑 ]...
wateras1 无线连接
C6455 UDP sendto发送,数据超过1500bytes无法发送报错EMSGSIZE,请问是什么原因
DSP使用的是C6455,NDK版本较老为v1.91,CCS 版本为v5.4,UDP的发送与接收缓存都配置成立最大32K 调用sendto发送数据时,数据长度超过1500就无法完成发送,错误为EMSGSIZE 通常UDP socket在发送大数据量的时候,不是也可以分包发送的嘛?为什么会出现上述错误,请指教 ...
雨晨mouse TI技术论坛
请教5402程序空间问题
我的程序空间是大于64k的,但是我发现好像5402只能在第0页里运行,不能自动转换到第一页,但程序在64k至128k时候它的地址线A16好像一直都是低,是不是要像访问高页的程序空间还有其他的东西要设置阿, 急用,在这里先谢谢了 我的配置: SRAM的A0~~A17和DSP的A0~~A17直接相联, SRAM的CS和DSP的PS相联, SRAM的we和DSP的RW相联, SRAM的OE和...
xzhy 微控制器 MCU
1MHz方波二倍频
请问,如何使1MHz信号二倍频,有没有直接的芯片可以实现,因为功能不复杂不想用锁相环+分频器实现 ...
sudongpo2018 模拟与混合信号

hawkier

学习了,视频挺棒的

2020年06月24日 14:56:14

shakencity

学习学习带领您了解CC2640R2软件开发,从熟悉您的第一个CC2640R2F例程到编写差异化定制应用

2020年01月04日 09:48:30

zx1988ZX

以学习,不错,看看吧!

2019年09月06日 13:39:30

大明58

继续来学习学习了。。。

2019年07月19日 13:58:38

zwei9

学习学习

2019年06月13日 10:17:36

hellokt43

继续来学习学习了。。。

2019年05月25日 09:30:23

taozhihua1314

学习学习了

2019年03月18日 23:50:39

song430

继续来学习学习了。。。

2019年03月17日 10:18:13

59477cq

不错

2019年01月12日 10:03:59

59477cq

不错

2019年01月12日 10:03:59

分享到X
微博
QQ
QQ空间
微信

EEWorld订阅号

EEWorld服务号

汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新文章 手机版

站点相关: EEWORLD首页 EE大学堂 论坛 下载中心 Datasheet 活动专区 博客

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved