社区导航

 

搜索
查看: 2573|回复: 4

[原创] TI 狂欢+ simplelink CC2640R2开箱点灯

[复制链接]

2822

TA的帖子

8

TA的资源

版主

Rank: 6Rank: 6

发表于 2017-12-15 17:29 | 显示全部楼层 |阅读模式
本帖最后由 strong161 于 2017-12-18 10:26 编辑

这次TIsimplelink 优惠活动力度不如以前大,但是CC2640R2作为首款BLE5开发板还是非常值得一试的,相对于以前Launchpad 经黄黑色包装,新出的CC2640R2包装显然用料就用心多了,盒子也比以前的高上那么一个档次了,如图:
IMG_2214.JPG


Simplelink作为TI大力推广的高度代码复用平台,CC2640R2是也是首个得到支持的BLE无线MCU目测以后TI Simplelink平台将会是形成一个很强大的复用体系,最新的无线芯片全都进了simplelink平台。

IMG_2215.JPG

板子外观大家都看多了吧,也没有太多好说的,基本上是TI最新的launchpad样板,板子比以前的红板要细一些,颜色也更加亮,新的亮红看起来也很漂亮,最新的launchpad最大的特点就是user key全都由原来的底物板面上移到了现在的中间两边侧放,老的launchpad设计确实不太好,因为TI大部分板子都采用相同的塔式扩展接口,而扩展板对挡着下方的user key,而且很多扩展板上面没有提供key 这就不方便使用了,显然新launchpad设计师是考虑到了这个问题的。而新的板子也就方便使用了。Launchpad 用心程序还是很高的,从老的到新的都是母口在下方,可以提供板的支撑减少桌面存在导电物品导至的问题,但是也有一个问题就是所有的基本上大部分launchpad是放不平的,因为扩展口全在下方,调试器部分没有支撑点,话说不影响使用确实是一个尴尬的问题。
接下来,先按老规距来,开箱那就必须点个灯吧,在这点上得说说TI了,既然推出了CCS MAC版的,竟然没有mac版的sdk……搞的整个demo工程都麻烦。这就是你的不对了,sdk需要在windows安装后拷出来或是下linux版的。但是还有一些问题就是所有的协议栈工程都会有编译前处理,在CCS mac版导入工程后,需要先将协议栈工程中 前处理的lib_search,有的时候是 lib_search.exe 改成lib_search.py.
3.png
在windows下是使用是的exe,在linux和mac下就需要使用python了,所以安装CCS mac版需要先安装一个python2.7。然后将python安装路径放到lib_search.py第一行
lib_search.py在以下两个sdk文件夹中
simplelink_cc2640r2_sdk_1_40_00_45\tools\blestack\lib_search\
simplelink_cc2640r2_sdk_1_40_00_45\tools\ble5stack\lib_search\
windows sdk下面第一行是””在这行前面加入路径,方式如图:
我的安装路径  /Library/Frameworks/Python.framework/Versions/2.7/bin/python
但是安装路径根据个人习惯来的,会有不同,在终端窗口中输入命令:  which python
就可以知道安装路径。打开lib_search.py 第一次加入
#!/Library/Frameworks/Python.framework/Versions/2.7/bin/python
1.png
4.png
依据lib_search.py 文件内容可以看出要求是python2.7.3,这个是老版本了,像我安装的是python2.7.14,大部分人也不可能是2.7.3,所以将最后的version_control() 调用注释掉就行了。
2.png
5.png
这样sdk没有大的问题了,使用RTOS工程没有什么毛病了,但是如果使用BLE协议栈工程的,就需要修改一下编译前处理,因为windows下是在使用的exe处理的,所以需要按前面的图修改exe 为lib_search.py,当然咯也可以用别的方式
其实前处理就是用来链接需要用的到lib,会生成一个lib_linker.cmd文件
内容如下,
  1. /*
  2. * DO NOT MODIFY. This file is automatically generated during the pre-build
  3. *                step by the lib_search utility
  4. */

  5. "C:\ti\simplelink_cc2640r2_sdk_1_40_00_45\source\ti\blestack\blelib\ctrl\cc2640_hci_pxxx.a"
  6. "C:\ti\simplelink_cc2640r2_sdk_1_40_00_45\source\ti\blestack\blelib\ctrl\cc2640_ll_pxxx.a"
  7. "C:\ti\simplelink_cc2640r2_sdk_1_40_00_45\source\ti\blestack\blelib\hci_tl\cc26xx_hci_tl_none.a"
  8. "C:\ti\simplelink_cc2640r2_sdk_1_40_00_45\source\ti\blestack\blelib\host\cc26xx_att_pxxx.a"
  9. "C:\ti\simplelink_cc2640r2_sdk_1_40_00_45\source\ti\blestack\blelib\host\cc26xx_gap_pxxx.a"
  10. "C:\ti\simplelink_cc2640r2_sdk_1_40_00_45\source\ti\blestack\blelib\host\cc26xx_gatt_pxxx.a"
  11. "C:\ti\simplelink_cc2640r2_sdk_1_40_00_45\source\ti\blestack\blelib\host\cc26xx_l2cap_pxxx.a"
  12. "C:\ti\simplelink_cc2640r2_sdk_1_40_00_45\source\ti\blestack\blelib\host\cc26xx_profiles_pxxx.a"
  13. "C:\ti\simplelink_cc2640r2_sdk_1_40_00_45\source\ti\blestack\blelib\host\cc26xx_smp_pxxx.a"
  14. "C:\ti\simplelink_cc2640r2_sdk_1_40_00_45\source\ti\blestack\blelib\host\cc26xx_sm_pxxx.a"
复制代码
当然每个工程会成的不一样,这个是在windows下生成的,mac下生成也就不同,所以也可以通过直接先在windows下编译工程,生成cmd文件,然后把这个文件放到对应的目录里面,并把路径修改成mac下对应的路径就行了,然后把前处理给删除了。当然按前面的方法更好,每个工程只需要改一下前处理的所引用的应用程序。所以sdk里面有mac与linux下的py来处理,完全没有必要再搞个exe嘛,直接全都用python处理那工程不就能通用了嘛。Windows下也是支持python的嘛。
接下来咱们点灯吧,sdk不仅有协议栈也有驱动,鉴于协议栈还不是太熟悉,先用RTOS点个灯点。先导入 sdk \examples\rtos\CC2640R2_LAUNCHXL\drivers\empty\tirtos\ccs,空白工程。
然后修改 empty.c 建立两个闪灯任务,也当作RTOS基本学习
  1. /* For usleep() */
  2. #include <unistd.h>
  3. #include <stdint.h>
  4. #include <stddef.h>
  5. /* Driver Header files */
  6. #include <ti/drivers/GPIO.h>

  7. /* Board Header file */
  8. #include "Board.h"

  9. /*
  10. *  ======== mainThread ========
  11. */
  12. void *LED0_Thread(void *arg0)
  13. {
  14.     /* 1 second delay */
  15.     uint32_t time = 1;

  16.     /* Call driver init functions */
  17.     GPIO_init();


  18.     /* Turn on user LED */
  19.     GPIO_write(Board_GPIO_GLED, Board_GPIO_LED_ON);

  20.     while (1) {
  21.         sleep(time);
  22.         GPIO_toggle(Board_GPIO_GLED);
  23.     }
  24. }


  25. void *LED1_Thread(void *arg0)
  26. {
  27.     /* 1 second delay */
  28.     uint32_t time = 1;

  29.     /* Call driver init functions */
  30.     GPIO_init();

  31.     /* Turn on user LED */
  32.     GPIO_write(Board_GPIO_RLED, Board_GPIO_LED_ON);

  33.     while (1) {
  34.         sleep(time);
  35.         GPIO_toggle(Board_GPIO_RLED);
  36.     }
  37. }
复制代码

然后打开 main函数所在文件 main_tirtos.c
加入两个任务放到原来的任务后面。

  1.     retc = pthread_create(&thread, &attrs, LED0_Thread, NULL);
  2.     if (retc != 0) {
  3.         /* pthread_create() failed */
  4.         while (1);
  5.     }

  6.     retc = pthread_create(&thread, &attrs, LED1_Thread, NULL);
  7.     if (retc != 0) {
  8.         /* pthread_create() failed */
  9.         while (1);
  10.     }
复制代码
好吧两个灯一起闪了。没有太动脑子,晚些再搞点复杂些的,把协议栈给加上。
IMG_2216_clip.gif
111.png
11.png


此内容由EEWORLD论坛网友strong161原创,如需转载或用于商业用途需征得作者同意并注明出处







此帖出自无线连接论坛


回复

使用道具 举报

791

TA的帖子

161

TA的资源

管理员

Rank: 13Rank: 13Rank: 13Rank: 13

发表于 2017-12-15 17:33 | 显示全部楼层
来拜读一下丝状的帖子。
写的真好,赞一个先!

点评

欢迎领导视察  详情 回复 发表于 2017-12-15 17:48


回复

使用道具 举报

2822

TA的帖子

8

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2017-12-15 17:48 | 显示全部楼层
高进 发表于 2017-12-15 17:33
来拜读一下丝状的帖子。
写的真好,赞一个先!

欢迎领导视察


回复

使用道具 举报

3386

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2017-12-15 20:41 | 显示全部楼层
来支持一下屎壮
So what......


回复

使用道具 举报

694

TA的帖子

2

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2017-12-23 11:21 | 显示全部楼层
我是来给队长送祝福的哈哈哈哈节日快乐!  提前祝双旦快乐!
Hello astroturfers


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/7 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-6-1 21:06 , Processed in 0.198269 second(s), 26 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表