Telink8251_SDK

软件组织架构
该 BLE SDK 软件架构包括 APP 应⽤层和 BLE stack 协议栈部分。
在 IDE 中导⼊ sdk ⼯程后,显⽰的⽂件组织结构如下图所⽰。
顶层⽂件夹有 8 个:

[algorithm] 提供加密算法相关的函数
[application] 提供⼀些通⽤的应⽤处理程序,如 print、keyboard、audio 等。
[boot] 提供芯⽚的 software bootloader,即 MCU 上电启动或 deepsleep 唤醒后的汇编处理过程,为后⾯ C 语⾔程序的运⾏搭建好环境。
[common] 提供⼀些通⽤的跨平台的处理函数,如内存处理函数、字符串处理函数等。
[drivers] 提供与 MCU 紧密相关的硬件设置和外设驱动程序,如 clock、flash、i2c、usb、gpio、uart 等。
[proj_lib] 存放 SDK 运⾏所必需的库⽂件(如 liblt_825x.a)。BLE 协议栈、RF 驱动、PM 驱动等⽂件,被封装在库⽂件⾥,⽤⼾⽆法看到源⽂件。
[stack] 存放 BLE 协议栈相关的头⽂件。源⽂件被编译到库⽂件⾥⾯,对于⽤⼾是不可⻅的。
[vendor] ⽤于存放⽤⼾应⽤层代码
main.c
包括 main 函数⼊⼝,系统初始化的相关函数,以及⽆限循环 while(1) 的写法

_attribute_ram_code_ int main(void) // must run in ramcode
{
    DBG_CHN0_LOW; // debug
    blc_pm_select_internal_32k_crystal();
#if (MCU_CORE_TYPE == MCU_CORE_825x)
    cpu_wakeup_init();
#elif (MCU_CORE_TYPE == MCU_CORE_827x)
    cpu_wakeup_init(LDO_MODE, EXTERNAL_XTAL_24M);
#endif
    int deepRetWakeUp = pm_is_MCU_deepRetentionWakeup(); // MCU deep retention wakeUp
    rf_drv_init(RF_MODE_BLE_1M);
    gpio_init(!deepRetWakeUp); // analog resistance will keep available in deepSleep mode, so
    no need initialize again ↪ clock_init(SYS_CLK_TYPE);
    if (!deepRetWakeUp)
    { // read flash size
        blc_readFlashSize_autoConfigCustomFlashSector();
    }
    blc_app_loadCustomizedParameters(); // load customized freq_offset cap value
    if (deepRetWakeUp)
    {
        user_init_deepRetn();
    }
    else
    {
        user_init_normal();
    }
    irq_enable();
    while (1)
    {
#if (MODULE_WATCHDOG_ENABLE)
        wd_clear(); // clear watch dog
#endif
        main_loop();
    }
}
app_config.h
⽤⼾配置⽂件,⽤于对整个系统的相关参数进⾏配置,包括 BLE 相关参数、GPIO 的配置、PM 低功耗管理的相关配置等。
后⾯介绍各个模块时会对 app_config.h 中的各个参数的含义进⾏详细说明。

application file
app.c:⽤⼾主⽂件,⽤于完成 BLE 协议栈初始化、数据处理、低功耗处理等。
BLE slave ⼯程的 app_att.c:service 和 profile 的配置⽂件,有 Telink 定义的 Attribute 结构,根据该结构,已提供 GATT、标准 HID 和私有的 OTA、MIC 等相关 Attribute,⽤⼾可以参考这些添加⾃⼰的 service和 profile。
其他 UI ⽂件:如 IR(红外)、battery detect(电池检测)等⽤⼾任务的处理⽂件。
BLE stack entry
Telink BLE SDK 中 BLE stack 部分 code 的⼊⼝函数有两个:
(1) main.c ⽂件 irq_handler 函数中 BLE 相关中断的处理⼊⼝ irq_blt_sdk_handler。

__attribute_ram_code_ void rf_irq_handler(void)
{
    irq_blt_sdk_handler();
}
AI写代码
c
运行
1
2
3
4
(2) application file main_loop 中 BLE 逻辑和数据处理的函数⼊⼝ blt_sdk_main_loop。

void main_loop(void)
{
    / BLE entry 
    blt_sdk_main_loop();
    // UI entry 
    // PM process 
}
AI写代码
c
运行
1
2
3
4
5
6
7
IC型号 flash和sram大小
适⽤如下⼏种 IC 型号,它们属于 B85m 系列,均为同⼀内核,其中 8251/8253/8258,8271/8273/8278 硬件模块基本⼀致,只是在 SRAM size 与 flash ⽅⾯略有差异。    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值