DAPLINK 源码学习(1)BL 之 main() 函数

bootloader 主函数

1)我们以 stm32f103xb_bl 为例,从 bootloader 项目的 main() 函数开始:

  • (1)sdk_init():MCU 初始化
  • (2)gpio_init():USB 相关引脚配置
  • (3)config_init():RAM 中配置初始化
  • (4)board_bootloader_init():nothing
  • (5)reset_button_pressed() 和 modify_stack_pointer_and_start_app():运行 BL or IF
  • (6)OS 和 main task 配置:
    • osKernelInitialize():初始化
    • osThreadNew(main_task):主任务回调函数 main_task()
    • osKernelStart():启动主任务

1 sdk_init()

1)sdk_init() 是 DAPLINK 提供的 厂商 sdk 初始化 接口函数。移植时可实现该函数,以进行时钟等外设上电初始化:

// 在 /source/hic_hal/sdk.h 文件中声明
void sdk_init(void);

// 在 /source/daplink/sdk_stub.c 文件中提供默认实现
__WEAK void sdk_init()
{
   
   
    // Do nothing
}

2)在 stm32f103xb_bl 项目中,该函数的调用逻辑如下:

2 gpio_init()

1)gpio_init() 是 DAPLINK 提供的 LED、按键初始化

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值