75 lines
1.6 KiB
C
75 lines
1.6 KiB
C
|
/*
|
||
|
* Copyright (c) 2006-2021, Bluetrum Development Team
|
||
|
*
|
||
|
* SPDX-License-Identifier: Apache-2.0
|
||
|
*
|
||
|
* Change Logs:
|
||
|
* Date Author Notes
|
||
|
* 2021-10-15 greedyhao the first version
|
||
|
*/
|
||
|
|
||
|
#include <rtthread.h>
|
||
|
#include <stdint.h>
|
||
|
#include <stddef.h>
|
||
|
|
||
|
#ifdef BSP_USING_NIMBLE
|
||
|
|
||
|
void nimble_port_run(void);
|
||
|
void nimble_port_init(void);
|
||
|
int ble_hci_rtthread_init(void);
|
||
|
void ble_svc_gap_init(void);
|
||
|
void ble_store_ram_init(void);
|
||
|
int blehr_main(void);
|
||
|
void bb_init(void);
|
||
|
|
||
|
void bthw_get_heap_info(void **p_heap, uint16_t **p_heap_size, uint32_t *p_block_size);
|
||
|
typedef void (*nsmem_cb_init_func)(void *heap_buf, void *heap_size_buf, uint32_t mem_block_max);
|
||
|
#define nsmem_cb_init ((nsmem_cb_init_func)0x84140)
|
||
|
|
||
|
int btctrl_mem_init(void)
|
||
|
{
|
||
|
void *heap_buf;
|
||
|
uint16_t *heap_size_buf;
|
||
|
uint32_t block_size;
|
||
|
|
||
|
bthw_get_heap_info(&heap_buf, &heap_size_buf, &block_size);
|
||
|
// rt_kprintf("heap_buf=0x%p heap_size_buf=0x%p block_size=0x%p\n", heap_buf, heap_size_buf, block_size);
|
||
|
nsmem_cb_init(heap_buf, heap_size_buf, block_size);
|
||
|
return 0;
|
||
|
}
|
||
|
INIT_BOARD_EXPORT(btctrl_mem_init);
|
||
|
|
||
|
static void blehr_thread_entry(void *param)
|
||
|
{
|
||
|
bb_init();
|
||
|
nimble_port_init();
|
||
|
|
||
|
ble_hci_rtthread_init();
|
||
|
ble_svc_gap_init();
|
||
|
|
||
|
/* XXX Need to have template for store */
|
||
|
ble_store_ram_init();
|
||
|
|
||
|
blehr_main();
|
||
|
|
||
|
nimble_port_run();
|
||
|
}
|
||
|
|
||
|
static int blehr_sample(void)
|
||
|
{
|
||
|
rt_thread_t tid = rt_thread_create(
|
||
|
"blehr",
|
||
|
blehr_thread_entry,
|
||
|
RT_NULL,
|
||
|
1024,
|
||
|
15,
|
||
|
1);
|
||
|
|
||
|
if (tid != RT_NULL) {
|
||
|
rt_thread_startup(tid);
|
||
|
}
|
||
|
}
|
||
|
MSH_CMD_EXPORT(blehr_sample, blehr_sample);
|
||
|
|
||
|
#endif
|