嵌入式学习总结

        一转眼四个月的学习时光也接近了尾声,这并不意味着结束,相反这意味着更大的挑战需要面对。为什么这么说呢?因为下一步便是正式步入社会,找一份合适的工作,开始奋斗,提升自己,这一步的难度是不言而喻的。正因如此,我写下这篇文章,回顾过往,指明前方。

        首先我学习了C语言基础,我作为计算机相关专业的学生,C语言自然非常熟悉,但是在真正来华清认真学习之前,我对C语言还是一知半解的。这也就意味着很多细节的东西其实并不了解。而在华清学习后,很多之前不懂的知识点,很多之前根本没记过的东西,一下就涌入了脑海中,正因如此,我对C语言的理解又进了一步,写代码也比之前要熟练了。

        此后我进入了Linux基础和C高级阶段,这个阶段,我学习了Linux系统的基础使用、网络配置等基本技能。作为物联网工程的学子,我对Linux系统还是比较了解的,所以学习起来还是比较轻松的,在这个阶段我学习到了更多的Linux命令,弥补了之前命令记得不多,用起来不流畅的短板。不过还是有很多命令需要记忆,这个过程其实主要还是靠积累,这个过程还是只有慢慢来。在日常的使用中慢慢积累。在C高级这个阶段主要学习了一些C语言编程中会使用到的高阶技巧,是的C语言的编写更加完善,让我对C的理解更深入了。

        然后我进入了数据结构阶段,这个阶段真的是我的噩梦,也不知道咋回事,我学数据结构就跟中了邪一样,命名就不难,但是脑子就是转不过来,花的时间也多。反而见效不大,不过因为某些原因,在这个阶段还是有所收获的,之前在学校真的是完完全全没有留下什么关于数据结构的知识,在华清学习了一下,也算是把一些常用算法给理解到了。对于我来说,这个可算是莫大的收获呢。不过按照现在的情况来看,或多或少还是不太够的,还要加强一下对于数据结构知识的复习巩固。毕竟这个东西是在后面的生活中很有用的。

        此后我来到了Linux高级编程阶段,这个阶段是我觉得最有意思的阶段,因为在这个阶段我写了一个文件服务器,这是在华清学习做的第一个项目,而这个服务器在后期的学习中发挥了巨大的作用,我在这个服务器的基础上不断丰富功能。在这个阶段我们首先学习了进程线程,对于对服务器这样的东西来说,肯定不能一个服务器只连接一个客户端,最基本的要求就是要实现并发,既然要实现并发那就一定需要进程线程技术,而在进程中又有了io多路复用。不过我在项目中经常使用线程,所以对线程的了解程度还是要高于进程的。线程又叫轻量级进程,用起来差距其实并不大。然后又学习了网络编程,在网络编程阶段才正式接触到服务器编程的方法,其实都相当于八股文了,固定格式,按顺序操作就完成的服务器的搭建,在成功完成服务器搭建后会返回一个连接套接字,这个套接字就是关键,咱们通过网络进行的数据传输全依仗这个套接字的。当然要进行数据传输,首先就要有数据的输入输出,这个过程我们叫做文件io,在文件io阶段,我学习了如何通过函数多文件进行io操作,而且多文件进行io操作还有两套方法,一套是标准C库函数,一套则是Linux提供的,又叫系统调用。这借个模块进行拼接就可以完成一个可并行的文件服务器,实现文件的上传下载。

        完成上一阶段学习后,我来到了C++阶段的学习,这个就是C语言的进化版,对我来说是一个没有涉及的领域,原先的C语言是一门面向过程的编程语言,而C++不一样,C++是一门面向对象的编程语言,当我第一次接触面向对象这个全新领域时,脑子就是转不过来,满脑子都是C语言。直接将C++当成C语言来写,这个在后面QT项目体现尤为明显。可谓是为达目的,“不择手段”。这个阶段让我知道什么叫做严格的格式要求,而且相较于C语言,处理一些问题的思路也不相同,但是在操作量上来说,确实比C来写要更加合理更加智能,C++的内存管理机制也比C更为完善。

        C++阶段既学习了一门新的语言,又为QT阶段做了很好的铺垫,因为QT就是用的C++来编程   的,而且这个阶段很有意思,每次写下一个控件,你说他怎么就能显示在界面上的呢,真有趣,哈哈。你的每个操作都能很快获得回应,直观的显示在界面上。QT的核心机制就是信号与槽机制,你的每个操作都可以触发一个信号,这个信号进而可以激发一个函数,这个函数就能实现我们需要的功能,这就叫做信号与槽。QT本身也有很智能的内存管理机制。在这个阶段我在文件服务器的基础上,为该服务器做了一个界面,用于显示服务器通过摄像头采集的画面。 获得的反响还不错,哈哈。

        QT阶段之后便是ARM阶段,我们拿到的是cortex-A9的开发板,开发板含有丰富的外设和强大的能力,可以在上面跑Linux系统。正因如此,所以可以用来运行服务器代码。这就和前面的项目联系起来了,网络摄像头项目的服务器就可以运行在A9板上,外接摄像头就能实现完整的上位机+下位机的方式。这个阶段还学习了汇编编程用于裸机开发,C编程控制,C和汇编混合编程。实现了点灯,串口通信,中断,看门狗等功能。再此基础上又学习系统移植,经过学习,了解了如何实现简单的系统移植,主要便是移植内核,根文件系统,设备树,同时还了解到如何自己制作内核,根文件系统,设备树文件。还了解了通过NFS挂载虚拟文件系统的方法。最后就是学习了驱动开发,我们学习到了驱动开发的基本思想,就是模块化编程,基本上都是有框架的,按照框架要求填入对应的内容,即可完成驱动的编写。

        经过四个月的学习生活后,我发现自己存在一些问题。首先平时代码敲得太少了,以至于只会改代码,不会写代码。这就很难受了,没有那种具体解决问题的思路,只能依靠一些之前相似的代码来改。虽然完全能用来解决问题,但是还是有所欠缺。这点值得反思,以后还是得多练才行,不然会吃大亏。

       通过在华清远见这四个月的吸收、沉淀,在即将走出华清远见之际,开启人生新的一页之时,我对未来还是非常憧憬的,嵌入式确实是很有趣的一个方向呢。那种让一个没有生命的物体动起来,变得有生命一样这个过程是真的很快乐。就像我和小伙伴做的机械臂控制项目,平时那个机械臂就是软趴趴的,但是一通上电,就会突然耸立,直指上苍。仿佛在向苍天呐喊,我活了。这种气魄,亦是我所需要的。不向挫折低头,要想上电的机械臂一样,抬头挺胸,要在嵌入式行业中发光发热。

        在与朝夕相伴的同学、老师一起共同渡过的这四个多月,生活点滴中,总有些事,有些人总是让人印象深刻,不过要说最深刻的还得是疫情封锁了20多天。我们在家里和其他小伙伴合作做项目。那时候才发现,虽然我们人不在一起,但是因为有同一个目标,所以我们被牢牢的联系在了一起。项目推进过程中难免会有很多问题,但是大家一起合作,一起讨论,在欢声笑语中解决问题。这个过程真的很有趣,很快乐。当实现了一个功能时,大家都体会了成就感,真是一段奇妙的经历呀!

        四个月的时光转瞬即逝,我收获了知识,收获了新朋友,还体验到了新项目的快乐。不过天下没有不散的宴席,最终还是要走出校园,走向社会的。所以在此祝愿其他同学,前程什锦,马到成功!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值