实习工作小结第二天
时间:10-02
整理:3721RD
点击:
今天是实习的第二天,主要的工作依旧是看代码,明天会有所不同。今天最主要的就是把几份小代码的控制流程屡清楚了,另外就是看了CRC的校验方式,着重看了CRC-16/MODBUS x16+x15+x2+1这种校验方式。具体的代码就不写了!毕竟是公司里面的代码,不过关于这个CRC的校验,有一个值得注意的地方,就是下面这个:
《GBT19582.1-2008基于Modbus协议的工业自动化网络规范 第二部》 中规范中crc 占2个字节,低字节在数据流的倒数第二个字节,而高字节在数据流最末端,即应正了高字节低位输出的做法。
就是说,在最后加上CRC的校验字节的时候。计算出来的两个校验字节应该反着放。我猜是这样的!
今天,对于我的工作的思考,最深刻的一点就是我感觉我以前可能有些偏颇了!我以前的感觉是,作为嵌入式软件工程师,那么就应该做到靠一块可靠的开发板,一套相应的技术说明手册,就可以完成开发!其实,对于简单的开发板,或者说简单的芯片,确实是这样的!技术说明手册可以提供编写驱动的相关资料,然后加上一些控制程序,就可以完成想要的功能的开发。然而,理想是美好的,现实是残酷的!单单凭借技术说明手册,我根本无法找到编写驱动的那条线,没有底层的开驱动开发,那么整体的功能就更不用说了!但是,在这两天的实习和思考过后,我发现,其实底层的驱动开发,虽然说很重要,但是它的形式和内容相对来说很固定,一旦完成了,就没有什么可以改进的空间了,除非你换上更好的硬件,重新写驱动。这些与硬件相关的驱动程序一旦写好了,就只需要调用就好了,不是不想改进,而是没有改进的空间!而控制部分则恰恰相反!
基于已有的驱动,编写控制程序来进行应用的开发,则大有可为。因为,一般来说,第一版的应用开发往往是不完善的,而且这样的缺陷也往往体现在控制方面,比如任务的调度不合理,数据的传输存在与时间有关的问题等等。这样的问题往往是由于控制的不合适造成的。再者,需求往往是不断变化的,在不同的时期,需要执行不同的任务,这就需要调整控制来满足需求,但是他们往往使用的是同一套的驱动程序。所以,一套程序写的好不好,第一在于驱动程序,第二,或者说绝大部分在于控制的好不好!基于这样的理论我以后会把重点放在控制上面。当然了,不是说放弃驱动了,而是说慢慢看,毕竟他需要的要么是积累,要么是最核心的资料,而这两点,我都没有!
另外,在看代码的时候,我也学到了一个小的技巧,就是将接收的数据与进行计算的数据隔离,这样做的好处是,在不断接收数据的时候,不会因为即将到来的数据而影响本次计算的结果。尤其是在中断中接收数据的情况。
PS:本人现在大三,在嵌入式领域只能算是一个刚刚看见门槛的小学生,上面的写的东西大部分是我看的资料,也有一些是我的想法。如果您不小心点开了,又不幸看完了,那么我还真是感激不尽!当然,如果您愿意留下只言片语,或是交流,或是指正,鄙人更是感激万分!
末学后进在这里,希望与大家一起进步,成长!
《GBT19582.1-2008基于Modbus协议的工业自动化网络规范 第二部》 中规范中crc 占2个字节,低字节在数据流的倒数第二个字节,而高字节在数据流最末端,即应正了高字节低位输出的做法。
就是说,在最后加上CRC的校验字节的时候。计算出来的两个校验字节应该反着放。我猜是这样的!
今天,对于我的工作的思考,最深刻的一点就是我感觉我以前可能有些偏颇了!我以前的感觉是,作为嵌入式软件工程师,那么就应该做到靠一块可靠的开发板,一套相应的技术说明手册,就可以完成开发!其实,对于简单的开发板,或者说简单的芯片,确实是这样的!技术说明手册可以提供编写驱动的相关资料,然后加上一些控制程序,就可以完成想要的功能的开发。然而,理想是美好的,现实是残酷的!单单凭借技术说明手册,我根本无法找到编写驱动的那条线,没有底层的开驱动开发,那么整体的功能就更不用说了!但是,在这两天的实习和思考过后,我发现,其实底层的驱动开发,虽然说很重要,但是它的形式和内容相对来说很固定,一旦完成了,就没有什么可以改进的空间了,除非你换上更好的硬件,重新写驱动。这些与硬件相关的驱动程序一旦写好了,就只需要调用就好了,不是不想改进,而是没有改进的空间!而控制部分则恰恰相反!
基于已有的驱动,编写控制程序来进行应用的开发,则大有可为。因为,一般来说,第一版的应用开发往往是不完善的,而且这样的缺陷也往往体现在控制方面,比如任务的调度不合理,数据的传输存在与时间有关的问题等等。这样的问题往往是由于控制的不合适造成的。再者,需求往往是不断变化的,在不同的时期,需要执行不同的任务,这就需要调整控制来满足需求,但是他们往往使用的是同一套的驱动程序。所以,一套程序写的好不好,第一在于驱动程序,第二,或者说绝大部分在于控制的好不好!基于这样的理论我以后会把重点放在控制上面。当然了,不是说放弃驱动了,而是说慢慢看,毕竟他需要的要么是积累,要么是最核心的资料,而这两点,我都没有!
另外,在看代码的时候,我也学到了一个小的技巧,就是将接收的数据与进行计算的数据隔离,这样做的好处是,在不断接收数据的时候,不会因为即将到来的数据而影响本次计算的结果。尤其是在中断中接收数据的情况。
PS:本人现在大三,在嵌入式领域只能算是一个刚刚看见门槛的小学生,上面的写的东西大部分是我看的资料,也有一些是我的想法。如果您不小心点开了,又不幸看完了,那么我还真是感激不尽!当然,如果您愿意留下只言片语,或是交流,或是指正,鄙人更是感激万分!
末学后进在这里,希望与大家一起进步,成长!
这个值得鼓励,小编加油。
把你的感想和体验分享出来。
看来小编是要一天一帖拉!
尽量吧!每天都写一点,之后尽量上干货
可以了
頂頂頂頂頂頂頂,謝謝分享,你的資料很好,有機會交流
看来实习很清闲的啊