说明:此部分代码目前还为公开,本文提供给拿到代码,准备做文件系统的人参考。 VSF最新代码里,增加了一个aio示例,把VSF里的各个功能都整合到一个项目中,当然,这样对MCU...
说明:此部分代码目前还为公开,本文提供给拿到代码,准备做文件系统的人参考。 VSF最新代码里,增加了一个aio示例,把VSF里的各个功能都整合到一个项目中,当然,这样对MCU...
说明:应用使用USB的MSC类实现一个光驱,然后模拟出一个光盘,实现ISO9660文件系统。 参考:VSF里已经实现了模拟FAT32的文件系统,代码在这里:https://g...
参考:VSF的事件驱动: http://www.jianshu.com/p/f0cbf86d8fed 这里介绍一下VSF的比较关键的设计,就是对各种不同实时性任务的处理,以及...
VSF中实现了一个相对通用的USB设备端协议栈,可以通过移植芯片的USB SIE驱动,来支持不同的MCU。USB设备端协议栈的实现只用到了最基本的事件驱动机制,并且,USB的...
流模块单独分出来讲是因为内容相对比较多,而且也有一定难度。流模块可以对应数据的生产者/消费者模型,生产者可以向流里写数据(生产数据),消费者从流里读取数据(消费数据)。并且,...
之前的基础部分应该讲的差不多了,现在开始介绍VSF里的各个模块了。第一个模块是最常用的定时器模块,几乎各个应用都会用到,而且实现上也比较简单。 首先,定时器模块需要指定一个m...
之前说过,VSF都是模块化的设计,这里就先介绍一下VSF中的基础模块。其中,有一些模块会在以后详细说明,比如流模块。基础模块位于vsf/component/fundation...
之前把VSF的几种底层任务形式都简单介绍了一边,后面就线跳过VSF里的中间层,先用一个应用demo来演示一下VSF的应用层开发方式。 VSF的应用层开发理念就是RAD的开发理...
@徐文杰_8470 正好周末,先把几个基本的任务方式演示一下。
hello world总结--你能看懂几种?作为MCU的hello world,以各种姿势吊打闪灯程序,你能看懂几种? 入门级--基于定时器回调的闪灯:http://www.jianshu.com/p/7a7560e0...
@陈天羽 你应该都可以看懂的
hello world总结--你能看懂几种?作为MCU的hello world,以各种姿势吊打闪灯程序,你能看懂几种? 入门级--基于定时器回调的闪灯:http://www.jianshu.com/p/7a7560e0...
元状态机MSM是C++库boost里引入的,全称是Meta State Machine。元状态机可以简单理解为由元素组成的状态机,用户定义状态机的各个元素即可。把这些元素组成...
usrapp.h: usrapp.c: 元状态机是选修,这个就自己看了。
作为MCU的hello world,以各种姿势吊打闪灯程序,你能看懂几种? 入门级--基于定时器回调的闪灯:http://www.jianshu.com/p/7a7560e0...
VSF中的PT协程是共享堆栈的,任务不具备自己的堆栈。这种运行方式执行效率相对较低,因为每次调用任务的时候,都会需要一层层重建堆栈。那么,是否可以简单实现一个独立堆栈的协程呢...
usr_app.h: usrapp.c: setjmp为选修,就自己体会了。
VSF中很多模块的设计,往往会提供回掉函数的方式来实现模块之间的隔离。定时器模块就有一个vsftimer_create_cb来实现定时调用一个指定函数的功能。 usrapp....
usrapp.h: usrapp.c: 这里,usrapp_led_thread中的app变量,在每次调用的时候,都会初始化。代码功能和之前的事件驱动的闪灯程序一样。
首先,协程的英文名是coroutine,是一种非抢占的任务形式。协程有很多种实现方式,Contiki里引入的PT协程,C语言标准库里的setjmp.h等等,都可以实现协程。协...
对于PC上的hello world,MCU上就是闪灯程序。之前介绍了事件驱动,那这里就以事件驱动的方式,来实现闪灯程序。代码里会用到vsftimer模块,也就是定时器模块。V...
设计上,VSF的底层核心是一个参照UML设计的状态机构架。不过,我这里先不准备讲状态机,因为VSF里的状态机构架从来都没有被用到过,哪怕一次。实质上,VSF底层的核心是事件驱...