FR801xH开发


环境搭建

GCC编译

  1. 安装Make工具
  2. 添加环境变量
  3. 安装arm-none-eabi-gcc嵌入式交叉编译器

一、空间分配

二、代码流程

1)user_custom_parameters 函数

__jump_table 结构体中保存了一些配置信息:

void user_custom_parameters(void)
{
  /******* 设置本机蓝牙地址  *********/
  __jump_table.addr.addr[0] = 0x01;
  __jump_table.addr.addr[1] = 0x01;
  __jump_table.addr.addr[2] = 0x01;
  __jump_table.addr.addr[3] = 0x01;
  __jump_table.addr.addr[4] = 0x01;
  __jump_table.addr.addr[5] = 0xc1;

  __jump_table.image_size = 0x19000; // 程序文件上限 100KB
  __jump_table.firmware_version = 0x00010000; //版本信息
  __jump_table.system_clk = SYSTEM_SYS_CLK_48M; //系统时钟为 48M

  //协议栈中使用的key(包括 IRK,椭圆曲线加密算法中的 public key 和 privatekey)在 flash 中的保存地址为 0x30000
  jump_table_set_static_keys_store_offset(0x30000);
}

2)user_entry_before_ble_init 函数

void user_entry_before_ble_init(void)
{
  /* set system power supply in BUCK mode */
  pmu_set_sys_power_mode(PMU_SYS_POW_BUCK);
  pmu_enable_irq(PMU_ISR_BIT_ACOK
  | PMU_ISR_BIT_ACOFF
  | PMU_ISR_BIT_ONKEY_PO
  | PMU_ISR_BIT_OTP
  | PMU_ISR_BIT_LVD
  | PMU_ISR_BIT_BAT
  | PMU_ISR_BIT_ONKEY_HIGH);
  NVIC_EnableIRQ(PMU_IRQn);
  /* AT command interface */
  app_at_init();
  ……
}

3)user_entry_after_ble_init 函数

user_entry_after_ble_init 为 BLE stack 在系统中初始化完成并成功创建 BLE stack task 后,用户进行自定义行为的入口

4)睡眠唤醒用户接口

  1. user_entry_before_sleep_imp
    该函数在进入睡眠前被调用,用户可在里面实现控制 GPIO 的状态保持
  2. user_entry_after_sleep_imp
    在系统唤醒后,用户可以在该函数中重新进行外设的初始化(进入睡眠后外设的状态因为掉电都会丢失)等操作
posted @ 2021-07-20 15:51  D·Kingson.Mo  阅读(228)  评论(0编辑  收藏  举报