写这篇总结,仅为记录今年的所感所得,大家随意看看就行。 从去年8月开始,我正式开始做嵌入式的工作,在去年,其实更多的,还是一个摸索的阶段,因为之前接触32位单片机,其实还算是比较少的,之前更多的,是做8位机和16位机的开发,起初是有一些担心的,担心自己不能够很好的胜任工作,后来在经过一段时间后,发现其实很多东西,是我们自己想复杂了,感慨一下,很多时候,其实迈出第一步是最难的,因为你面对的将是对未知的恐惧,但是当你真正的接触它,了解它,就会觉得,这些东西对你来说,没有你想像中的可怕。 今年年初,我开始了仪器2.0版本的研发,在这个版本中,使用到了新的M4内核的芯片,对比以前M3的芯片,并没有感觉有很多的不同。在新版本中,使用到了PHY芯片,需要使用MCU的RIMM接口和它进行通讯,需要使用LWIP协议栈,实现和上位机的网路数据透传。在学习LWIP时,我发现其中使用到了很多的链表、数据回调等C语言的高级用法,在了解这个协议栈的过程中,也让我对数据结构有了一个认识。在3月左右,完成了第一版代码的编写,在这个版本的代码中,我大量使用到了函数指针来优化程序结构,整体架构我觉得还挺好的,但是我发现,它还存在一个实时性不足的问题,于是开始着手研究实时系统FreeRTOS。 通过前期对于LWIP的学习,让我学习了很多数据结构相关的只是,我阅读FreeRTOS的源码,也不是特别费劲,虽然我写不出来,但是大概还是能读懂一点原理的,经过一个月的学习,我成功将一个电源模块的代码,使用FreeRTOS改写,在改写的过程中,也不断的提升了我对多任务系统的了解。在多任务环境下存在共享资源的竞争问题,对于这些问题的解决方案,我也开始进行探索,通过在ST粉丝群里和大家沟通,通过大家的帮助,给了我很大的启发,我了解到生产者-消费者模型的无锁设计方法。再后面,我又对主控板进行了改进,提高了系统的实时性,尽管它还有很多需要优化的地方,但是已经算是一个可以用的东西了。通过对FreeRTOS的学习,我感到收获颇丰,我接触到了许多以前不太熟悉的知识,对于我以后的发展方向也有了一些思路。 八月份,我转到了另一家公司,开始学习BACnet协议栈的相关内容。由于之前学习了lwIP协议栈,对于BACnet这个协议来说,感觉上都差不多。这些协议栈大多使用底层加上层回调的方式实现代码上下层的隔离。BACnet项目主要使用Linux,我以前在学习物联网的时候有接触过linux,了解过linux简单的操作指令,以前还买过讯为4412开发板,但是那块开发板有问题吗,导致我卡在网卡驱动的加载上停住了,后来很长时间没研究,就把它卖了。这次对于我来说,也是一个很好的机会,经过之前的学习,我的RTOS其实已经算是入门了,但是对于linux,我有接触过,但还没有编写过linux应用,这次给了我一个很好的学习机会。因为我下一步的方向,实际上就是向linux驱动开发、linux应用方向发展,之前有看到很多招聘信息,对于linux的招聘还是挺多的,高端的产品一般也是用的linux,所以我也一直是想学。 在临近过年的时候,又接触到很多DTU相关的东西,以前一直以为这东西很高级,但是发现,如果是用模组的话,其实也就是一个串口通讯,这是我没想到的,也是对应我之前的那句话,很多东西,其实第一步看起来很难,希望我可以一直有勇气的踏出第一步,只有敢于冒险的才能精彩的活着。(当然不是告诉大家当一个赌徒,做冒险的事情,要能够承担结果) 希望在明年,可以把linux学好,希望未来的自己可以做一个全栈工程师,可以把自己脑子里面的奇思妙想,变成一个产品实现出来。 |
【宠粉福利】2024 ST中文论坛年终粉丝狂欢节
我是聪聪哥哥,我的2024年总结
年终粉丝狂欢节-刘氓兔的年终总结
【2024 ST中文论坛年终粉丝狂欢节】——lugl的2024年总结
【2024年末收尾竞拍】消耗金币即可获奖
【2024 ST中文论坛年终粉丝狂欢节】——meiyao2024年总结
我是星海灿烂,我的2024年总结
【玩转AI,尽在N6】板卡试用 | STM32N6一款加速你AI设计的新品
如何使用非连续引脚驱动段码屏
【问答小课堂】超低功耗入门级MCU——STM32U0(文末有礼)
已点赞,小伙子加油!
加油加油
已点赞