TI-RTOS
文章平均质量分 87
abatei
这个作者很懒,什么都没留下…
展开
-
基于TI-RTOS的CC2650DK开发(4)---DOGM128W-6 LCD显示
CC2650DK这块开发板最大的优点就是自带一块128*64像素的液晶显示屏,用多块板在室外做实验时可以脱离电脑,这是非常有用的。今天就来讲讲这块液晶的使用。当然,先上例子再详细讲解。需要注意,这块液晶所使用的驱动需要手动引入,插麻烦。打开CCS,选择菜单【Project】-->【New CSS Project】,弹出New CSS Project对话框:【Connection原创 2016-12-10 13:34:32 · 2533 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(12)---事件模块
4.2 事件模块事件为线程间的通信和同步提供了一种手段。它和Semaphores类似,除了它们允许你在等待线程返回之前可以指定必须发生的多个条件(“事件”)。事件实例和Semaphore一样使用“pend”和“post”调用。然而调用Event_pend()需附加指定等待哪个事件,调用Event_post()需指定提交的事件是哪个。注意:每次只有单个翻译 2016-12-19 09:31:08 · 3457 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(19)---Stacks(栈)和Heap(堆)
7.5 Stacks(栈)SYS/BIOS为硬件中断使用单个系统栈而为每个Task实例分配一个task栈。7.5.1 系统栈你可以配置系统栈的尺寸,它用于硬件中断和软件中断(如果Task不可用则用于Idle函数)。你可将系统栈尺寸设置为满足应用程序所需。见3.5.3节获取更多有关系统栈尺寸需求的信息。你可使用.stack片来控制系统栈位置。例如,下列配置声明将一翻译 2016-12-26 09:36:45 · 3272 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(20)---硬件抽象层
第8章 硬件抽象层8.1 硬件抽象层APIsSYS/BIOS为中断、缓存和定时器提供配置和管理服务。不同于诸如线程等其它SYS/BIOS服务,此模块直接面向设备硬件方面编程,并组成Hardware Abstraction Layer (HAL硬件抽象层)包。服务包括使用和禁用中断、中断向量插入、将多个中断复用到单个向量和缓存失效和回写,这些将在本章描述。翻译 2016-12-27 09:47:46 · 2339 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(26)--- LCD官方示例
CC2650DK自带的液晶显示屏,官方给出两个示例。之前做的示例由于不了解task,我把代码最简化,现在可以深入一些去学习了。所以先学前面的示例,再来学这个,会简单些。两个示例,两种不同的使用方法,下面一一道来。示例可从菜单【View】→【Resource Exploer Classic】里得到。Demo1:lcdSmartRF06EB_CC2650DK_7ID_TI_CC2650原创 2017-01-03 23:52:47 · 2298 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(21)---检测
第9章 检测本章描述用于检测目的的模块和其它工具。9.1 仪器概览很多可用于SYS/BIOS应用程序的检测工具都是由XDCtools模块和APIs提供的。参阅CDOC在线参考文档获取Assert、Diags和Error模块的详细信息。9.2 Load模块ti.sysbios.utils.Load模块报告系统线程的执行时间和负载信息翻译 2016-12-28 10:01:39 · 2056 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(22)--- 时间基准
附录 B 时间基准本附录描述SYS/BIOS函数的时间基准,解释了值的含义及它是如何获得的,使设计者更好地理解系统性能。应用程序通过在SYS/BIOS安装的BIOS_INSTALL_DIR\packages\ti\sysbios\benchmarks目录的源文件目录中生成并运行以下时间基准。B.1 时间基准本附录描述SYS/BIOS函数的时间基准,解释了值的含义翻译 2016-12-29 09:43:43 · 2065 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(23)--- 尺寸基准
附录C 尺寸基准本附录描述了SYS/BIOS尺寸基准统计。C.1 概览尺寸基准是一系列建立在彼此之上的应用。移动到表C-1,每个应用都包含之前应用的所有配置设置和API调用。所有的测试应用,默认情况下都包含常用的Hwi和Swi模块。反过来,这将为该模块提供所有相关代码,同时排除大多数其他非依赖模块代码应用程序分为三类:构造SY翻译 2016-12-30 09:05:39 · 945 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(27)--- 邮箱示例
本想用semaphore搞个简单的LCD示例,也就是按一个按钮,将按钮值显示在LCD上。但写的时候突然发现semaphore无法实现这个功能啊。因为要在一个task内显示按钮值,而按钮有5个,显示5个值,这时需要参数传递。但semaphore无法传递参数,其实用一个全局变量也可以实现参数的传递。赶紧找还有什么机制是可以传递参数的,邮箱不就是干这事的嘛!现在终于理解了,邮箱其实就原创 2017-01-06 23:42:13 · 2119 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(13)---门
4.3 Gates(门)Gates是用于防止并发访问代码关键区域的设备。各种门关于如何锁住关键区域的实现并不一样。线程可以被更高优先级线程抢占,一些代码段在被另一个线程执行前需要被一个线程执行完毕。使用代码改变关键区域的全局变量这样的普通应用需要通过Gate来进行保护。Gates通常用于禁用一些级别的抢占,如禁用task切换或甚至硬件中断,或用于二元翻译 2016-12-20 12:22:59 · 2307 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(24)--- 最小化应用程序的内存占用
本附录描述如何最小化SYS/BIOS应用程序的尺寸。D.1 概览本节对最小化SYS/BIOS基础应用的内存需求提供了一些窍门和建议。这是通过禁用操作系统中默认打开的功能、或通过减少特定缓冲的尺寸来实现的。大多数小窍门的描述仅限于内核配置的尺寸基准。本章最后一节展现了最小化内存需求的完整配置脚本。实际的尺寸基准是包含在SYS/BI翻译 2016-12-31 12:42:57 · 1533 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(29)---UART
有关UART,官网有一个例程uartecho。本篇文章先讲解官方例程,然后自己再做一个更复杂的。官网例程:uartecho_CC2650DK_7ID_TI_CC2650F128/* XDCtools Header files */#include #include /* BIOS Header files */#include #include /* TI-RT原创 2017-01-08 23:24:50 · 2571 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(30)--- Swi官方示例
官方示例中有一个专门针对Swi的例子,它演示了Swi的几种提交方法,基本针对Swi的几种提交方法写的程序,在读此程序之前请先阅读这篇日志。先上代码:/* XDC module Headers */#include #include /* BIOS module Headers */#include #include #include #include #inclu原创 2017-01-10 09:16:35 · 1720 阅读 · 1 评论 -
基于TI-RTOS的CC2650DK开发(18)---Memory(内存)
第7章 Memory7.1 Background本章处理静态内存配置(也就是内存映射和片放置)、缓存和栈。还提供了有关动态内存分配(运行时分配和释放内存)等相关信息。静态存储器配置涉及到可执行文件的“内存映射”,以及将代码和数据放置到内存映射中。内存映射由CPU和位于硬件板上的外部存储器区域内存在的内存区域组成。参考7.2节获取有关内存映射的详细信息。翻译 2016-12-25 13:03:43 · 2122 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(11)---信号量
第四章 同步模块4.1 信号量(Semaphores)SYS/BIOS在semaphores的基础上提供了一系列用于任务间同步和通信的函数。Semaphore通常用于协调访问一系列竞争任务间的共享资源。Semaphore模块提供的函数通过Semaphore_Handle类型句柄来操作semaphore对象的访问。参阅video introducing Semaphore翻译 2016-12-18 09:57:59 · 3321 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(3)---按钮的使用
关于按钮,TI公司有现成例子,只需将例子pinInterrupt导入CCS即可,以下代码是我在pinInterrupt基础上稍做修改,去掉异常判断,使得看上去更简单、轻松些。#include #include #include #include #include #include #include #include "Board.原创 2016-12-11 09:04:07 · 2217 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(5)---线程概览
再学下去就必须理解RTOS中的线程了,这是必须要跨过的坎,好在TI有详细的资料:《 SYS/BIOS(TI-RTOS Kernel) v4.64 User's Guide》这本PDF手册里对线程有详细的介绍,我就翻译跟线程相关的章节吧。3.1 SYS/BIOS 启动顺序SYS/BIOS启动顺序在逻辑上划分为两个阶段---先于main()函数发生的操作和后于main()函翻译 2016-12-12 08:14:14 · 4242 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(6)---硬件中断
3.4 硬件中断硬件中断(Hwis)是应用为了回应外部异步事件所必须处理的关键进程。SYS/BIOS中特定target/device的Hwi模块用于管理硬件中断。请阅读概述,请参考document introducing Hwis。在典型的嵌入式系统中,中断由装置周边设备或由外部设备传给处理器。两种情况都使中断由处理器导向ISR地址。任何影响Swi和Task调度的翻译 2016-12-13 09:37:41 · 3650 阅读 · 1 评论 -
基于TI-RTOS的CC2650DK开发(1)---开发环境搭建
前段一直在学51单片机,所以暂停翻译RPL文档。51初步了解后,现在开始转过头来学习CC2650芯片。看了下TI公司的开发工具Code Composer studio(CCS),基于eclipse,比Ubuntu下的vi好用得多了。实在是不喜欢在Linux下开发,太麻烦,无代码追踪,学习起来太不方便。TI公司有自己的操作系统TI-RTOS,我看了下,注释超级详细,代码编写堪称典范,如获至宝啊,看来原创 2016-12-08 23:43:44 · 6947 阅读 · 4 评论 -
基于TI-RTOS的CC2650DK开发(7)---软件中断
3.5 软件中断软件中断仿照I硬件ISRs。SYS/BIOS的Swi模块提供了软件中断的能力。软件中断通过调用SYS/BIOS的API(诸如Swi_post())来以程序的方式触发软件中断。软件中断的优先级高于tasks,但低于硬件中断。请参考video introducing Swis进行一个概览。注意:不应将Swi模块跟现存于很多处理器的SWI指令混淆。SYS/翻译 2016-12-14 08:03:31 · 2532 阅读 · 2 评论 -
基于TI-RTOS的CC2650DK开发(9)---任务示例
共两个例子,实在太长,所以开新日志来写。先来书上的第一个例子,这回按照书上的做又有问题,好在花了点时间还是找到问题所在。以下代码至少在CC2650DK上是可以运行的。3.6.5.6 Task Hooks示例下例使用了单个Task hook集。此例演示了如何读写每个hook集关联的Hook上下文指针。首先是C代码:/* ======== TaskHookExample.c原创 2016-12-16 09:25:19 · 2871 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(10)---空闲循环
3.7 The Idle LoopIdle Loop是 SYS/BIOS中的后台线程,在没有Hwi、Swi或Task时持续运行。任何其它线程在任何时间可抢占Idle Loop。Idle管理器允许你在Idle Loop中插入函数运行。在configured. Idle_loop中会调用的每个Idle对象所相联的函数。Idle Loop每次调用一个函数,并在一个连续循环中往复调用所翻译 2016-12-17 09:49:58 · 2262 阅读 · 2 评论 -
基于TI-RTOS的CC2650DK开发(8)---任务
3.6 TasksSYS/BIOS task对象是由Task模块管理的线程。Tasks的优先级高于Idle Loop并低于硬件中断和软件中断。参阅video introducing Tasks进行概览。Task模块基于task的优先级和当前task的运行状态动态地安排和抢占tasks。 这确保了处理器永远运行那些拥有最高优先级的线程。tasks的优先级总共有32个级翻译 2016-12-15 09:59:53 · 4591 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(14)---邮箱
4.4 Mailboxes(邮箱)ti.sysbios.knl.Mailbox模块提供了一系列函数管理mailboxes。Mailboxes可用于在相同处理器的两个task中传递缓冲。一个Mailbox实例可用于多个readers和writers。Mailbox模块拷贝缓冲到合适尺寸的内部缓冲。这些缓冲的尺寸和个数在Mailbox实例创建时指定。拷贝在通过Mailbox翻译 2016-12-21 12:56:32 · 5529 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(15)---Clock(时钟)
第5章 时间服务5.1 时间服务概览在 SYS/BIOS和XDCtools中,有几个模块涉及计时和时钟相关服务:ti.sysbios.knl.Clock模块:负责内核用于保持时间轨道的周期性系统tick。所有SYS/BIOS APIs期望一个timeout参数来中断根据时间ticks所设置的timeout。时钟模块用于调度那些在时钟ticks中指定的内部运行的函数。默认情况翻译 2016-12-22 10:21:20 · 6269 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(16)---Timer(定时器)
之前一直把Timer翻译为计时器,感觉定时器更贴切些。之后全部翻译为定时器。5.3 定时器模块ti.sysbios.hal.Timer模块是一个面向定时器外设的标准接口。此模块将于8.3节进行详细描述,因为它是硬件抽象层(HAL)的一部分。你可以使用此模块创建定时器(就是标记使用的定时器)并配置为定时器到期时调用一个tickFxn。仅在定时器外设无需任何自定义配翻译 2016-12-23 07:57:50 · 3457 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(17)---支持模块
第六章 支持模块本章描述为管理整体应用程序行为所提供的一些基础支持特征及配置参数的APIs所对应的模块。6.1 应用支持和管理模块SYS/BIOS和XDCtools提供了数个模块用于支持和管理整个应用程序行为。以下模块提供了属于这个类别的APIs和配置设置:BIOS Module (ti.sysbios.BIOS): 负责SYS/BIOS启动和全局参数维护。翻译 2016-12-24 08:45:04 · 1624 阅读 · 0 评论 -
基于TI-RTOS的CC2650DK开发(25)---IOM接口
本附录提供IOM(I/O迷你驱动)接口的详细描述。F.1 迷你驱动接口概览迷你驱动接口指定了如何实现一个迷你驱动。功能一个迷你驱动应当实现以下功能:mdBindDev:将设备绑定至迷你驱动。mdControlChan:执行信号控制命令。mdCreateChan:创建设备信道。mdDeleteChan:删除一个信道。mdSubmi翻译 2017-01-01 10:17:00 · 1384 阅读 · 0 评论