看了介绍,觉得挺不错的东西,希望能够一路走下去 

     老话题STM32编程,新思路,一样是编程,味道却大有不同。这就是STM32之eBox编程。让你提议不一样的编程,让开发快到你意想不到!

从上学那会儿就开始学习51单片机,到后来的AVR,随后的STM32一路走来各种单片机玩来玩去,从一个菜鸟变成一个能飞翔的小鸟(还是个鸟),再后来慢慢的做了项目,实践出真知,做项目和玩开发板完全是两个概念,这个过程让我成长了不少,从中学习到了很多只是,特别是对c/c++有了更深刻的认识。

随着项目经历越来越多,发现了一个问题,我在一个平台写的软件想要移植到另一个平台总会要修改大量的代码。稍不注意可能就会出错,让人头疼至极!退一步,即使不跨平台,我想移植一个别人的代码都要花很大功夫,我想大家也是会遇到类似的情况。

这个问题困扰了我多年,无法解决,在去年和几个好朋友一起爬山,突然聊到单片机各种芯片的驱动的问题,那时候想,如果有一个网站上可以下载任意我想要的驱动该多好啊!再也不用从网上到处搜索。可以说这是一个思想的起点。智者的交流产生了智慧的火花!

到了今年的5月份又深度的思考了下这个问题,如果想实现这样的一个功能,除了要收集网络上散布的各种驱动外,还必须要做到一点,就是将驱动接口和配置标准化,否则用户拿到驱动以后依然需要做大量的兼容性修改。这样相当于问题只解决了一半,另一半该怎么解决?经过和芒果大神讨论,得出结论:要想驱动可移植性增强唯有做一套标准的程序架构,约束驱动程序的书写规则!俗话说得好,无规矩不以成方圆。没有法律的自由,就是个混乱的世界!这就找到了解决问题的切入点!这就是燃料棒,让智慧之火得以持久燃烧!

然后,然后,然后干嘛?你说干嘛!制定规矩啊!规矩我定,游戏自己玩。然后就进入了while(1)的死循环,每天修改规则、写代码,修改规则、写代码……

夜深人静,墙上的那只破表滴答、滴答、滴答地响个不停,仿佛打了鸡血,不知疲倦。而我安静的坐着,噼里啪啦的敲着键盘,好像故意地配合着滴答声。不知不觉,抬起头,才发现已经三点了……睡吧,明天还要上班呢。就是这样无数个夜以继日的噼里啪啦,才完成了eBox的雏形——eBox-V1.0。希望之火正式点燃!

再回头来看,突然发现eBox已经不止是实现了最初的想法,除了完成了标准程序和驱动架构外,额外的收获就是,完成了STM32的固件库二次封装,完成了标准应用层,还有一个简单的操作系统和bootloader。然后又产生了一个新的想法,就是将驱动层及其以上所有的应用程序做到硬件无关。将eBox核心固件库移植到51、AVR、飞思卡尔、恩智浦等等微控制器上。做到最大化的接口兼容,这样就可以保证我所有的驱动和应用代码在任意微控制器上无缝兼容!
这就是eBox的最大的梦想!虽然离梦想还有段距离,但是我已经能看到曙光!

为了能让eBox的希望之火得以燎原,我将第一款开发板命名为SPARK。寓意:火花。

当然要实现eBox这个梦想,只有我一个人是无法做到的,精力有限。需要发动更多的人参与进来才是硬道理!就在这时,我认识了电子发烧友的管理人员,在了解我的eBox的想法之后,大力支持我的想法。帮助我做了很多我个人能力做不到的事情!电子发烧友平台是一个eBox发展的助力平台!也是分享的平台!让更多的爱好者实现梦想,让更多的爱好者分享梦想带来的成果!

我的众筹项目地址:http://z.elecfans.com/2 期待大家一起来完善和发展eBox,打造国人自己的库,不仅仅支持STM32,更能支持飞思卡尔MCU、NXP MCU······

关于ebox的更多相关文章

  1. eBox(stm32) 之中断结构

    eBox的中断结构参考了mbed,和我们平时所用的中断结构有些差异,不容易理解,最近仔细看了底层代码,终于搞清楚了,总结一下         一  首先要要搞清楚的几个概念:类的静态成员,实例成员   ...

  2. 基于eBox的LTC1446驱动

    LTC1446 是linear出品的双通道12bit轨对轨DAC芯片,采用SPI接口,内部基准电压,满量程输出4.095v,单电源供电(4.5-5v).8Pin封装.            使用时非常 ...

  3. ebox学习之SD & fat 配置

    fatfs可配置项很多,相关的配置均在ffconfig.h文件中 /*----------------------------------------------------------------- ...

  4. 基于eBox旋转编码器

    在电子产品设计中,经常会用到旋转编码开关,比如数码电位器等,它的英文名翻译过来就是Rotary Encoder Switch.常见的有5pin和3pin产品.5pin实在左右旋转的基础上增加了向下按得 ...

  5. 移植mbed到目标板

    上一篇我们导出了mbed基本环境到mdk,根据实际目标还需要做些修改.手头的硬件是ebox平台,芯片STM32F103C8T6,调试器jlink,默认使用UART1. 导出时所选择的NUCLEO-F1 ...

  6. 基于MDK的mbed工程建立

    个人更喜欢mdk作为IDE来编写代码,而mbed作为一个开源项目,有大量优秀代码可以借鉴使用,今后一段时间都会主要看mbed平台的代码以及国内ebox平台代码         1  首先登陆mbed在 ...

  7. 2016 12 21 的project 未注释版

    #include<stack>#include<iostream>#include<queue>#include<string>#include< ...

  8. 半径无关单核单线程最快速高斯模糊实现(附完整C代码)

    之前,俺也发过不少快速高斯模糊算法. 俺一般认为,只要处理一千六百万像素彩色图片,在2.2GHz的CPU上单核单线程超过1秒的算法,都是不快的. 之前发的几个算法,在俺2.2GHz的CPU上耗时都会超 ...

  9. 立体匹配:关于理解middlebury提供的立体匹配代码后的精减

    Middlebury立体匹配源码总结 优化方法 图像可否预处理 代价计算可否采用BT方式 可选代价计算方法 可否代价聚合 可否MinFilter优化原始代价 WTA-Box 可以 可以 AD/SD 可 ...

随机推荐

  1. MAT(Memory Analyzer Tool)工具入门介绍

    1.MAT是什么? MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速.功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗 ...

  2. jquery插件之表格隔行变色并鼠标滑过高亮显示

    该插件乃本博客作者所写,目的在于提升作者的js能力,也给一些js菜鸟在使用插件时提供一些便利,老鸟就悠然地飞过吧. 此插件旨在实现表格隔行变色,且鼠标移动在表格的某一行上时,该行能高亮显示.整体代码如 ...

  3. [LintCode] Valid Parentheses 验证括号

    Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the inpu ...

  4. 模拟淘宝使用cookie记录登录名,

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  5. cat 显示指定行

    [一]从第3000行开始,显示1000行.即显示3000~3999行 cat filename | tail -n +3000 | head -n 1000 [二]显示1000行到3000行 cat ...

  6. hadoop Error: JAVA_HOME is not set and could not be found.

    Hadoop安装完后,启动时报Error: JAVA_HOME is not set and could not be found.解决办法:        修改/etc/hadoop/hadoop- ...

  7. Logistic Regression vs Decision Trees vs SVM: Part II

    This is the 2nd part of the series. Read the first part here: Logistic Regression Vs Decision Trees ...

  8. 理解CSS3 transform中的Matrix(矩阵)

    一.哥,我被你吓住了 打架的时候会被块头大的吓住,学习的时候会被奇怪名字吓住(如“拉普拉斯不等式”).这与情感化设计本质一致:界面设计好会让人觉得这个软件好用! 所以,当看到上面“Matrix(矩阵) ...

  9. 调试WEB APP多设备浏览器

    方法:adobe shadow  \ opera远程调试\ weinre adobe shadow: 我们经常使用Firefox的firebug或者Chrome的开发人员工具进行Web调试页面,Jav ...

  10. javascript保留关键字

    1.通用保留关键字 break delete function return typeof case do if switch var catch else in this void continue ...