What is eBox?

eBox是一个运行在STM32平台上的涵盖了驱动层、系统层、标准应用软件层、用户软件层和bootloader的软硬件一体化的解决方案。丰富的标准驱动和标准应用,像用Arduino那样方便,性能又远高于arduino。操作系统的支持让eBox满足多任务系统的需求;标准应用提供多种控制算法、通信协议,满足不同应用场所的需求。eBox寓意简单的盒子,彻底简化STM32编程!
把“拿来主义”贯彻到底!

打造基于极简嵌入式软件开发平台,建立eBox生态圈,让编程变得更简单!

a small story

自己在经历过这些各种项目,很多都是用STM32系列单片机作为主控来实现的,虽然代码写了很多,但是总觉得每次做项目都要花很长时间调试驱动,即使网上有网友写的驱动可以下载,但是肯定要改很多地方才能使用,经常没那么顺利、导致在调试的过程中要不断的在检查硬件和检查软件的死循环中。难道是我能力有限,还是方法不对?
在想了很久之后,萌生了一个想法,就是让单片机的开发驱动规范化,简单化,让用户像装Windows驱动一样,下载安装即可。这样我在保证我硬件连接没有问题的情况下,驱动就可以很快的调试通过,可以节约我大量的时间来处理应用层的逻辑事物。然后eBox就应运而生。当然经过不断的改进ebox不仅仅提供了标准的驱动层,还有跟多标准的服务组件。可以满足用户的快速开发。
对于初学者是否适合学习eBox?对于工程师对eBox还有哪些需求?对于这些问题有过很激烈的讨论,众说纷纭。我综述下基本的几个观点。

Why eBox?

嵌入式编程在各个领域应用及其广泛,硬件平台非常丰富,相应的软件资源,正因为软件资源丰富,导致了软件生态恶化比较严重,没有统一的编程思想和编程规范。
为了统一各种不同平台开发的差异性,要做一套通用的编程接口,让工程师脱离底层硬件差异导致重复性编程。

arduino是一个很好的开发平台在很大程度上解决了爱特梅尔单片机开发困难的境地,让avr单片机重获新生,其以简洁的IDE和丰富的库函数赢得了世界的认可,但是arduino
有很大的弊端,大部分用户基于arduino都是做些简单的工作,如果涉及到复杂的工程arduino弊端就会显现无疑,首先是工程管理

eBox开发平台能干什么

嵌入式编程在各个领域应用及其广泛,硬件平台非常丰富,相应的软件资源,正因为软件资源丰富,导致了软件生态恶化比较严重,没有统一的编程思想和编程规范。
为了统一各种不同平台开发的差异性,要做一套通用的编程接口,让工程师脱离底层硬件差异导致重复性编程。

eBox固件库特色

标准框架

人性化接口设计

PWM以频率和占空比为参数初始化;定时器以中断频率为参数初始化;SPI以MODE0/1/2/3、速度、大小端初始化为参数初始化;
I2C以速度为参数初始化;

全面的STM32外设固件库支持

目前固件库支持了GPIO、ADC、timer、PWM、exit、SPI、I2C、uart、rtc、usb、can等嵌入式MCU的外设。

开源共享驱动

用户可以从网络上获取免费开源的驱动程序,基于eBox的标准驱动,下载后是不需要进行任何修改就可以使用,所有初始化链接信息都包含在了创建对象的接口中。驱动就像一个个小盒子,用只需拿回来用自己的链接去初始化就可以搞定。

操作系统

eBox完全独立,和操作系统是松散耦合关系。为了更好的让用户上手学习,自主开发了一个小型的操作系统,包含了任务调度、挂起、唤醒简单的功能。操作系统完全开源。也是用户学习操作系统原理的典型例子。