2020年6月19日,距毕业2018年6月30日两年时间。不知道怎么写,先按时间记个流水账。2018年3月入职,距今在这家公司呆了两年三个月。调试过三种不同处理器的板子,搞过的项目只有一个,量产的项目为0。
但涉及的东西不少,因为这个项目大部分的工作都是自己负责了。虽然涉及的东西不少,但是研究的深的好像又不多。做个总结,也做个大纲。以后一一写博客补上。那就从底层到上层开始吧。
首先就是uboot,uboot方面做过的主要是logo显示、上电加载镜像的方式、uboot层的硬件驱动。但是没有涉及到汇编方面,对uboot的启动流程也只是大概了解流程,然后在合适的地方增加增加功能实现的代码。
接下来就是内核了,调试过各种类型的硬件驱动,优化过开机启动速度,实现过应用层修改内核开机logo,这几个部分貌似之前的博客都有说,这部分的坑不用填。但是也只是应用类型文章多,文章里包含的理论少。对相关的理论知识是还是要做个总结也做个加强。
再接下来应该属于应用层部分,应用层C/C++是基础,做过shell脚本实现系统自动升级,熟悉qt,用qt写过不少小项目。在2019年板子上各个部分的硬件终于调完之后,今年终于全面转移到应用层上来了。然后突然发现C/C++虽然是基础,但也是自己薄弱的地方。在本次的博文应该要对C/C++进行更深更全面的的剖析。链表、数据结构以及设计模式应该也要加强。
还有开发环境部分,用buildroot搭建根文件系统,嵌入式移植,移植过的主要有qt、ekho还有蓝牙API,不过总是觉得嵌入式移植方面好像没什么技术含量,也没什么好唠叨的,但真的是让人头疼。
总的来说目前进行的项目,除了面向客户部分的功能代码还有硬件设计,其他都是自己完成了。真是太心疼自己。
说到硬件,自己曾经也是去专门上过硬件培训课的,博文应该也要写一些对硬件的分析比如各种总线协议、原理图等,不然对不起自己交的学费。好了,写到这里,大纲就出来了,由易到难吧。
第一部分 编程基础
第一部分应该作为编程基础,写C/C++的一些编程小知识,链表,设计模式,qt,shell脚本等。链表一直以来都没怎么接触过,实际上我工作用的也比较少,但还是可以多学学。设计模式在编写大型项目代码的时候,就非常重要了。目前掌握了几个简单的设计模式,勉强算是够用,不过还是需要用自己的语言把他们描述出来;qt的话,项目遇到什么比较难实现的功能就是百度搜,也应该对自己所掌握的qt知识进行一个全面的有调流的梳理。还有就是一个多线程的知识,据说编程老鸟和菜鸟的区别就是能否熟练掌握多线程。在shell脚本经过了写系统自动的自动升级脚本,对shell的运用应该还算可以了。总的来说,在编程这块自己涉及的东西很多,但掌握的知识点都比较散落。真的特别的需要多自己所掌握的知识点进行一个全面的梳理,然后加深。
定下接下来几篇博文:
1.链表基础
2.链表的实际运用
3.设计模式
第二部分 uboot概述
在uboot方面,了解它的启动流程,在实际的项目中应该够用。在实现功能方面好像和普通的项目差不多,没有特别复杂撸撸代码就完事。
第三部分
Linux内核理论知识,这个是有系统学习过的,掌握的理论知识不少
第四部
硬件分析与设计