本帖最后由 Simon21ic 于 2016-1-12 01:22 编辑
会有完整的应用部分的代码,不过系统部分,至少蓝牙协议栈以及wifi芯片驱动不会公开。
所以,这个软件的结构是系统+应用,类似linux等,不过说实话,快过年了,而且自己又有很多产品要开发,所以时间上不可能很快,开发过程也可以通过github上的vsf看到,每一步的代码都会在里面更新。只能一点一点秀一些代码,那就秀一个应用的main函数代码吧:
static void app_on_pendsv(void *param)
{
struct vsfsm_evtq_t *evtq_cur = param, *evtq_old = vsfsm_evtq_get();
vsfsm_evtq_set(evtq_cur);
while (vsfsm_get_event_pending())
{
vsfsm_poll();
}
vsfsm_evtq_set(evtq_old);
}
int main(void)
{
vsf_enter_critical();
vsfsm_evtq_init(&app.pendsvq);
vsfsm_evtq_init(&app.mainq);
vsfsm_evtq_set(&app.pendsvq);
vsfsm_init(&app.sm);
vsfhal_core_pendsv_config(app_on_pendsv, &app.pendsvq);
vsf_leave_critical();
vsfsm_evtq_set(&app.mainq);
while (1)
{
// no thread runs in mainq, just sleep in main loop
vsfhal_core_sleep(SLEEP_WFI);
}
}
|