本帖最后由 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);
- }
- }
|