我的思考方式:
我现在比较大的问题是,以往都是,在老师讲解的知识或者理论(缺点)容易继续意淫拓展,比如如何从零到一实现,可能的问题,继续思考就思考不下去了,基础太差,哪有那么多理论,比喻。当然嵌入式还是将协议到实际代码的实现,这里面难免有各种的问题,然后缝缝补补,短时间肯定无法解决!而且当下很多库已经做好了处理。所以初学的目标肯定是两点之间,基于当前的环境,库的支持,跑起来,继续到不同的平台上,不依赖已有的工作。
应该有三类文章:
写东西得有个目的,教会什么,理论性文章,嵌入式就形象贴切,比如串口,那需要一开始讲异步半双工嘛?显然不需要。需要的是 [主机] 三 [从机] ,讲模型,将数据帧,讲通信时序,发数据到从机获取的比如 1111100这个,数字波形是啥?从MCU发的获取的?当然可以默认读者已经懂了这个概念不讲。只关注实际,形象的把这个东西说清楚。当然你可以在前面讲好接口电平标准,数据0/1表示。然后之后拓展到RS232 /485。差不多到这里就完了,这种文章使用比较短。可以顺便把stm32平台的串口的配置使用讲一下。
1.知识/理论知识文章:简单的比如串口,这种好讲一些。像难的,比如车载以太网,操作系统,这钟需要前置知识的,内容多的。首先了解车载以太网是解决什么问题的,组成的,再以一个实际的案例,讲某个行为,协议是如何处理的,组成的其中一个模块是如何处理的,只说比如IP/MAC,或者识别啥的,这里的关键部分(那么啥是关键部分呢?)。到了操作系统,有线程,进程概念,线程与进程切换,有TCB(task control block 块,这种关键的要讲下),操作系统调度,文件系统,驱动……太多了,肯定只需要讲直观讲下操作系统的定义,形象的比喻,然后讲下线程或者进程之间如何切换,这些关键概念,讲下调度,同步与通信(差不多了)就行了,博文做这么多够了(具体的看专业书),实际还是以第一张为主啊。
2.实践类文章:目的肯定教会别人啥,有个目标,初步使用,理解一些调用关系,一些可能使用中的误解,可能的错误,如何解决。明确要做的事情(分几步),能从理论到实践最好,以USB协议为例,USB协议讲了各种传输,传输下有阶段,阶段可能包括了包,什么令牌包,数据包,ASK包,包的帧格式,每个域代表的函数,而在linux写驱动只需要获取接口描述符,获取一些信息,到最后也就是端点描述符,有pipe(usb协议有点忘了),封装数据,提交URB就行,由USB_Core 层和硬件完成具体接下里的事情,1.有一张图说明每个层干了啥,再说我们在这个环境下要干啥,这是最直接,最好的。2.也可以说下方法,比如如何查找参考官方的,这样就可以到其他板子实践了,3.给一份模板代码,给之后来抄。
3具体实现某个场景,或者某个大的模块的代码设计,有框架图,有流程图,代码,给一份代码,封装好复用。
当然自我学习的还有
4.自我有草稿,认识学习的记录嘛,某些其实还是
5.项目或者实践出现问题,问题记录嘛
6.拿板从零开始的的贴
文章/书之分
又臭又长的:
没有明确主要目的,讲不清实际的,(各种由来(没有讲要解决什么,要做什么的由来,就是历史xx组织制定了),定义,名词,比如特点,优势凑)。各种函数API说明,贴一堆函数代码,配置,你就一步一步,数据结构和算法,就按照原理,从初始化,到配置某个模块,再到处理下一步,详略得当,不要又臭又长,只是代码,没讲清逻辑。
长的
而且没有到某个问题,没有图进行说明,不够直观的说明过程或者问题:有时候真的搞不清,你说某个精度,是配置需要了解的嘛?后面再说不行?忽略主要的。
详略得当
从模型再到实现,走必要的部分(即在使用了当前环境支持的前提下,说清了每个步骤做了啥,凝练几步走,要讲关键的公式啥的(如果有的话)),某些部分,不好用语言传达,直接用图片,一步一步配合文字说清变化。
现在比较懒,也不知道用啥方式写,慢慢来把,都会慢慢改的