BLE 学习应用笔记1
OSAL 学习笔记
1-OSAL.C
@fn osal_strlen 计算字符串的长度。字符串必须空结尾。
@fn osal_memcpy 一般内存复制
@fn osal_revmemcpy //一般的颠倒内存复制。从资源缓存的最后开始,通过使用资源地址的指针移动len 字节的,然后指针自减。
@fn osal_memdup //分配一个缓存(和osal_mem_alloc()),并复制这个资源缓存到刚分配好的控件.
@fn osal_memcmp 一般内存比较
@fn osal_memset 设置内存缓存值
@fn osal_rand 产生随机数
@fn osal_msg_allocate 动态分配一个OSAL 消息缓存
@fn osal_msg_deallocate 释放一个OSAL 消息缓存(接收任务调用)
@fn osal_msg_send 为某个任务发送一个OSAL 消息
@fn osal_msg_receive 检索接收命令消息。
@fn osal_msg_find 发现在一个OSAL 消息匹配任务ID 和事件参数。
@fn osal_msg_extract //从OSAL 队列中间提取和移除一个OSAL 消息
@fn osal_set_event 为一个任务设置一个OSAL 事件
@fn osal_clear_event 清除一个任务的事件标志。
@fn osal_init_system OSAL 初始化,必须在主函数中被调用
@fn osal_start_system 开始运行OSAL 主循环
@fn osal_run_system 现至少一个等待事件的第一个任务。
2-OSAL_bufmgr.c
@fn osal_bm_alloc 分配器函数的实现
@fn osal_bm_free 取消分配器函数的实现
@fn osal_bm_adjust_header 调整header
@fn osal_bm_adjust_tail 调整tail
3-OSAL_cbtimer.c
@fn osal_CbTimerInit 初始化函数
@fn osal_CbTimerProcessEvent//回调定时器任务事件处理函数
@fn osal_CbTimerStart//当定时器到期,注册调用函数将被调用。
@fn osal_CbTimerUpdate 更新一个已经启动的消息定时器
@fn osal_CbTimerStop//停止一个已经启动的定时器。
4-OSAL_ClockBLE.c
@fn osalTimeUpdate 更新OSAL 时间和定时器,
@fn osalClockUpdate //用运行ms 更新OSAL 时间表,
@fn osal_setClock//设置新时间。
@fn osal_getClock //得到当前时间。
@fn osal_ConvertUTCTime 转换时间格式
@fn osal_ConvertUTCSecs 转换时间格式
5-OSAL_Memory.c
@fn osal_mem_init 内存管理初始化
@fn osal_mem_kick //任务初始化
@fn osal_mem_alloc 执行OSAL 动态内存分配函数
@fn osal_mem_free //执行OSAL 动态内存释放函数
6-OSAL_PwrMgr.c
@fn osal_pwrmgr_init //初始化电源管理系统
@fn osal_pwrmgr_task_state//每一个任务调用函数,来陈述是否这个任务要保存电源
@fn osal_pwrmgr_powerconserve //当没有活动安排这个函数从主循环被调用,不应该从别的地方被调用。
7-OSAL_snv.c
8-OSAL_timers.c
@fn osalTimerInit 初始化OSAL 定时器系统
@fn osalAddTimer 增加一个定时器到定时器列表
@fn osalFindTimer 在定时器列表中发现一个定时器
@fn osalDeleteTimer 从一个列表中删除一个定时器
@fn osal_start_timerEx //调用开始一个定时器在n ms 内
@fn osal_stop_timerEx //停止一个已经启动的定时器。
@fn osalTimerUpdate 更新定时器结构
@fn osal_adjust_timers 更新已经过去的定时器结构
@fn osal_GetSystemClock 读取本地系统时钟
以上是一个BLE 应用里的OSAL 所用到的函数名字,及其功能,方便以后查询。
BLE 学习应用笔记2
1.安装D:\TI 资料\BLE-Stack
安装目录文件夹下C:\Texas Instruments\BLE-CC254x-1.2.1\Projects\ble 下有应用列子程序。
2.安装IAR 软件
安装目录D:\TI 资料\IAR Embedded Workbench
3.安装SmartRF Flash Programmer 软件
SmartRF Packet Sniffer
SmartRF Studio 7
安装目录D:\TI 资料\TI Software
4.阅读文件夹BLE-CC254x-1.2.1\下的例子程序。
5.APP 应用层
HAL 硬件驱动层
OSAL 操作系统层
PROFILES 配置文件层:
BLE 协议栈的结构和配置在这一层设置。GAP 提供关于连接的服务设置
SMP 安全管理
ATT 属性结构设置
GATT 使用属性协议发现,服务或其他关联属性之间分组信息
BLE 学习应用笔记3
BLE 学习应用笔记3
1.搭建硬件:按接口连接好硬件:USB->小口USB->CCDebugger->DBG_CONNECTOR->设备1或设备2(usb 的插头小块向内/插电池的插头小块向外)
2.搭建之前安装软件:SmartRF Studio 和SmartRF Flash Programmer.
3.设备连接好后,电脑提示要求安装驱动:选择从指定位置安装:C:\Program Files\Texas Instruments\SmartRF Tools\Drivers\Cebal\win_32bit_x86 (默认位置)插入设备后还需安装一个驱动:C:\Texas Instruments\BLE-CC254x-1.2.1\Accessories\Drivers。之后,重启CCDebugger,绿灯亮后,即可正常调试。
4.打开SmartRF Studio 软件。“2.4GHz”下选择“CC2540”
5.下载程序:SmartRF Flash Programmer,选择“SoC”,选择所下载文件*.hex 所在文件夹,“Actions”中选择“Erase,program and verify”,下载点击“perform actions”
BLE 学习应用笔记4
1,连接好硬件,安装好驱动,USB Dongle 小是主设备。
2.查看连接的com 口。
3.使用BTool 软件:
打开BTool,位置在C:\Texas Instruments\BLE-CC254x-1.2.1\Projects\BTool。
选择com 口,其余默认(115200,cts/rts,none,one,8),然后OK。
4.下载程序:Flash Programmer 或者IAR
BLE 学习应用笔记5
OSAL 中断操作:
1、允许中断
uint8 osal_int_enable( uint8 interrupt_id )-- interrupt_id:中断标示符
2、禁止中断
uint8 osal_int_disable( uint8 interrupt_id )-- interrupt_id:中断标示符
3、暂停中断
HAL_ENTER_CRITICAL_SECTION(x)
4、重新启用中断
HAL_EXIT_CRITICAL_SECTION(x)
OSAL 内存操作:
1、分配内存
void *osal_mem_alloc( uint16 size )
-- size:分配缓冲区的大小
2、释放内存
void osal_mem_free( void *ptr )
-- ptr:指向释放的缓冲区
OSAL 消息传递:
1、分配信息缓冲区
byte * osal_msg_allocate( uint16 len )
-- len:信息的长度
2、发送信息
byte osal_msg_send( byte destination_task, byte*msg_ptr )
-- destination_task:接收信息任务的标示符
-- msg_ptr:消息指针
3、接收信息
byte *osal_msg_receive( byte task_id )
-- task_id:接收信息的任务ID
4、释放消息缓冲区
byte osal_msg_deallocate( byte *msg_ptr )
-- msg_ptr:消息指针
OSAL 任务管理:
1、任务初始化
byte osal_init_system( void )
--要创建的任务列表
2、任务开始
void osal_start_system( void )
--系统任务的主循环函数
3、获取活动任务ID
byte osal_self( void )
--中断服务子程序中调用将会发生错误
4、事件句柄的函数原型
(*pTaskEventHandlerFn)( unsigned char task_id, unsigned short event )
OSAL 定时器:
1、启动定时器
byte osal_start_timerEx( byte taskID, UINT16 event_id, UINT16 timeout_value )
-- taskID:定时器终止时事件任务的任务ID
-- event_id:用户定义的事件,时间终止时通知这个事件
--定时器设置前的时间量
2、停止定时器
byte osal_stop_timerEx( byte task_id, UINT16 event_id )
-- task_id:事件任务的任务ID
-- event_id:用户自定义事件
3、读取系统时钟
uint32 osal_GetSystemClock( void )
--用来读取系统时钟(毫秒级)
BLE 学习应用笔记6
将"事件"理解成按键,
将"任务"理解成蜂鸣器.
也就是说按键被按下蜂鸣器就响起来.对应"事件"->"任务".然而,具体是哪一个按键被按下了.
那么得利用事件附带的"消息"来判定,K1,K2??说白了"消息"就是附带物.